Ciele
- Oboznámiť sa s organizáciou cvičení predmetu Formálne jazyky a prekladače.
- Oboznámiť sa s virtuálnym strojom Computron VM.
- Naučiť sa programovať Computron.
- 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
-
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í.
-
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: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.
-
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? -
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.
-
Ú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ť.
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. -
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
- Návod k virtuálnemu stroju Computron ODKAZ.
- Príručka k virtuálnemu stroju Computron ODKAZ.
- 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").