Fichas
NPS 09 - Begriffe und Übersichten zu Typsystemen
Fichas del conjunto (9)
- 1Was sind die Bestandteile eines Typsystems? (5)- Die Typen selbst, die entweder mittels Typdefinitionen erzeugt oder in der jeweiligen Sprache fest integriert sind
- Die Möglichkeit, Programmelemente (wie Variablen, Methodenparameter usw.) mittels Typannotation mit einem bestimmten Typ zu deklarieren
- Regeln, nach denen die Werte von Ausdrücken einem bestimmten Typ zugeordnet werden.
- Regeln zur Prüfung der Typkorrektheit von Zuweisungen
- Optional weitere Sprachbestandteile wie typbezogene Operatoren oder eine Reflection API zur Ermittlung und Prüfung von Typinformation zur Laufzeit - 2Was sind die Aufgaben eines Typsystems?- Erkennung von Typverletzungen bei der Übersetzung und Ausführung. Die Typinformation kann dabei als eine
redundante Information aufgefasst werden, die verhindert, dass Variablen Werte zugewiesen werden, welche die
betreffende Variable niemals annehmen sollte (sogenannte Typinvarianten). Sie verhindert so die Ausführung von
Operationen auf den Inhalten dieser Variablen, die entweder unmöglich oder aus programmlogischen Gründen
nicht sinnvoll ist.
- Typumwandlung (engl. type conversion), also Umwandlung
bzw. Beförderung und Degradierung von Typen (engl. type promotion, type demotion) - 3Welche Ausprägungen von Typumwandlung gibt es?- Implizit und explizit
- Verlustbehaftet oder nicht verlustbehaftet („werterhaltend“). Typerweiterungen (Type Promotion), Typeinschränkungen (Type Demotion).
- Vordefiniert oder explizit programmiert (benutzerdefiniert). Vordefinierte standard conversions für die elementaren Typen.
- Mit Prüfung der Umwandlung (bei der Übersetzung oder zur Laufzeit) oder ohne Prüfung. - 4Klassifikation von Typsystemen I: Was unterscheidet dynamische Typisierung und statische Typisierung? Welchen Vorteil besitzt statische Typisierung?Typprüfungen können zur Übersetzungszeit oder zur Laufzeit vorgenommen werden. Im ersten Fall spricht man von statischer Typprüfung, im zweiten von dynamischer Typprüfung. Grundsätzlich sind statische Typprüfungen wünschenswert, da sie
Laufzeitfehler ebenso wie möglicherweise schwer auffindbare Folgefehler ausschließen. - 5Klassifikation von Typsystemen II: Was unterscheidet starke Typisierung von schwacher Typisierung?Wie streng unterscheidet die Sprache die Typen? Welche Datentypen können
ineinander umgewandelt werden? Erlaubt sie implizite Typumwandlungen? Erlaubt sie unsichere Typumwandlungen, bei denen z. B. Werte verloren gehen können? - 6Klassifikation von Typsystemen III: Was unterscheidet Explizite Typisierung (explicit typing) von Impliziter Typisierung (implicit typing)?Ob die Typen explizit genannt oder implizit durch Methoden und Attribute impliziert werden.
- 7Klassifikation von Typsystemen IV: Was ist optionale Typisierung?Optionale Typ-Annotationen werden zur Unterstützung genutzt und bei der
Übersetzung geprüft, haben aber letztendlich keine Auswirkungen auf die tatsächliche Umsetzung durch den Compiler zur Laufzeit (nach der Übersetzung „weggefallen“). - 8Was ist nominal Typing?Es zählt der Typ, nicht, was das Objekt kann.
- 9Was ist Structural Typing?Es zählt die Struktur, nicht der Typ. ( Ähnlich wie Duck Typing)
Información
- Descripción
- Fichas sobre NPS 09 - Begriffe und Übersichten zu Typsystemen, creado por Tojansen el 20/01/2015.
- Creado por
- Tojansen
- Visitas
- 8
- Valoración