Typinferenzsystemen
Typinferenzsysteme sind formale Mechanismen in statisch typisierten Programmiersprachen, die die Typen von Ausdrücken automatisch ableiten. Ziel ist es, den Programmieraufwand zu reduzieren, ohne Typensicherheit zu opfern. Typinferenz erfolgt typischerweise durch das Erzeugen von Typvariablen und Gleichungen über Ausdrücke und anschließendes Lösen per Unifikation, wodurch die allgemeinste Typisierung (principal type) ermittelt wird. Typen bleiben deklarativ, der Typ von Ausdrücken wird zur Kompilierzeit bestimmt. Typinferenz unterscheidet oft zwischen Inferenz und Typprüfung: Inferenz versucht, Typen zu bestimmen, Typprüfung überprüft explizite Typangaben.
Historisch bekanntes System ist Hindley-Milner (HM) mit dem Algorithmus W, der Polymorphismus durch Let-Polymorphismus ermöglicht. Es
Vorteile: geringerer Annotierungsbedarf, frühzeitige Fehlererkennung, bessere Wartbarkeit. Grenzen: manche Typen erfordern explizite Annotationen, besonders bei komplexen