Zurück zur Übersicht

Begriff

Dafny

Computer Science Tools 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.

Beweisen ist meistens ultra-harter Akademiker-Kram (Coq, Isabelle). Normale Entwickler wollen einfach Code schreiben. Dafny (von Microsoft Research) bringt Beweise in die IDE (VS Code). Es fühlt sich an wie C# oder Java. Aber du kannst Annotations schreiben: method Abs(x: int) returns (y: int) ensures y >= 0 Dafny prüft das während du tippst (mit dem Z3 Solver im Hintergrund). Rote Kringel, wenn du logisch falsch liegst. Es ist der Versuch, "Formal Verification" demokratisch zu machen.

Merksatz: Eine verifizierende Programmiersprache von Microsoft Research mit eingebauter Spezifikation (Pre/Postconditions), die den Z3 SMT-Solver nutzt, um Korrektheit vollautomatisch zu beweisen.


Quick-Check

  1. Kann ich damit Apps bauen?
    Dafny kompiliert nach C#, Go, Java, JS. Du kannst also echte Software damit bauen. Amazon nutzt es für Teile der Verschlüsselungs-Infrastruktur.
  2. Warum nutzt es nicht jeder?
    Weil Specs schreiben (besonders Loop Invarianten) immer noch verdammt schwer ist. Man braucht mathematisches Verständnis.
  3. Name?
    Nach Daphne (Nymphe aus der griechischen Mythologie). Die Entwickler mochten den Namen.