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.
   S3fagawa_Definition_kfgEdit.png
   2. mit FLACI: Definition der Grammatik.
   Die Definition in FLACI erfolgte analog.

Teilaufgabe 2

Definition der Übergangsfunktion der Turingmaschine M.

Umsetzung
   Die Definition der TM wurde mittels AutoEDIT von AtoCC vorgenommen.
   S3fagawa_Definition_M.png

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.
   S3fagawa_Ableitung_m.png
   <em>2</em> Bei der Verifizierung mittels FLACI wurde die <m> richtig abgeleitet.
   S3fagawa_Ableitungsbaum_von_M.png
   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.
   S3fagawa_BUK_SCANNER.png   
   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.
   S3fagawa_BUK_PARSER.png
   <popup name="Exkurs LALR(1)-Parser">
   hallo</popup>


Konstruktion des Compilers
   test