MINT üben

Statische und dynamische Typen

Dreißig Übungen zu Typisierung — statisch und dynamisch, Typfehler, Typinferenz und stille Umwandlungen.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.

A1
Was passt nicht dazu?
AFB II

Begründe in jeder Gruppe, welche Karte nicht zu den anderen passt, und klicke sie an.

In jeder Gruppe passt genau eine Karte nicht zu den anderen. Klicke dieses „Kuckucksei“ an und prüfe dann. Mit der Tastatur: Tab zur Gruppe, ←/→ wandern, Enter wählt.
Welche Sprache ist nicht dynamisch typisiert?

Welche Aussage passt nicht zu statischer Typisierung?

Welcher Ausdruck löst in Python einen TypeError aus?

Gruppe 1 trennt statische und dynamische Sprachen, Gruppe 2 prüft die Eigenschaften statischer Typisierung, Gruppe 3 den Unterschied zwischen erlaubten und verbotenen Operationen.
Ansatz: Prüfe in jeder Gruppe zuerst, was die drei passenden Karten gemeinsam haben.
Weiter: In Gruppe 3 verknüpfen drei Karten gleiche Typen oder wiederholen Text, nur eine mischt Text und Zahl mit +.
A2
Früher oder später gemeldet?
AFB II

Vergleiche in jeder Zeile, wann links der Typfehler bemerkt wird, im Vergleich zu rechts.

Wähle in jeder Zeile, wie die linke Seite zur rechten steht, und prüfe dann alle auf einmal. Mit der Tastatur: ←/→ wählt, ↑/↓ wechselt die Zeile, Enter prüft.
  • Java meldet einen Typfehler in Zeile 12
    Python meldet denselben Fehler in Zeile 12
  • Rust meldet einen Typfehler
    Go meldet einen Typfehler
  • PHP meldet einen Fehler in Zeile 3, die als erste läuft
    Java meldet den Fehler in Zeile 3
  • JavaScript meldet einen Fehler in der letzten Zeile
    JavaScript meldet einen Fehler in der ersten Zeile
  • C# meldet einen Fehler, der nur in Zeile 40 steckt
    C# meldet einen Fehler, der nur in Zeile 2 steckt
Compiler melden Typfehler vor dem Start, gleichgültig, in welcher Zeile sie stehen: Java, Rust, Go und C# immer früh. Python, PHP und JavaScript melden sie erst, wenn die Zeile läuft – eine spätere Zeile also später.
Ansatz: Trenne zuerst Sprachen mit Compiler von Sprachen mit Interpreter.
Weiter: Bei einem Compiler spielt die Zeile keine Rolle, beim Interpreter entscheidet die Reihenfolge der Ausführung.
A3
Statisch typisierte Sprachen
AFB I

Nenne alle statisch typisierten Sprachen aus dem Kapitel und markiere ihre Felder.

Markiere alle Felder mit einer statisch typisierten Sprache und klicke dann auf „Prüfen“.
Java, C, Rust, Go und C# sind statisch typisiert: Der Compiler prüft die Typen vor dem Start. Python, PHP und JavaScript sind dynamisch typisiert, und Assembler kennt keine Datentypen.
Ansatz: Statisch typisierte Sprachen werden vor dem Start von einem Compiler geprüft.
Weiter: Fünf Felder gehören dazu; Python, PHP und JavaScript sind dynamisch, und Assembler hat keine Datentypen.