URL: /axel/informatik3_ws9899_blatt3.html
Dieses Übungsblatt ist alleine zu bearbeiten.
Aufgabe 8 (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 Punkte),
Dokumentation mit Beschreibung der Vorgehensweise und Beschreibung der
vorgenommenen Tests per Papier (2 Punkte)
Aufgabe 9 (12 Punkte)
Schreiben Sie ein C-Programm, welches wie das UNIX Programm
grep funktioniert. Durch den Aufruf
grep <string>
soll das Programm in der Standardeingabe nach Zeilen
suchen, in denen der string vorkommt. Dazu soll zuerst
ein endlicher Automat erstellt werden, der den string
sucht, im zweiten Teil soll dieser Automat die Eingabe analysieren.
Abgabe: der C source code per email (8 Punkte),
Dokumentation mit Beschreibung der Vorgehensweise und Beschreibung der
vorgenommenen Tests per Papier (4 Punkte)