Rozšiřte překladač jazyka aritmetických výrazů s celými čísly, proměnnými, operátory +, -, *, /, závorkami a přiřazením o generování instrukcí zásobníkového kódu podle následující tabulky:
| CONST n | Vložení konstanty n na vrchol zásobníku. |
| LOAD x | Vložení hodnoty proměnné se jménem x na vrchol zásobníku. |
| STORE x | Uložení hodnoty z vrcholu zásobníku do proměnné se jménem x. Hodnota je ponechána na vrcholu zásobníku. |
| ADD, SUB, MUL, DIV | Provedení aritmetické operace se dvěma položkami z vrcholu zásobníku a jejich nahrazení výsledkem. |
| NEG | Změna znaménka hodnoty na vrcholu zásobníku. |
| Tisk a odstranění hodnoty z vrcholu zásobníku. |
Vstupem je textový soubor obsahující posloupnost aritmetických výrazů ukončených středníkem. Mezery, tabulátory a konce řádků mezi symboly se vynechávají. Čísla mohou být zapsána ve tvaru konstanty jazyka C, proměnné jsou označeny identifikátory tvořenými posloupností písmen a číslic začínající písmenem.
Program vypíše na standardní výstup posloupnost vygenerovaných instrukcí, pro každý výraz bude tato posloupnost končit instrukcí PRINT.
Vstup:
a = b = 3 * 5; a+b;
Výstup:
CONST 3 CONST 5 MUL STORE b STORE a PRINT LOAD a LOAD b ADD PRINT