Computron VM, lexikálna analýza

Ciele
  1. Oboznámiť sa s organizáciou cvičení predmetu Formálne jazyky a prekladače.
  2. Oboznámiť sa s virtuálnym strojom Computron VM.
  3. Naučiť sa programovať Computron.
  4. Prakticky sa oboznámiť s fungovaním konečno-stavových akceptorov.
Úvod
    Na tomto cvičení by ste sa mali oboznámiť s organizáciou cvičení a podmienkami udelenia zápočtu. Taktiež sa na tomto cvičení naučíte pracovať s virtuálnym strojom Computron VM. Computron je program emulujúci počítač, ktorý sa bude používať ako cieľová architektúra pri preklade programov na ďalších cvičeniach.
Postup
  1. Oboznámte sa s organizáciou cvičení predmetu Formálne jazyky a prekladače a podmienkami udelenia zápočtu. Súbor obsahuje aj návod na konfiguráciu vývojových prostredí.
  2. Preštudujte si stručný návod a príručku k virtuálnemu stroju Computron VM.
    Úloha: Spustíte virtuálny stroj Computron a oboznámte sa s jeho prostredím.
    Poznámka: Pre spustenie použite príkaz:
    java -jar Computron_VM.jar
    Na pravej strane počítača sú dva polia tlačidiel slúžiace na nastavovanie hodnôt registrov a pamäte v binárnom tvare. Pole CPU REGISTER slúži na nastavovanie registra zvoleného prepínačom naľavo. Pole MEMORY REGISTER zobrazuje a umožňuje zmeniť hodnotu pamäte na adrese uloženej v registri PC.
  3. Computron dokáže vykonávať inštrukcie uložené v jeho pamäti.
    Úloha: Zadajte do pamäte Computronu jednoduchý program zložený z troch inštrukcií:
    
    INP
    OUT
    EXIT
    
    Poznámka: Osmičkové kódy inštrukcií sú zobrazené v spodnej časti Computronu.
    Úloha: Nastavte register PC znovu na hodnotu 0 a spustíte program. Zadajte ľubovoľné číslo v terminále vpravo dole a stlačte Enter. Aká je odpoveď programu? Prečo?
    Úloha: Zmeňte prvú inštrukciu programu na INPC a skúste ho spustiť znovu. Ako sa zmenilo správanie programu? Prečo?
  4. Okrem vstupu a výstupu program môže obsahovať aj výpočty.
    Úloha: Naprogramujte Computron tak, aby k číslu zadanému používateľom pripočítal 5 a vypísal výsledok.
    Úloha: Zmeňte program tak, aby nepripočítaval, ale násobil piatimi.
    Poznámka: Budete potrebovať uložiť konštantu 5 niekde do pamäte a použiť jej adresu ako atribút inštrukcie.
  5. Úloha: Inicializujte pseudoregister Begin na hodnotu 010 a načítajte do Computron VM predvytvorený príklad.
    Poznámka: Nastavenie hodnôt registrov je možné vykonať v sekcii "ODFC PROGRAMMING DEVICE":
    • Do textového poľa zadajte hodnotu, ktorú chcete uložiť do registra.
    • Stlačte tlačidlo "Enter".
    • Stlačte postupne tlačidlá registrov, do ktorých chcete danú hodnotu uložiť.
    Následne nahrajte program do ComputronVM pomocou tlačidla "Load". Ak sa register PC automaticky nenastavil na hodnotu 10, inicializujte jeho hodnotu na 010.

    Predpripravený príklad je implementáciou konečno-stavového akceptora. Po úspešnej inicializácii registrov PC a Begin by mal program po spustení prijímať na vstupe reťazec znakov ukončený znakom '#'. Reťazec môže byť akceptovaný (A) alebo neakceptovaný (N).

    Úloha: Preštudujte zdrojový kód príklady uvedený v príručke Computronu.
  6. V programe je možné implementovať aj vetvenie, a to pomocou inštrukcií BZE a JMP.
    Úloha: Naprogramujte Computron tak, aby vyhodnocoval, či číslo zadané používateľom je párne alebo nie. Program teda má vypísať P (párne), alebo N (nepárne).
    Poznámka: Napíšte si program najprv na papier. Keď budete mať celý program premyslený, zadajte ho do Computronu. Na mieste, kde potrebujete adresu pre skok, nechajte hodnotu 0 a po zadaní celého programu ju prepíšte na skutočnú adresu cieľovej inštrukcie.
    Poznámka: Namiesto zadávania inštrukcii pomocou ovládacieho panelu Computronu je možné ho vygenerovať pomocou programu. Ako základ môžete použiť príklad programu, ktorý generuje kód z kroku 3.
Zdroje
  1. Návod k virtuálnemu stroju Computron ODKAZ.
  2. Príručka k virtuálnemu stroju Computron ODKAZ.
  3. Nástroj disassembler pre preklad *.bin súborov v jazyku inštrukcií Computron do txt. ODKAZ.
    Poznámka: Návod:
    • Stiahnite súbor disassembler.exe a spustite ho dvojklikom.
    • Zadajte názov bin súboru, ktorý chcete preložiť (bez prípony "bin").
    • Zadajte názov výstupného súboru txt, do ktorého chcete uložiť preklad (bez prípony "txt").
    Vo vygenerovanom txt súbore nájdete zoznam inštrukcií, ktoré reprezentujú textový zápis programu.
comments powered by Disqus