- Pochopiť princíp prekladu príkazov JMM.
-
Jazyk JMM podporuje niekoľko druhov príkazov, ktoré sa prekladajú rozdielnym spôsobom. Pre príkazy pozostávajúce len z výrazu je vygenerovaný kód výrazu a inštrukcia, ktorý vyberie výsledok výrazu zo zásobníka, keďže už nebude využitý.
Pri preklade príkazov podmienky a cykly je potrebné narušiť normálne poradie vykonávanie inštrukcií a vykonať skoky na určité pozície v kóde. Na to slúžia inštrukcie podmieneného a nepodmieneného skoku, ktoré ako atribút prijímajú adresu inštrukcie, ktorá sa má vykonať ako ďalšia. V JAL reprezentácií inštrukcií je namiesto adresy použité návestie. Návestia sú identifikátory, ktoré je možné umiestniť pred inštrukcie a takto pomenovať ich pozíciu.
Fragmenty prekladača zodpovedné za preklad príkazov sú uvedené v prezentácii.
Úloha: Oboznámte sa s vytvoreným prekladačom. Vyskúšajte prekladač na jednoduchých príkladoch (acyklus.jmm
,grtest.jmm
)Úloha: Doplňte príkaz cyklu FOR so syntaxou (acyklus.jmm
):Prikaz -> for ( VoidVyraz ; Vyraz ; VoidVyraz ) Prikaz