Arvutiteaduse instituut
  1. Kursused
  2. 2016/17 kevad
  3. Automaadid, keeled ja translaatorid (MTAT.05.085)
EN
Logi sisse

Automaadid, keeled ja translaatorid 2016/17 kevad

  • Pealeht
  • 6. Grammatikad ja lekser
    • Grammatika mõiste
    • Grammatika automaadid*
    • Lekseri soojendus
    • Kodutöö
    • Lisatöö
  • Moodle
  • Bitbucket
  • Slack
  • Projekt
  • Töövahendid
  • Õppekorraldus
  • Reeglid
  • Viited

3. lisatöö

Magasinmäluga masinatega proovime nüüd vana hea esimese kodutöö veelkord lahendada. Nüüd on lisaks muidugi mängus sulud, sest muidu oleks magasini kasutamine mõttetu. Kasutusel on taaskord EU arengutoetusega valminud raamistikud, et sundida teid sammhaaval sisendit läbi töödelda. Raamistiku kood on avalikus repos lisa3 pakettis. Tuleb lahendada kaks ülesannet failides EvalMachine ja AstMachine, sest Evaluator kasutab need klassid, et avaldist väärtusta ja luua süntakspuu.

  1. EvalMachine on meie avaldiste väärtustaja. Kõigepealt tasub aru saada, kuidas see kood praegu töötab, sest ilma sulgudeta avaldiste puhul kood töötab. Ei ole palju puudu, et see töötaks ka sulgavaldiste korral, aga tasub natuke mõelda ja siis tegutseda, sest õige lahendus on hästi lihtne (4 rida vaja muuta/lisada).
  2. AstMachine loob avaldise süntakspuu. Ehitame süntakspuu lihtsalt homogeense Node klassiga. Kui selle lahendamiseks ei tule ideid, siis võib otsida inspiratsiooni JFLAP-ilt, kui teha S → (S) | x-tüüpi grammatika ümber PDA-ks kasutades "Convert CFG to PDA(LR)". Võimalik, et saab ka palju lihtsamalt, aga kuna ma ise juba tean seda konstruktsiooni, siis oli raske teistmoodi mõelda.

Enne lahendamist vaadake hoolikalt teste läbi. Näiteks peab väärtustaja suutma ka poolikute (aga muidu korrektsete) avaldiste korral oma hetkeväärtust tagastama.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo