Zurück zur Übersicht

Begriff

Programming Logic

Computer Science Theory S4
2 Quellen 0 Lernpfade 1 Backlink 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.

Mathematische Logik (Aristoteles, Boole) handelte von Wahrheit. "Alle Menschen sind sterblich." Programmier-Logik handelt von Zustandsänderung und Ressourcen. "Wenn ich in den Speicher schreibe, ist der alte Wert weg." Klassische Logik kann das schwer abbilden ($A \land A = A$. Aber $Geld \land Geld = 2 \cdot Geld$). Deshalb haben Informatiker spezielle Logiken erfunden, um über Programme zu sprechen. Hoare Logic war der Anfang. Separation Logic (für Pointer) und Dynamic Logic (für Java) sind die Weiterentwicklung.

Merksatz: Spezialisierte logische Systeme zur formalen Beschreibung und Analyse des Verhaltens von Computerprogrammen, insbesondere im Hinblick auf Korrektheit, Terminierung und Ressourcennutzung.


Quick-Check

  1. Braucht man das für Python?
    Selten. Python ist so dynamisch ("Duck Typing"), dass formale Logik schwer greift. Aber Typ-Checker (MyPy) nutzen logische Konzepte.
  2. Warum Facebook Infer?
    Weil Nullpointer-Abstürze User kosten. Infer analysiert Code beim Commit (statisch) mit Separation Logic ("Bi-Abduction") und warnt Entwickler sofort.
  3. Logik vs Code?
    Code ist "imperativ" (Tu das). Logik ist "deklarativ" (Das ist wahr). Programming Logic versucht, die Brücke zu schlagen.