DIE INFIX- und POSTFIX-FORM Dieses Programm demonstriert, wie ein Compiler einen mathematischen Ausdruck verarbeiten würde. Er bringt ihn zu erst in eine für ihn leserliche Form und wandelt diese in Assemblerbefehle um. Dabei simuliert dieses Programm die Aufgabe äußerst stur und ohne weitreichende Syntaxüberprüfung, die eigentlich von einem vorgeschalteten Scanner erledigt werden müßte. Um die Reaktionen auf Operatoren bequem zu erledigen, wird als konstante eine Matrix definiert. Dieses Array "action" legt fest, wie die im Hauptteil befindliche switch-Anweisung reagieren soll. Die Variable "translat" dient nur dazu, den Index in das Array "action" zu errechnen, da dies die Position des Zeichens im String "translat" ist. Das Programm simuliert zudem den Datentyp STACK, der hier als ein Array mit 256 Elementen definiert wird. Als Pointer auf das oberste LEERE Element dient die Variable stk_count. Zur Stackmanipulation verwende ich jeweils Routinen, obwohl zwei davon auch ebenso gut als #define-Anweisung hätten definiert werden können, da es sich schlicht um dir Rückgabe des obersten Elementes handelt, was in einem Befehl erledigt werden kann. Das ausgeben der Assemblerbefehle funktioniert nun recht einfach, da man sich keinen Kopf mehr um die Reihenfolge der Operatoren machen muß. Es ist bereits in der Postfixform festgehalten, was auf den Stapel muß, und was dann damit passieren muß. Die Routine erklärt sich sicher von selbst.