Was ist ein Type System?
Ein Type System ist ein ein Satz definierter Regeln für eine Programmiersprache, die eine als “Type” benannte Eigenschaft verschiedenen Konstrukten innerhalb des “Systems” zuweist.
Wozu dienen Type Systeme?
Jedes Computerprogramm besteht aus Variablen, Ausdrücken, Funktionen oder Modulen. Der Hauptzweck eines Typsystems dient dem Ziel die Anfälligkeit des Systems für Bugs in Computerprogrammen zu reduzieren, indem Schnittstellen zwischen verschiedenen Teilen eines Computerprogramms definiert werden und dann überprüft wird, ob die Teile konsistent miteinander verbunden sind.
Aufgaben von Typen-Systemen
- Type-Systeme spezifizieren Regeln für das Verhalten von Variablen in Programmen
- Typen-Systeme unterbinden Verhalten abseits dieser definierten Regeln
- Type Systeme stellen sicher, dass Operationen, die einen bestimmten Wertetype erwarten, nicht mit Werten verwendet werden für die diese Operation keinen Sinn ergibt, z.B.: 5/”Hallo”
Statische und dynamische Typen-Überprüfung
Eine solche Typen-Überprüfung kann statisch (zur Kompilierzeit), dynamisch (zur Laufzeit) oder als Kombination von statischer und dynamischer Überprüfung erfolgen. Typ-Systeme dienen auch anderen Zwecken, wie zum Beispiel der Ermöglichung bestimmter Compiler-Optimierungen.
Type-Systeme assoziieren Typen mit berechneten Werten
Ein Type-System assoziiert einen Typ mit jedem berechneten Wert und versucht, durch die Prüfung des Werteflusses zu gewährleisten, dass keine Typefehler auftreten können. Das Typesystem definiert exakt was einen Typenfehler darstellt, aber im allgemeinen ist es das Ziel des Typensystems exakt zu verhindern, daß Operationen, die einen bestimmten Wert erwarten, mit Werten verwendet werden, für die dieser Vorgang nicht sinnvoll ist (logische Fehler). Somit reduzieren Typensysteme auch zugleich Speicherfehler.