− 1 −
Programmiersprachenentwurf
3. Übung
Lexikalische Analyse
Für diese Aufgabenserie benötigen Sie als Ausgangsmaterial den der in Kapitel 3 der Vorlesung besprochenen Scanner, den Sie vom Unterverzeichnis „Uebung3“ als Material downloaden können.
Aufgabe 1
Konstruieren Sie einen Endlichen Automaten, der die Dezimalzahlen von der Form m.n akzeptiert mit den von PASCAL her bekannten Syntaxregelungen. Erweitern Sie danach die lexikalische Analyse von PL/0 so, daß sie Dezimalzahlen dieser Form akzeptiert statt positiver ganzzahliger Konstanten.
Aufgabe 2
Erweitern Sie die lexikalische Analyse von PL/0 so, daß sie Kommentare an jeder Stelle des Quellprogramms, ausgenommen innerhalb von Atomen, akzeptiert und eliminiert. Dabei sollen Kommentare durch die Zeichenfolgen "/*" bzw. "*/" begrenzte Strings sein, in denen die Begrenzer selbst nicht mehr auftreten. Schachtelung von Kommentaren ist nicht erlaubt.
Aufgabe 3
Die Syntax von real-Zahlen wird durch das folgende Syntax-Diagramm beschrieben:
a) Geben Sie einen Endlichen Automaten an, der real-Zahlen mit dieser Syntax akzeptiert, (Syntaxgraph, Start- und End-Zustände).
b) Erweitern Sie den PL0-Scanner, so daß er real-Zahlen mit dieser Syntax akzeptiert und den Wert der Zahlkonstanten auswertet.
Ziffer Ziffer Ziffer
− + E
.