ScholarGate
Assistent

Axiomatische Semantik und Programmlogiken

Axiomatische Semantik charakterisiert Programme durch logische Aussagen über deren Zustände, wobei die Hoare-Logik und ihre Nachfolger Regeln zur Korrektheitsprüfung von Programmen bereitstellen.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Axiomatische Semantik spezifiziert die Bedeutung eines Programms durch die logischen Aussagen, die vor und nach seiner Ausführung gelten, und eine Programmlogik ist ein deduktives System von Inferenzregeln zum Beweisen solcher Aussagen über Programme.

Scope

Dieses Thema behandelt das logische Schlussfolgern über Programme mittels logischer Aussagen: Hoare-Tripel, die Vorbedingungen, Programme und Nachbedingungen in Beziehung setzen; Dijkstras Prädikatentransformatoren und schwächste Vorbedingungen; sowie die Separation Logic für Programme mit veränderlichem, gemeinsam genutztem Heap-Zustand. Es befasst sich mit partieller und totaler Korrektheit, Schleifeninvarianten sowie der Soundness und Vollständigkeit von Programmlogiken.

Core questions

  • Wie kann die Korrektheit eines Programms relativ zu einer Spezifikation bewiesen werden?
  • Was ist eine Schleifeninvariante und warum ist sie zentral für die Verifikation?
  • Wie berechnen Prädikatentransformatoren die für die Korrektheit notwendigen Bedingungen?
  • Wie kann man modular über Programme argumentieren, die den gemeinsam genutzten Heap-Speicher verändern?

Key theories

Hoare-Logik
Hoare führte ein axiomatisches System von Inferenzregeln über Tripel {P} C {Q} ein, das eine kompositionelle Methode zum Nachweis bietet, dass ein Programm seine Spezifikation erfüllt.
Schwächste Vorbedingungen und Guarded Commands
Dijkstras Prädikatentransformatoren-Semantik definiert die schwächste Vorbedingung, die garantiert, dass ein Programm eine Nachbedingung erreicht, und unterstützt die systematische Ableitung korrekter Programme.
Separation Logic
Reynolds und O'Hearn erweiterten die Hoare-Logik um eine trennende Konjunktion, die ein lokales, modulares Schlussfolgern über Programme ermöglicht, die gemeinsam genutzte veränderliche Datenstrukturen und Zeiger manipulieren.

Clinical relevance

Programmlogiken bilden das Rückgrat der deduktiven Programmverifikation, die in Werkzeugen zur Korrektheitsprüfung kritischer Software sowie in mechanisierten Beweisen von Betriebssystem- und Compilerkomponenten eingesetzt wird. Insbesondere die Separation Logic ermöglichte eine skalierbare Verifikation von zeiger-manipulierendem Code.

History

Floyds Methode von 1967 zur Zuweisung von Bedeutungen zu Flussdiagrammen und Hoares axiomatische Grundlage von 1969 begründeten das Feld. Dijkstras Kalkül der schwächsten Vorbedingung in den 1970er Jahren verknüpfte die Verifikation mit der Programmentwicklung. Reynolds und O'Hearns Separation Logic um 2000 belebte die Programmlogik für Heap-manipulierenden Code wieder und führte zu leistungsstarken modernen Verifikationsframeworks.

Debates

Verifikationsaufwand versus Sicherheit
Eine anhaltende Frage ist, wie der erhebliche manuelle Aufwand beim Schreiben von Spezifikationen und Invarianten mit den starken Korrektheitsgarantien der deduktiven Verifikation in Einklang gebracht werden kann, was die Automatisierung und leichtere Methoden motiviert.

Key figures

  • C. A. R. Hoare
  • Robert Floyd
  • Edsger Dijkstra
  • John Reynolds
  • Peter O'Hearn

Related topics

Seminal works

  • hoare1969
  • dijkstra1975
  • reynolds2002
  • floyd1967

Frequently asked questions

Was ist ein Hoare-Tripel?
Ein Hoare-Tripel {P} C {Q} besagt, dass, wenn die Vorbedingung P vor der Ausführung des Befehls C gilt, die Nachbedingung Q danach gilt (für partielle Korrektheit, vorausgesetzt C terminiert).
Warum ist die Separation Logic wichtig?
Die Separation Logic ermöglicht es Beweisen, unabhängig über disjunkte Bereiche des Heaps zu argumentieren, wodurch die Verifikation von Programmen mit Zeigern und gemeinsam genutztem veränderlichem Zustand auf modulare Weise praktikabel wird.

Methods for this concept

Related concepts