Zurück zur Übersicht

Begriff

Hoare Logic

Computer Science Verification S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Wie beweist man, dass ein Programm immer funktioniert? Nicht durch Testen (Tests finden nur Fehler, beweisen aber nicht deren Abwesenheit). Tony Hoare erfand ein System aus drei Teilen (Hoare-Tripel): {P} C {Q}.

  • P (Precondition): Was muss vorher wahr sein? (z. B. "x ist größer als 0").
  • C (Code): Das Programm.
  • Q (Postcondition): Was ist nachher garantiert wahr? (z. B. "y ist das Doppelte von x"). Wenn du beweisen kannst, dass aus P durch C immer Q folgt, ist dein Code korrekt. Mathematisch.

Merksatz: Ein formales System mit einer Menge von logischen Regeln, um die Korrektheit von Computerprogrammen rigoros zu beweisen.


Quick-Check

  1. Macht das wer?
    Für normale Apps: Nein (zu teuer). Für Raketensteuerungen, Atomkraftwerke und Smart Contracts (Milliardenwerte): Ja, absolut.
  2. Tony Hoare?
    Der Erfinder von Quicksort. Und der Erfinder von null ("My billion-dollar mistake"). Ein Riese der Informatik.
  3. Warum nicht immer?
    Der Beweis dauert oft 10x länger als das Programmieren. Und wenn sich die Spec ändert, fängst du von vorne an.