Typsicherheit

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Typsicherheit bezeichnet den Zustand (einer Programmausführung), bei dem die Datentypen gemäß ihren Definitionen in der benutzten Programmiersprache verwendet werden und keine Typverletzungen auftreten.

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Typsicherheit herzustellen, ist Aufgabe des Compilers beziehungsweise des Interpreters. Als Typprüfung (englisch type checking) bezeichnet man dabei den Vorgang, die Verwendung von Datentypen innerhalb des Typsystems zu prüfen, um etwaige Typverletzungen festzustellen.

Hierbei müssen beispielsweise bei Zuweisungen die beteiligten Typen nicht notwendig identisch sein, da ganze Zahlen unter Umständen Gleitkommavariablen zugewiesen werden können. Die beteiligten Typen müssen aber zuweisungskompatibel sein.

Werden dementsprechende Typfehler spätestens zur Laufzeit erkannt, spricht man von „typsicheren Programmiersprachen“.

Nutzen[Bearbeiten | Quelltext bearbeiten]

Typsichere Programme weisen eine hohe Betriebssicherheit und Informationssicherheit auf.[1] Die weit verbreitete Programmiersprache C von 1972 ist im Gegensatz zur ebenfalls sehr verbreiteten Programmiersprache Java von 1995 nicht typsicher, und weniger erfahrene oder unaufmerksame Programmierer können damit fehlerhaften oder leicht angreifbaren Programmcode erzeugen.[2]

Statische und dynamische Typsicherheit[Bearbeiten | Quelltext bearbeiten]

Bei den typisierten Programmiersprachen gibt es solche mit Typprüfungen während der Kompilierung (statisch typisiert) und solche, bei denen strenge Typprüfungen erst zur Laufzeit stattfinden können (dynamisch typisiert), wie zum Beispiel bei Smalltalk. Ersteres Konzept erzeugt schneller ablaufenden Programmcode, der insbesondere für größere Software-Systeme erforderlich ist, [3] letzteres erlaubt effizientere und flexiblere Datenmodellierung, wie zum Beispiel bei der objektorientierten Programmierung. Viele moderne Programmiersprachen wie zum Beispiel Oberon[4] von 1991 oder C# von 2001 unterstützen daher beide Konzepte.[5]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Hans J. Schneider: Geschichte der Programmiersprachen, Friedrich-Alexander-Universit¨at Erlangen-Nurnberg (2012), abgerufen am 9. Juli 2016
  2. Aaron Greenhouse: A Programmer-Oriented Approach to Safe Concurrency, Carnegie Mellon University Pittsburgh (Mai 2003), abgerufen am 9. Juli 2016
  3. Hanspeter Mössenböck: Object-Oriented Programming in Oberon-2, siehe auch Stichwort "Smalltalk", abgerufen am 9. Juli 2016
  4. Hanspeter Mössenböck, Niklaus Wirth: The Programming Language Oberon-2, Institut für Computersysteme, ETH Zürich (Oktober 1993), abgerufen am 9. Juli 2016
  5. Hanspeter Mössenböck: Object-oriented Programming in Oberon, ETH Zürich, Institut für Computersysteme (19. November 1997), abgerufen am 9. Juli 2016