Typsicherheit

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Dieser Artikel ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Angaben ohne ausreichenden Beleg könnten daher möglicherweise demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst.
Einleitung und Beschreibung nicht belegt. Ein Teil der Belege erfüllt zudem nicht die Anforderung an zuverlässige Informationsquellen. (August 2016)

Typsicherheit ist ein Begriff aus der Informatik, speziell aus dem Bereich Programmiersprachen. Er 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]

Bei der Software-Entwicklung stellt statische Typsicherheit einen Faktor dar, der die Code-Qualität und die Zuverlässigkeit des entwickelten Programms erhöht. So weisen typsichere Programme eine hohe Betriebssicherheit und Informationssicherheit auf.[1] Zudem erleichtert statische Typisierung den Arbeitsfluss beim Code-Refactoring. Da die Aspekte der Typsicherheit ebenfalls durch eine ausreichende Testabdeckung nachgewiesen werden können, wird der Nutzen statischer Typsicherheit unter Software-Entwicklern kontrovers gesehen. Der tatsächliche Nutzen hängt häufig von der persönlichen Arbeitsweise eines Programmierers ab.

Die weit verbreitete Programmiersprache C von 1972 ist im Gegensatz zur ebenfalls sehr verbreiteten Programmiersprache Java von 1995 nur begrenzt typsicher. Es wird daher häufig die Ansicht vertreten, dass weniger erfahrene oder unaufmerksame Programmierer in C fehlerhaften oder leicht angreifbaren Programmcode erzeugen können.[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ät 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