Übungen
Klicke auf einen Schalter, um die Aufgabe zu öffnen!
Skizziere jeweils ein Syntaxdiagramm für die folgenden A-B-Sprachen. zur Verdeutlichung ist teilweise der reguläre Ausdruck mit angegeben.
-
alle Wörten, die mit a beginnen:
a(a|b)* -
alle Wörten, die mit b enden:
(a|b)*b -
alle Wörten, die ab enthalten:
(a|b)*ab(a|b)* - alle Wörter mit mindestens 2 Zeichen.
- alle Wörter, die an Anfang und Ende verschiedene Zeichen haben.
Hier siehst du ein Syntaxdiagramm zur groben Definition von KfZ-Kennzeichen:
Skizziere die fehlenden Syntaxdiagramme für das Stadtkürzel, die Buchstabenfolge und die Nummernfolge. Dabei sollen folgende Bedingungen erfüllt sein:
- Das Stadtkürzel besteht aus 1-3 Buchstaben.
- Die Buchstabenfolge besteht aus 1-2 Buchstaben.
- Die Nummernfolge ist eine Zahl zwischen 1 und 9999.
Hier siehst du Syntaxdiagramme zur Definition von Gleitkommazahlen, wie sie z.B. in Python verwendet werden dürfen:
Schaue dir die Diagramme genau an und bearbeite dann die folgenden Aufgaben.
- Begründe für die folgenden Zahlen, ob sie korrekt gebildet sind:
0-101+01+13000+-129 - Begründe für die folgenden Kommazahlen, ob sie korrekt gebildet sind:
0.000+.51-13.000427.73 - Begründe für die folgenden Gleitkommazahlen, ob sie korrekt gebildet sind:
1e1.8e-0000.354E+7-0.+e3+7.73+0.0E+0 - Teste die Richtigkeit der Syntaxdiagramme, indem du in einer Python-Shell die Zahlen eingibst. Kann Python sie korrekt interpretieren?
- Formuliere die jeweiligen regulären Ausdrücken für die Sprachkonstrukte der Syntaxdiagramme!
- Ziffer_ohne_Null:
- Ziffer:
- Zahl:
- Ziffer_ohne_Null:
Hier siehst du Syntaxdiagramme zur Definition der BONSAI-Assemblersprache, die (so ähnlich) im Kapitel Rechnerarchitektur behandelt wird.
Schaue dir die Diagramme genau an und bearbeite dann die folgenden Aufgaben.
- Formuliere das kürzeste Programm, das nach den Diagrammen gebildet werden kann:
- Entscheide, ob die folgenden Zeichenketten korrekte BONSAI-Programme sind.
-
tst01;jmp14;hlt -
tst00;hlt;jmp41; -
hlt;hlt;hlt;hlt -
tst1;jmp4;hlt -
inc99;test11;hlt
-
- Formuliere nach den Syntaxdiagrammen ein BONSAI-Programm,
das bei der Ausführung Register 01 leeren würde.
- Ergänze die Syntaxdiagramme, damit ...
- ... auch der letzte Befehl mit einem Semikolon abschließt.
- ... jeder Befehl mit einer zweistelligen Zeilennummer beginnt.
- ... Registeradressen (bei inc, dec und tst) auch nur eine Ziffer haben dürfen.
Skizziere Syntaxdiagramme zur Definition von gültigen Uhrzeiten (z.B. 23:59 oder 07:11). Verwende dabei Syntaxdiagramme für Teilmengen der Ziffern wie z.B. "Ziffer_0_bis_5".