• Keine Ergebnisse gefunden

2.Konstruktion einer Grammatik(5 Punkte) 1.Grundbegriffe(2+3+3+6 Punkte) Grammatiken(24 Punkte)

N/A
N/A
Protected

Academic year: 2022

Aktie "2.Konstruktion einer Grammatik(5 Punkte) 1.Grundbegriffe(2+3+3+6 Punkte) Grammatiken(24 Punkte)"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Institut für Systemsoftware Übungen zu Übersetzerbau WS 2014/2015

Prof. Dr. H. Mössenböck, DI P. Lengauer, DI P. Hofer Übung 1

Letzter Abgabetermin: Mittwoch, 8.10.2014, 1800 Uhr

Grammatiken (24 Punkte)

1. Grundbegriffe (2+3+3+6 Punkte)

Die Grammatik der Sprache MicroJava finden Sie auf der Übungshomepage:

http://ssw.jku.at/Teaching/Lectures/UB/UE/2014/MicroJava.txt.

a) Wie lang (in Terminalsymbolen) ist der kürzeste Satz in MicroJava, der mindestens ein FormPars enthält? Geben Sie ein Beispiel für einen Satz dieser Länge an.

b) Sind die Nonterminalsymbole Factor, Statement und Addop rekursiv? Wenn ja, wie (links, rechts, zentral, direkt, indirekt)?

c) Wie sieht der konkrete Syntaxbaum für folgenden Satz aus?

program DeepThought final int a=21; { int getAnswer() { return 2 * a; } } Gibt es mehrere konkrete Syntaxbäume für diesen Satz?

d) Welche terminalen Anfänge und Nachfolger haben die Regeln Statement, Expr und VarDecl?

2. Konstruktion einer Grammatik (5 Punkte)

Wie könnte man die folgenden Bedingungen mit einer EBNF-Grammatik beschreiben? Geben Sie eine Grammatik an.

 Eine Zahl ist entweder eine Dezimal-, eine Hexadezimal-Zahl oder eine Zeitangabe.

 Hexadezimalzahlen beginnen mit "0x".

 Zeitangaben haben entweder das Format Minuten:Sekunden oder das Format Stunden:Minuten:Sekunden. Der erste Teil (also Minuten bzw. Stunden) darf ein oder zwei Stellen haben, alle anderen müssen zwei Stellen haben. Minuten und Sekunden müssen zwischen 00 und 59 liegen.

 Die Terminalklassen d (digit) und h (hex digit) sind gegeben, d deckt die Ziffern zwischen 0 und 9, und h die Ziffern A bis F ab. Außerdem können Sie die Terminalklasse sd (small digit), die Ziffern zwischen 0 und 5 enthält verwenden.

Beispiele für gültige Zahlen: 0, 1, 42, 0x123, 1:35, 0xAF, 0x0A, 0x23B9, 04:17, 1:00:00, 99:00:53 Beispiele für ungültige Zahlen: 0b012, 1.5, A, 0x, b, 0xG, 0x12F.3, :01:17, 13:1, 1:00:99

(2)

3. Beseitigung von Linksrekursionen (5 Punkte)

Wo befinden sich in der folgenden Grammatik Linksrekursionen? Wie könnte man die Linksrekursionen entfernen? Geben Sie eine umgeformte EBNF Grammatik ohne Linksrekursionen an.

VarDecl

=

Type ident [ "=" Expression ] | VarDecl "," ident [ "=" Expression ] .

Type

=

"int" | "double"

.

Expression

=

Expression ( "+" | "-" ) number | number

.

ident und number sind Terminalklassen, die einen Namen (Buchstabe gefolgt von Ziffern und Buchstaben) bzw. eine Zahl (bestehend aus Ziffern) definieren.

Abgabe und Hinweise

Die Abgabe der Übungen muss elektronisch erfolgen. Geben Sie folgende Dateien ab:

 Elektronisch in das Repository: PDF-Datei mit der Lösung.

 svn://ssw.jku.at/2014W/UB/k<MatrNr>/branches/UE1

Referenzen

ÄHNLICHE DOKUMENTE

Fortschreiten in Richtung der Drehachse eine Rechtsschraube entsteht. Bestimmen Sie die Matrix von f bez¨ uglich der Standardbasis

• Nur dann, wenn die Punkte für eine Aufgabe nicht differenziert vorgegeben sind, ist ihre Aufschlüsselung auf die einzelnen Lö- sungsschritte Ihnen überlassen.. • Stoßen Sie

Die Grammatik der Sprache MicroJava finden Sie im VO-Skriptum auf Seite 9, Kapitel 5.2. a) Geben Sie den Satz mit der minimalen Anzahl von Terminalsymbolen an, den man mit dieser

ident  und  number  sind  Terminalklassen,  die  einen  Namen  (Buchstabe  gefolgt  von  Ziffern  und 

http://ssw.jku.at/Teaching/Lectures/UB/UE/2010/MicroJava.txt. a) Wie lang ist der kürzeste Satz in MicroJava, der mindestens einen Type und ein Statement enthält? Geben Sie

a) Wie lang (in Terminalsymbolen) ist der kürzeste Satz in MicroJava, der mindestens ein VarDecl enthält? Geben Sie ein Beispiel für einen Satz dieser Länge

[r]

Januar 2019, 11:00 Uhr, in die gekennzeichneten Briefk¨ asten hinter Raum PK 4.3. Sie ben¨ otigen mindestens 50% der Hausaufgabenpunkte f¨ ur