Typensystems
Ein Typensystem ist eine Sammlung formaler Regeln, die festlegen, welche Typen Objekten, Ausdrücken oder Werten zugeordnet werden und wie Typen miteinander interagieren dürfen. Es dient dazu, Fehler frühzeitig zu erkennen, Programmdokumentation zu liefern und gegebenenfalls Optimierungen zu ermöglichen, indem es Garantien über das Verhalten von Programmen bietet.
Typensysteme unterscheiden sich nach dem Zeitpunkt der Typprüfung: statisch (Prüfungen erfolgen zur Compile-Zeit) versus dynamisch (Prüfungen
Wichtige Konzepte sind Typsicherheit, Typsystem-Soundness, Typinferenz, Subtyping, Polymorphismus und Generika. In einem gut konstruierten Typsystem soll
Typische Typisierungsdisziplinen umfassen nominale Typisierung versus strukturelle Typisierung; nominale Typisierung folgt Namens- oder Klassenhierarchien für Subtyping,
In der Praxis beeinflusst das Typensystem die Sicherheit, Fehlertoleranz, Lesbarkeit und Laufzeit-Performance einer Sprache. Beispiele reichen