Zurück zur Übersicht

Begriff

Rice's Theorem

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.

Das Halteproblem sagt: Du kannst nicht entscheiden, ob ein Programm hält. Aber was ist mit anderen Eigenschaften? "Druckt das Programm 'Hallo'?" "Berechnet das Programm 5?" "Ist das Programm frei von Deadlocks?" Rice's Theorem sagt: Alles unentscheidbar. Sobald du eine "nicht-triviale" Eigenschaft der Funktion (nicht des Codes) wissen willst, ist es unmöglich. Es gibt keinen Algorithmus, der irgendeine spannende Frage über beliebige Programme beantworten kann. Game Over für perfekte Software-Analyse.

Merksatz: Ein Satz der Berechenbarkeitstheorie, der besagt, dass jede nicht-triviale semantische Eigenschaft der von einem Programm berechneten Funktion unentscheidbar ist.


Quick-Check

  1. Warum "Game Over"?
    Es ist der ultimative Dämpfer. Wir werden nie vollautomatische Bug-Fixer haben, die jeden Bug verstehen.
  2. Ausnahme?
    Endliche Automaten (keine Turing-Maschinen). Bei einfacheren Modellen ist fast alles entscheidbar (Model Checking). Rice gilt nur für Turing-vollständige Sprachen (Java, C, Python).
  3. Henry Gordon Rice?
    Logiker (1953). Er verallgemeinerte Turings Ergebnis.