Programmkorrektheitsbeweis | 02.02.2000 |
Partielle Korrektheit | Ein Programm wird in endlicher Zeit mit einem definierten Ergebnis ausgeführt und terminiert, wobei nicht bewiesen ist, daß es terminiert. |
---|
Totale Korrektheit | Ein Programm terminiert und liefert ein definiertes Ergebnis. |
---|
Ansätze |
Es gibt im Wesentlichen drei verschieden Ansätze. Unter anderem
den Ansatz. |
---|
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. |
---|
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.
|
---|
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.
|
---|