Problem
Write a compiler for simple arithmetic expressions described by the grammar in the text. It should produce a list of "instructions" for a machine capable of three operations: push the value of a variable onto a stack; add the top two values on the stack, removing them from the stack, then putting the result there; and multiply the top two values on the stack, in the same way.