URL: /axel/informatik3_ws0203_blatt4.html
Dieses Übungsblatt ist in Zweiergruppen zu
bearbeiten.
Aufgabe 11 (3+3+3 Punkte)
Gegeben seien zwei kontextfreie Sprache A und B. Man zeige
- die Vereinigung A U B ( = { u | u aus A oder u aus B} ) ist kontextfrei.
- die Verkettung AB (= { uv | u aus A und v aus B } ) ist kontextfrei.
- das Komplement A\ B (= { u | u ist aus A aber nicht aus B} ) muß nicht
kontextfrei sein.
Aufgabe 12(10 Punkte)
Es soll in mehreren Schritten ein Taschenrechnerprogramm gebaut werden. Es
können Ausdrücke (z.B. 2^10;)
eingegeben werden und das Programm gibt die Ergebniszeilen aus. (z.B. 1024).
Im ersten Schritt werden nur
Integerzahlen verarbeitet. Daraus kann man mit den Operatoren
+ - * / % ^ ) (
Ausdrücke bauen. Ein Ausdruck soll
durch ; beendet werden. Schreiben Sie ein lex Programm welches die Token
erkennt, d.h. das Programm soll die
relevanten Teile erkennen und mit printf den Tokennamen ausgeben, nicht relevante
Eingaben sollen überlesen werden. Beim Einlesen einer Zahl soll ZAHL=<wert>
ausgegeben werden.
Abgabe: der lex source code per email (8 ProgrammierPunkte), Dokumentation
mit Beschreibung der Vorgehensweise und Beschreibung der vorgenommenen Tests
per Papier (2 ProgrammierPunkte)