- Statische Typsysteme
-
Statische Typisierung (engl. static typing) bezeichnet ein Schema der Typisierung von Programmiersprachen.
Bei der statischen Typisierung wird im Gegensatz zur dynamischen Typisierung der Datentyp von Variablen und anderen Programmbausteinen schon während der Kompilierung festgelegt. Dies kann durch Typinferenz geschehen oder durch explizite (Deklaration).
Vorteile:
- Bestimmte Fehler können bereits zur Übersetzungszeit erkannt werden und müssen nicht zur Laufzeit geprüft werden. Damit werden Fehler auch in selten benutzten Programmteilen, die bei Tests oft nicht durchlaufen werden, gefunden. Die Effizienz von Programmen wird durch die Reduzierung des Rechenaufwands für Typüberprüfungen zur Laufzeit ebenfalls gesteigert.
- Der von Variablen benötigte Speicherplatz (Größe und bei globalen Variablen auch die Adresse) kann bereits vom Compiler festgelegt werden. Dadurch können Variablen global oder auf dem Stack angelegt werden, statt auf dem Heap (welcher mehr Verwaltungsaufwand benötigt).
- Zahlreiche Optimierungen hängen von den zur Übersetzungszeit vorhandenen Informationen ab. So ermöglicht statische Typisierung zum Beispiel das direkte Einfügen von Maschinencode statt einem Methoden- oder Funktionsaufruf.
Nachteile:
- Teilweise sind die Typen erst zur Laufzeit bekannt, bei Sprachen mit statischer Typisierung bedeutet dies dann meist einen gewissen Aufwand, da das Typsystem "umgangen" werden muss.
- Die Compiler sind aufwendiger, weil dort mehr Aufwand für die Analyse anfällt.
- Statische Typisierung ist weniger flexibel (erschwert z.B. die Erstellung generischer Container, siehe C++-Standardbibliothek).
Siehe auch
Wikimedia Foundation.