Implementace neoptimalizujícího překldače pro JVM
Implementujte neoptimalizující překladač pro JVM, který pro AST vygenerovaný podle Cvičení 1 vygeneruje odpovídající byte code.
Minimální požadavky na výsledný překladač jsou:
- Schopnost zkompilovat třídu s atributy a metodami do výsledného (a v rámci jiného projektu) použitelného kódu.
- Podpora konstrukcí return, if, for, while, do-while.
- Deklarace proměnných uvnitř metod.
- Podporované datové typy -- int, boolean, void a práce s libovolnými objekty. (Předpokládejte, že každá jiná třída je buď importována nebo se nachází v balíčku java.lang a v době kompilace i spuštění budou k dispozici stejné třídy.)
- Pro jednoduchost můžete předpokládat, že pro přístup k atributům a metodám daného objektu musí program explicitně obsahovat uvedení this.