Karlsruher Institut f¨ ur Technologie
Lehrstuhl f¨ ur Programmierparadigmen
Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof. Dr.-Ing. G. Snelting
Ubungsleiter: Sebastian Buchwald¨ Sebastian.Buchwald@kit.edu Ubungsblatt 5¨ Ausgabe: 19.5.2014 Besprechung: 26.5.2014
Aufgabe 1:Morsecode
In dieser Aufgabe soll ein Earley-Parser f¨ur Morsecode erstellt werden. Dazu betrachten wir die kontextfreie GrammatikG= (T, N, P,Start) mit T={·,−},N ={Start,Symbol,A, . . . ,Z}und folgenden Produktionen:
Start →Symbol|Symbol Start
Symbol→A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z A→ · −
B→−· · · C→−·−· D→−· · E→ · F→ · · −· G→− −· H→ · · · ·
I→ · · J→ · − − − K→−·−
L→ · −· · M →− −
N→−· O→− − − P→ · − −· Q→− −·− R→ · −· S→ · · · T→− U → · · − V → · · ·− W → · − − X→−· ·− Y →−·− − Z→− −· ·
1.1Implementierung
Implementieren Sie einen Earley-Parser f¨ur diese Grammatik in einer Programmiersprache ihrer Wahl.
1
1.2Anwendung (Zusatzaufgabe)
Benutzen Sie den Earley-Parser, um die folgenden beiden Sequenzen zu dekodieren:
−·− − −·− − − − ·−· · · · ·− − − − −· · · −·− −·− −
2