Programmkorrektheitsbeweis 02.02.2000

Home Programmkorrektheitsbeweis Inhalt Operationaler
Ansatz

Programmkorrektheitsbeweis: Allgemein


weiter

Symbole
Symbole
^ UND
v ODER
= GLEICH
< KLEINER
> GRÖßER
<= KLEINER-GLEICH
=> GLEICH-GRÖßER
<>UNGLEICH
% NULLOPERATOR
:= WERTZUWEISUNG
Weiter
Die Korrektheit einer Software wird anhand ihrer Spezifikation gemessen. Ein Programm arbeitet im Allgemeinem dann korrekt, wenn es für die Eingaben eine erwünschte Ausgabe produziert. Hierbei ist zwischen zwei Arten von Korrektheit zu unterscheiden:

Weiter
Partielle Korrektheit Ein Programm wird in endlicher Zeit mit einem definierten Ergebnis ausgeführt und terminiert, wobei nicht bewiesen ist, daß es terminiert.
Weiter
Totale Korrektheit Ein Programm terminiert und liefert ein definiertes Ergebnis.
Weiter
Ansätze Es gibt im Wesentlichen drei verschieden Ansätze. Unter anderem den
  • operationalen,
  • denotationalen,
  • axiomatischen
  • Ansatz.
    Weiter
    Operational Der Operationale Ansatz besteht in der Betrachtung der Semantik, der Programmiersprache und ihrer Definition durch einen abstrakten Interpreter. Seine Vorteile liegen in der Darstellungsunabhängigkeit von einem speziellen Compiler und der Freiheit von der formalen Aufgabenstellung. Seine Nachteile liegen in der fehlenden Nutzung von compilerspezifischen Eigenheiten und der Notwendigkeit eines Compilerkorrektheitsbeweises. Der Denotationale Ansatz besteht im Wesentlichen aus der Idee, daß das Programm in seinen Funktionen und seinen Aufgaben auf Korrektheit betrachtet und überprüft wird. Seine Vorteile liegen in der Unabhängigkeit von speziellen Compilern. Seine Nachteile in der fehlenden Nutzung von compilerspezifischen Möglichkeiten, eines zusätzlichen Korrektheitsnachweises für den Compiler und der schweren Lesbarkeit für den Anwender.
    Weiter
    Denotational Der Denotationale Ansatz besteht im Wesentlichen aus der Idee, daß das Programm in seinen Funktionen und seinen Aufgaben auf Korrektheit betrachtet und überprüft wird. Seine Vorteile liegen in der Unabhängigkeit von speziellen Compilern. Seine Nachteile in der fehlenden Nutzung von compilerspezifischen Möglichkeiten, eines zusätzlichen Korrektheitsnachweises für den Compiler und der schweren Lesbarkeit für den Anwender.

    Weiter
    Axiomatisch Der Axiomatische Ansatz beruht auf der Grundidee von Prädikantentransformationen. Sein Vorteil ist die einfache und verständliche Anwendbarkeit. Seine Nachteile liegen in der Bestimmung von Schleifeninvarianten und dem Nachweis der Schleifenendlichkeit.

    SeitenanfangHomeProgrammkorrektheitsbeweis: InhaltOperationaler Ansatz