Prekladač (časť 2)

Ciele
  1. Doplniť kód prekladača a generátora o operácie porovnávania
  2. Definovať gramatiku prekladača pre zadanie.
  3. Vytvoriť kostru prekladača podľa gramatiky.
Úvod
    Na dnešnom cvičení si doplníte prekladač o operácie porovnávania celých čísel a následne si sami vytvoríte gramatiku, podľa ktorej implementujete prekladač na zadanie. Podľa gramatiky si vytvoríte kostru prekladača do ktorej budete postupne pridávať konštrukcie ktoré umožnia preklad do kódu Computronu.
Postup
  1. Úloha: Doplňte do kódu prekladača podporu pre operácie porovnávania.

    Vykonajte nasledukúce úkony:

    • Upraviť lexikálny analyzátor. Musí akceptovať všetkých 6 operátorov potrebných pre operácie porovnávania
    • Upraviť syntaktický analyzátor. Upraviť gramatiku pridaním nového pravidla a teda aj novej funkcie do kódu, ktorá rozpoznáva operácie porovnávania. Operácie sú neasociatívne a majú nižšiu prioritu ako operácia sčítania.
    • Vytvoriť funkcie pre generátor, ktoré budú zapisovať kód Computrona.
  2. Úloha: Vytvorte si gramatiku pre váš prekladač podľa špecifikácie zadania

    Jadro gramatiky už máte hotové, teraz si to obaľte adekvátnymi pravidlami, aby jazyk spĺňal nasledujúce požiadavky:

    • Jazyk má porporu pre zátvorkové výrazy aritmetických operácií a operácií porovnávania (to už máte).
    • Na začiatku programu sa nachádza deklarácia premenných, používaných v programe.
    • Jazyk pozostáva zo sekvencie príkazov. Môžete teda do premenných priradzovať hodnoty alebo výsledky výrazov.
    • Jazyk umožňuje vypísať vypočítaný výraz na obrazovku a načítať premenné od používateľa.
    • Jazyk obsahuje príkazy pre cyklus a vetvenie.
    Poznámka: Môžete sa inšpirovať gramatikou, ktorá je zadefinovaná v knihe Prekladače, kapitola 3.6.2. No nie je podmienkou, aby vaša gramatika používala rovnaké kľúčové slová aké sú v danej gramatike.
    Úloha: Uistite sa, že vaša gramatika spĺňa podmienky, uvedené vyššie, porpípade si ju nechajte skontrolovať cvičiacim.
     
  3. Ak už teda máte gramatiku hotovú, môžete sa pustiť do implementácie. Podobne ako v prvej úlohe, musíte upraviť lexikálny a syntaktický analyzátor. Úpravu generátora ešte nemusíte robiť, to bude náplňou ďalšieho cvičenia.
    Poznámka: Ak máte kostru hotovú, tak váš prekladač by vám mal bez chyby spracovať gramaticky správny vstup. Takto si môžete overiť správnosť riešenia.
comments powered by Disqus