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

Automata, Languages and Compilers 2019/20 spring

  • Üldinfo
  • Eksami näidised
  • Kava
    • 1. Soojendus
    • 2. Regulaaravaldised
    • 3. Olekumasinad
    • 4. Avaldise struktuur
    • 5. Grammatikad ja lekser
    • 6. Käsitsi parsimine
    • 7. ANTLRiga töötamine
      • Paigaldus
      • Sissejuhatus
      • ANTLRi parsepuu
      • AST klassid
      • Eksami põhiosa!
      • Kodutöö
    • 8. Interpretaator
    • 9. Kompilaator
  • Bitbucket
  • Moodle
  • Fleep!

7. ANTLRiga töötamine

Tere tulemast ainesse Automaadid, keeled ja translaatorid! Meil on lõpuks Java kordamine lõppenud ja nüüd läheb asi lihtsamaks, sest alustame uue teemaga: grammatika disain ANTLRiga! See on oluline teema, mõnes mõttes aine põhiteema, mida me eksami põhiosas kontrollime. Pühendame sellele teemale kaks nädalat ja siis tuleb meil loengul eksami põhiosa harjutamine.

Kõigepealt õpime ANTLRit kasutama.

  • ANTLRi paigaldus.
  • ANTLRi sissejuhatus.

Me alustame nüüd ANTLRiga. Keele äratundmisel on ANTLR (kahjuks) väga paindlik ja teda eriti ei häiri, kui grammatika on väga segane. Grammatika on aga peegel otse programmeerija hinge! Seega tasub natuke pingutada, et harjutada lihtsust ja puhtust oma disainis ja mõtlemises.

ANTLR loob meile lisaks grammatikale ka parsepuu. Eksami põhiosa koosneb sellisest ülesandes, kus tuleb etteantud keele kohta kirjutada grammatika ja implementeerida vastav teisendus, et sisendi põhjal luua abstraktse süntaksipuu (AST).

  • ANTLRi parsepuu läbimine on põhiasi, millest on vaja aru saada. Meie grammatika põhjal loob ANTLR parsepuu klasse ja nende läbimiseks meile juba tuttav Visitor. Kui grammatika on piisavalt lihtne, siis tegelikult saab otse parsepuu põhjal oma töö ära teha!
  • AST klassidega saame paremini esitada programmi tähendust ja nende loomine on mõistlik, kui tahame edasi töödelda, näiteks teha tüübikontroll ja programmi optimeerimist.

Praktikumid ja kodutöö on ettevalmistuseks eksami põhiosa jaoks, kus tuleb samuti puud töödelda. Eksami põhiosa on väiksem versioon sellest kodutööst. Me anname AST klasse ette. Need klassid on iga ülesanne jaoks erinevad, mistõttu tasub paar näidet ise läbi teha.

  • 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