usaa20/sk4
2021-01-11 12:31:56 +01:00
..
kod.txt Hotove 2021-01-11 12:31:56 +01:00
Makefile aa 2021-01-09 21:19:30 +01:00
Meno.txt hotovo 2021-01-09 21:03:10 +01:00
program.c Hotove 2021-01-11 12:31:56 +01:00
program.exe Hotove 2021-01-11 12:31:56 +01:00
readme.MD Hotove 2021-01-11 12:31:56 +01:00
sk4.zip aa 2021-01-09 21:19:30 +01:00

álny stroj programovacieho jazyka TUKAFUK sa skladá z dvoch pások. Na jednej páske je napísaný program. Po programovej páske beží programová hlava PH a číta inštrukcie zľava doprava. Stroj má k dispozícii aj dátovú pásku s osobitnou hlavou DH.

Príklad počiatočného stavu virtuálneho stroja TUKAFUK:

      PH
      |
      v
    +-----+-----+-----+-----+

Program | TUK | INK | DEK | FUK | +-----+-----+-----+-----+

     DH
      |
      v
    +---+---+---+---+

Data | 0 | 0 | 0 | 0 | +---+---+---+---+ Skladá sa z nasledujúcich symbolov:

TUK začiatok programu INK inkrementuj údaj na mieste kde ukazuje DH DEK dekrementuj údaj na mieste kde ukazuje DH BREK posuň hlavu DH do prava o jedno miesto GLEK posuň hlavu DH do ľava o jedno miesto PUK vypíš 1 byte z miesta kde ukazuje hlava DH KUK načítaj 1 byte na miesto je ukazuje hlava DH [ ak je hlava DH nula, posuň PH na zodpovedajúcu značku ]. Inak pokračj ďalej. ] ak hlava nie je nula, pokračuj s PH na zodpovedajúvej značke [. Inak pokračuj ďalej. FUK koniec programu iný znak: odeľuje príkazy alebo slúži ako komentár. Vytvorte interpret jazyka TUKAFUK. Program by mal implementovať funkciu:

void run_tukafuk(const char* code); Funkcia preloží vstupný program (zistí adresy skokov) a spustí ho. Preklad programu znamená identifikáciu inštrukcií a zistenie adries pre skok programovej hlavy PH. Pri implementácii zistenia adries PH v programe pre inštrukcie [ a ]. Funkcie getchar() a putchar() použite pre implementáciu inštrukcií PUK a KUK . Pre implementáciu dátovej pásky použite pole znakov, pre implementáciu programovej pásky použite pole spracovaných inštrukcií.

Vytvorte program v jazyku TUKAFUK na výpis celého Vášho mena.

Opis Funkčnosti : Program načíta textový súbor do ktorého budú vložené jednotlivé inštrukcie začínajúci inštrukciou TUK a končiaci inštrukciou FUK. Teda program číta údaje z pásky ktoré sa ukladajú do globálnych premenných pričom tiež kontroluje, či je inštrukcia správne napísaná (namiesto INK INC, atd)a taktiež sa hneď posúva hlava, ktorá teda ide čítať ďalšiu inštrukciu Po načítani nasleduje samotný preklad ktorý je vykonávaný za pomoci smerníkov a ascii tabuľky Program bude fungovať ak : 1.Budú inštrukcie zadané do textového súboru kod.txt 2.Inštrukcie budú zapísané práve tak, že prvá inštrukcia bude TUK a posledná FUK 3.A po určitom počte ink/dek inśtrukcií bude následovať výpis za pomoci funkcie PUK