IIm18-Kreativaufgabe5
Aus ProgrammingWiki
Archivierte Version vom 2019-06-24T06:54:13+00:00. Aktuelle Version
Inhaltsverzeichnis |
Die Kreativ Aufgabe 5 befasst sich mit der der Codierung dem Parsen und Übersetzen von UTM´s.
Teilaufgabe 1
Definition der kfG mittels der TI-Werkzeuge Atocc oder FLACI.
Umsetzung
1. mit AToCC: Definition der Grammatik aus der Aufgabenstellung.2. mit FLACI: Definition der Grammatik. Die Definition in FLACI erfolgte analog.
Teilaufgabe 2
Definition der Übergangsfunktion der Turingmaschine M.
Teilaufgabe 3
Codierung von M per Hand und Verifizierung von <m> und Variationen von <m>.</m></m>
Umsetzung der Codierung
Mittels der Grammatik und der vorgegebenen Kodierungsregeln der Aufgabenbeschreibung, wurde die Automatendefinition aus Aufgabe 2 in eine Folge von Einsen und Nullen übersetzt.
Übergang 1 Ü-Trenner 1 0 11 0 11 0 11 0 11 0 Übergang 2 Ü-Trenner 11 0 1 0 1 0 1 0 1 0 Übergang 3 Ü-Trenner 11 0 11 0111 0 11 0 11 0 Übergang 4 111 0 11 0 1 0 11 0 1 Trenner-Übergänge 00 Endzustand 1 E-Trenner Endzustand 2 1 0 11
<m>: 10110110110111011101011101101011011011101101110110111011010100110111 </m>
Verifizierung der Codierung
1 Bei der Verifizierung mittels kfgEdit muss <m> vollständig aufgebaut werden können. Hierbei tritt jedoch bei kfgEdit ein Fehler auf, dieser sagt, dass die eingegebene Satzform nicht ableitbar ist.<em>2</em> Bei der Verifizierung mittels FLACI wurde die <m> richtig abgeleitet.
Auf der Abbildung ist nicht der vollständige Ableitungsbaum zu sehen dieser kann aber mittels der Definition aus Teilaufgabe 1 und <m> aus Teilaufgabe 2 von FLACI generiert werden. Aufgrund der Tatsache, dass AtoCC den Ableitungsbaum nicht erstellen kann wurde der Rest der Kreativaufgabe mit FLACI fortgesetzt.</m></m></m>
Ableitungsbäume von Variationen von der Codierung von M
0 <m>: 10110110110111011101011101101011011011101101110110111011010100110111 ohne Abänderungen</m>
1 Variation:110101011101101101101101101011011011101101110110111011010100111011 Dies ist eine zulässige Variation, die ohne Weiteres von FLACI abgeleitet werden kann.
2 Variation:1101001001110011011001101101101011011011101101110110111011010100111011 Diese Variatiion konnte nicht abgeleitet werden da es hier zu eine Verletzung der Regeln von Grammatik kommt.
3 Variation:1110110101101001 Die folgende TM-Codierung enthält nur einen Übergang ist jedoch richtig definiert und kann mittels FLACI abgeleitet werden.
Teilaufgabe 4
Entwicklung eines Compiler der syntaktisch Korrekte Codierung von M in AtoCC(FLACI) Representation übersetzt. Als Parser soll ein LALR(1)-Parser für G entwickelt werden.
Erstellung des LALR(1)-Parser
Der Scanner und der Parser wurden mittels FLACI erstellt. Im folgenden Bild ist die Definition des Scanners zu sehen.![]()
Im nächsten Schritt werden die Regeln für den Parser definiert. Hierzu kann man die Tokens und die Regeln nutzen. Aus der Aufgabenstellung geht hervor das ein LALR(1)-Parser erstellt werden soll. Ein Auszug der definierten Regeln ist im folgenden zu sehen.
<popup name="Exkurs LALR(1)-Parser"> hallo</popup>
Konstruktion des Compilers
test





