Institute of Computer Science
  1. Courses
  2. 2017/18 spring
  3. Automata, Languages and Compilers (LTAT.03.006)
ET
Log in

Automata, Languages and Compilers 2017/18 spring

  • Üldinfo
  1. Õppekorraldus
  2. Eksam
  3. Reeglid
  4. Töövahendid
  5. Projekt
  • Kava
  1. Soojendus
  2. Regulaaravaldised
  3. Olekumasinad
  4. Lõplikud automaadid
  5. Avaldise struktuur
  6. Grammatikad ja lekser
    1. Grammatika mõiste
    2. Grammatika automaadid*
    3. Lekseri soojendus
    4. Kodutöö
    5. Magisiniga masinad*
  7. Käsitsi parsimine
  8. ANTLR intro
  9. AST loomine
  10. Interpretaator
  11. Semantiline analüüs
  12. Kompilaator
  • Moodle
  • Bitbucket
  • Fleep!

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 xtra3 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.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment