Typsysteme
Typsysteme bezeichnen in der Informatik formale Systeme, die jedem Ausdruck oder jeder Variable einen Typ zuweisen. Ziel ist es, die Korrektheit von Operationen sicherzustellen, Laufzeitfehler zu verhindern und Programme besser überprüfbar zu machen. Typen dokumentieren Absichten und ermöglichen Compile-Time- oder Run-Time-Checks sowie Optimierungen.
Man unterscheidet statische Typisierung, bei der Typinformationen bereits vor der Ausführung bekannt sind, von dynamischer Typisierung,
Type Checking (Typprüfung) kann explizit erfolgen, oder Typen können durch den Compiler automatisch abgeleitet werden (Typinferenz).
Wichtige Konzepte umfassen Polymorphismus, Generics bzw. parametrisierte Typen, Subtypisierung und Vererbung, Typkonstruktoren sowie hochrangige Typen. Fortgeschrittene
Praktische Beispiele sind Sprachen wie Haskell mit einem starken statischen Typsystem und Typinferenz, Java mit statischer,