Die Idee
Aus einem Programmtext in der Sprache MiniPython ist durch die beiden vorangegangenen Verarbeitungsschritte eine strukturierte Darstellung geworden.
Zunächst wurden die kleinsten sinntragenden Einheiten, so genannte "Tokens" zunächst ausfindig gemacht. Sie sind hier als graue Kästen eingezeichnet. Danach wurden diese "Tokens" zu immer größeren Blöcken zusammengefasst wurden (orange Kästen). Diese verschachtelte Struktur bildet nun eine geeignete Grundlage, um einen Assembler-Code zusammenzusetzen. Die Grundidee dabei ist recht einfach:
Jeder Sorte von Block entspricht nun eine bestimmte Wirkungsweise:- Bei einer
Zuweisung
der FormVAR ZUW ZAHL
muss die richtige Zahl an die Stelle im Speicher geschrieben wird, die der zugehörigen Variable entspricht. - Bei einer
Bedingung
der FormVAR GL NULL
muss die entsprechende Variable mit dem Wert 0 verglichen werden und das Ergebnis des Vergleichs irgendwo im Speicher festgehalten werden. - Bei einer
Fallunterscheidung
der FormIF Bedingung DP Sequenz1 ELSE DP Sequenz2 END
muss zunächst die Gültigkeit der Bedingung ausgeführt werden. Dann wird je nach Ergebnis (im Speicher) die erste oder die zweite Sequenz aufgerufen.
Quellen
- [1]: MiniPython-Programm mit Struktur - Urheber: Peter Dauscher - Lizenz: inf-schule.de