Typsicher

Typsicher

Typsicherheit bezeichnet den Zustand (einer Programmausführung), bei dem die Datentypen gemäß ihren Definitionen in der benutzten Programmiersprache verwendet werden und keine Typverletzungen auftreten. Werden dementsprechend Typfehler spätestens zur Laufzeit erkannt, spricht man von „typsicheren Sprachen“. Typsicherheit herzustellen ist Aufgabe des Compilers bzw. 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. Einige Programmiersprachen machen eine strikte Typprüfung dadurch unmöglich, dass der Ergebnistyp eines Operators oder einer Funktion nicht eindeutig festgelegt ist, wie zum Beispiel beim Divisions-Operator in der Programmiersprache C oder beim Überladen von Operatoren in der objektorientierten Programmierung.

Bei den typisierten Sprachen gibt es solche mit Typprüfungen während der Kompilierung (statisch typisiert) und solche in denen Typprüfungen primär zur Laufzeit stattfinden (dynamisch typisiert). Oft wird fälschlicherweise die statische Typprüfung wegen des angenommenen qualitativen Vorteils gegenüber der dynamischen Typprüfung als „sicher“ bezeichnet.

Es kann keine allgemeine Aussage über die Tauglichkeit beider Formen der Typprüfung getroffen werden – bei statischer Typprüfung ist der Programmierer versucht, diese zu umgehen, beziehungsweise sie wird erst gar nicht vollständig durchgesetzt (zum jetzigen Stand der Technik muss es in jeder statischen Sprache eine Möglichkeit geben, „typlose“ Daten zu erzeugen oder zwischen Typen zu wechseln – etwa wenn Daten vom Massenspeicher gelesen werden), in Sprachen mit dynamischer Typprüfung werden manche Typfehler erst gefunden, wenn es zu spät ist. Bei dynamischer Typprüfung wird jedoch der Programmcode meist sehr viel einfacher.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Generische Programmierung in Java 5.0 — Generische Programmierung wird in Java durch so genannte Generics ermöglicht. Der Begriff steht synonym für „parametrisierte Typen“. Die Idee dahinter ist zusätzliche Variablen für Typen, sog. Typ Variablen, einzuführen. Diese repräsentieren zum… …   Deutsch Wikipedia

  • Generische Programmierung in Java — wird durch sog. Generics ermöglicht. Der Begriff steht synonym für „parametrisierte Typen“. Die Idee dahinter ist, zusätzliche Variablen für Typen einzuführen. Diese Typ Variablen repräsentieren zum Zeitpunkt der Implementierung unbekannte Typen …   Deutsch Wikipedia

  • Delegation (Softwareentwicklung) — Die Delegation (vom lateinischen delegare für „hinschicken“, „anvertrauen“ oder „übertragen“) ist in der Softwareentwicklung ein Lösungskonzept zur losen Bindung eines stellvertretenden Anbieters von Funktionalität und eines Nutzers derselben.… …   Deutsch Wikipedia

  • Signal-Slot-Konzept — Signale und Slots sind ein Konzept aus der Programmierung. Sie realisieren einen ereignisgesteuerten Programmfluss beziehungsweise eine ereignisgesteuerte Kommunikation zwischen Programmobjekten. Ursprünglich geprägt wurde der Begriff durch die… …   Deutsch Wikipedia

  • Anti-pattern — (deutsch: Antimuster) bezeichnet in der Softwareentwicklung einen häufig anzutreffenden schlechten Lösungsansatz für ein bestimmtes Problem. Es bildet damit das Gegenstück zu den Mustern (Entwurfsmuster, Analysemuster, Architekturmuster...),… …   Deutsch Wikipedia

  • Antimuster — Anti Pattern (deutsch: Antimuster) bezeichnet in der Softwareentwicklung einen häufig anzutreffenden schlechten Lösungsansatz für ein bestimmtes Problem. Es bildet damit das Gegenstück zu den Mustern (Entwurfsmuster, Analysemuster,… …   Deutsch Wikipedia

  • Antipattern — Anti Pattern (deutsch: Antimuster) bezeichnet in der Softwareentwicklung einen häufig anzutreffenden schlechten Lösungsansatz für ein bestimmtes Problem. Es bildet damit das Gegenstück zu den Mustern (Entwurfsmuster, Analysemuster,… …   Deutsch Wikipedia

  • Datenverbund — Ein Verbund (engl. object composition) ist ein aus Komponenten verschiedener Datentypen zusammengesetzter Datentyp. Da die Komponenten eines Verbunds wieder Verbünde sein können, können so auch komplexe Datenstrukturen definiert werden. Es gibt… …   Deutsch Wikipedia

  • Db4o — Entwickler Versant Corporation Aktuelle Version 8.0 (1. Februar 2011) Betriebssystem …   Deutsch Wikipedia

  • Formatstring-Angriff — Der Begriff Formatstring Angriff beschreibt das Ausnutzen einer Sicherheitslücke, welche im Jahr 1999 von Przemysław Frasunek und tf8 entdeckt wurde. Der erste Exploit, der diese Technik ausnutzte, erlaubte es einem Angreifer, die Kontrolle über… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”