compilerbau:aufgaben:start
Dies ist eine alte Version des Dokuments!
Aufgaben
Hier ein paar einfache Aufgaben, die helfen, die bisherigen Ausführungen zum Compilerbau zu verinnerlichen und noch besser zu verstehen. Der Schwierigkeitsgrad der Aufgaben ist aufsteigend:
- Erweitere die Programmiersprache um Bedingungen. Sie sollte also bspw.
if ( a > b ) {print(a);} else {print(b);}
verstehen. - Erweitere Lexer/Parser/Interpreter, so dass die Programmiersprache neben
print()
auch noch andere Methoden versteht, z.B. zum Zeichnen in ein kleines Fenster - Bisher gibt es nur Rechenoperationen für Double-Werte. Füge boolesche Rechenoperationen (&&, ||, !) hinzu.
- Füge einen Datentyp
String
hinzu, insbesondere die Möglichkeit, auch Stringkonstanten im Code unterzubringen. Der Compiler sollte also Programme der Arta = "Test"; print(a);
verstehen. - Erweitere den Parser so, dass Variablen typisiert sind. Sie müssen dann natürlich vor dem ersten Aufruf deklariert werden, z.B. mit
double a = 10; print(a);
- Erweitere den Parser so, dass er automatische Typkonvertierungen durchführt und z.B. Folgendes versteht:
double a = 10; print("Die Zahl ist:" + a);
compilerbau/aufgaben/start.1635452408.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)