Zum Inhalt springen

Starke Typisierung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. November 2005 um 11:58 Uhr durch 213.172.120.131 (Diskussion) (in python sind typen an objekte gebunden, nicht an variablen). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Starke Typisierung (engl. strong typing) bezeichnet ein Schema der Typisierung von Programmiersprachen. In der Literatur wird auch von strenger Typisierung gesprochen.

Bei der starken Typisierung bleibt eine einmal durchgeführte Bindung zwischen Variable und Datentyp bestehen, es wird auch (möglichst) keine implizite Typkonvertierung vorgenommen.

Eine nicht stark typisierte Sprache bezeichnet man als schwach typisiert.

Leider ist das Konzept des strong typing alles andere als eindeutig. In der Literatur finden sich diverse Regeln, die sich teilweise widersprechen. Versucht man alle bisher in der Literatur aufgestellten Regeln für strong typing auf bekannte Programmiersprachen anzuwenden, hält keine Sprache dieser Überprüfung stand:

Eine Sprache ist stark typisiert, wenn

  1. Datentypen an Variablennamen anstatt an diskreten Werten geknüpft sind - die passende Terminologie dafür wäre statische Typisierung (static typing) im Gegensatz zur dynamischen Typisierung (dynamic typing);
  2. sie Typüberprüfungen zur Compile-Zeit enthält;
  3. Typkonvertierungen verboten sind;
  4. Typkonvertierungen explizit durchgeführt werden müssen;
  5. die Sprache keine Mechanismen besitzt, um das Typ-System zu entgehen, etwa type casts (Typumwandlungen) in C);
  6. es ein komplexes, fein abgestuftes System an Typen mit Sub-Typen gibt;
  7. der Datentyp eine Objektes fix ist und sich während der gesamten Lebensdauer des Objektes nicht verändern kann (auch diese Eigenschaft wird oftmals statische Typisierung genannt);
  8. das Typ-System das Laufzeitverhalten eines Programmes garantieren kann.

Beispiele

Stark typisierte Sprachen (Keine der genannten Sprachen genügt allen Definitionen.):

Schwach typisierte Sprachen: