Definition
Ein formales Klassifikationsschema, das Ausdrücken Typen zuweist und Regeln festlegt, wie typisierte Entitäten kombiniert werden dürfen, mit dem Ziel, Invarianten durchzusetzen, Fehler zu erkennen und den Programmaufbau statisch oder dynamisch zu steuern.

Prinzip

Prinzip
Beschränkung der Zusammensetzung: Typen bilden eine syntaktische und semantische Disziplin, die einschränkt, welche Operationen auf Werten zulässig sind, und so das Vernünfteln über Korrektheit und automatische Prüfungen (Typprüfung oder Inferenz) ermöglicht.

Demonstration

Demonstration
Eine einfache Funktionstypregel: aus Γ ⊢ f : A → B und Γ ⊢ x : A folgt Γ ⊢ f x : B; ein Beispiel ist das Typisieren von map : (A → B) → Liste A → Liste B in einem polymorphen System.

Fehlanwendung

Fehlanwendung
Dem Typsystem zu viel Vertrauen schenken, indem man ihm semantische Eigenschaften zuschreibt, die es nicht ausdrückt (z. B. Terminierung oder Sicherheit), oder zu restriktive Typen entwerfen, die gültige Programme ohne entsprechenden Sicherheitsgewinn ablehnen.

Konsequenz

Konsequenz
Ein geeignetes Typsystem bietet Kompilierzeitgarantien (Vermeidung bestimmter Laufzeitfehler), Dokumentation der Absicht, Optimierungsmöglichkeiten und eine Grundlage für Programmverifikation.

Umkehrung

Umkehrung
Untyped oder dynamisch typisierte Ansätze, die Klassifizierung auf Laufzeitprüfungen oder Programmiererdiziplin verschieben, mehr Flexibilität erlauben, aber Korrektheitsverantwortung an die Ausführung verlagern.

Abgrenzung

Abgrenzung
Bezieht sich auf syntaktische Klassifikation und statische/dynamische Überprüfung; es bestimmt nicht von sich aus die vollständige Programmssemantik, Laufzeitverhalten oder die Entscheidbarkeit von Verifikationsaufgaben — das hängt von der gewählten Typdisziplin und den Regeln ab.

Semantische Spannung

Semantische Spannung
Spannung zwischen statischem und dynamischem Typing, nominalem und strukturellem Typing sowie zwischen ausdrucksstarken, abhängigen oder effekt-sensitiven Typsystemen und einfacheren, entscheidbaren Systemen, die praktikable Inferenz und Typprüfung bevorzugen.

Synthese

Synthese
Ein Typsystem ist eine strukturierte Regelmenge, die Programmkonstruktionen Typen zuweist, um zulässige Zusammensetzungen einzuschränken und Invarianten zu erfassen; es balanciert Ausdruckskraft, Entscheidbarkeit und praktische Sicherheit, um frühe Fehlererkennung und korrektes Programmzusammenfügen zu ermöglichen.