Dieses Buch behandelt Grundkonzepte der Programmiersprachensemantik anhand einer einfachen funktionalen Programmiersprache. Darauf aufbauend werden die Aufgaben und Probleme bei Nachweis von totaler und partieller Korrektheit einfacher funktionaler Programme behandelt. Insbesondere wird der Bezug zwischen Programmiersprachensematik und formaler Logik illustriert. Prinzipielle Grenzen der "automatischen" Verifikation werden untersucht und die praktische Relevanz dieser Grenzen wird diskutiert.
Inhaltsverzeichnis
1 Formale Grundlagen. - 1. 1 Syntax der Prädikatenlogik 1. Stufe. - 1. 2 Semantik der Sprache 1. Stufe. - 1. 3 Fundierte Mengen. - 1. 4 Konstruktion fundierter Mengen. - 1. 5 Konfluente Relationen. - 2 Funktionale Programme. - 2. 1 Die Programmiersprache FP. - 2. 2 Operationale Semantik von FP. - 2. 3 Denotationale Semantik von FP. - 2. 4 Äquivalenz von operationaler und denotationaler Semantik. - 2. 5 Erweiterung von FP um Datenstrukturen. - 2. 6 Alternativen der Parameterübergabe. - 2. 7 Elimination von gegenseitiger Rekursion. - 3 Verifikation funktionaler Programme. - 3. 1 Terminierung funktionaler Programme. - 3. 2 Normal- und Tail-Rekursive Funktionsprozeduren. - 3. 3 Spezifikation funktionaler Programme. - 3. 4 Semantik der Spezifikationssprache. - 3. 5 Beweise zur partiellen Korrektheit. - 3. 6 Grenzen der formalen Verifikation. - 3. 7 Korrektheitsbeweise durch Induktion.