Home

Typisierung

Typisierung, auch Typisierungssystem oder Typensystem, bezeichnet in der Informatik die Zuweisung von Datentypen zu Werten, Ausdrücken oder Variablen sowie die damit verbundenen Regeln, welche Operationen erlaubt sind. Typen beschreiben die Art der Daten (Zahlen, Text, Datum, Objekte) und beeinflussen Speicherbedarf, Vergleichbarkeit und Validierung.

Eine zentrale Unterscheidung betrifft Static vs. Dynamic Typing. Static Typing prüft Typen zur Übersetzungszeit (Compile-Time) und

Nominales vs. strukturelles Typing beschreibt, wie Typkompatibilität bestimmt wird. Beim nominalen Typing hängt die Zugehörigkeit von

Beispiele: Statically types languages wie Java, C++ oder Rust; dynamisch typisierte Sprachen wie Python oder JavaScript.

verhindert
typbezogene
Fehler
früh.
Dynamic
Typing
verlagert
die
Typprüfung
auf
Laufzeit
(Runtime),
was
Flexibilität
ermöglicht,
jedoch
das
Risiko
von
Typfehlern
erst
zur
Ausführung
erhöht.
Eine
weitere
Dimension
ist
Typstärke:
Strong
Typing
reduziert
implizite
Typumwandlungen,
wodurch
Überraschungen
seltener
auftreten;
Weak
Typing
erlaubt
eher
automatische
Konvertierungen,
was
zu
unerwarteten
Ergebnissen
führen
kann.
deklarierter
Typbezeichnung
ab,
beim
strukturellen
Typing
von
der
Struktur
bzw.
dem
Aufbau
der
Typen.
Duck
Typing
ist
eine
praktikable
Form
des
strukturellen
Typings,
bei
der
auf
das
Vorhandensein
bestimmter
Methoden
geachtet
wird,
unabhängig
von
der
Typbezeichnung.
Typinferenz
bedeutet,
dass
der
Compiler
Typen
automatisch
ableiten
kann,
wodurch
explizite
Typangaben
reduziert
werden.
Typinferenz
findet
sich
in
ML-/Haskell-Umgebungen,
Rust
und
TypeScript
ergänzt
JavaScript
um
optional
statische
Typisierung.
Typisierung
beeinflusst
Sicherheit,
Wartbarkeit,
Performance
und
Entwicklungs­tempo
und
bildet
eine
Grundlage
vieler
Sprachen,
Tools
und
Datenbanksysteme.