Arvutiteaduse instituut
  1. Kursused
  2. 2018/19 kevad
  3. Automaadid, keeled ja translaatorid (LTAT.03.006)
EN
Logi sisse

Automaadid, keeled ja translaatorid 2018/19 kevad

  • Üldinfo
  • Kava
    • 1. Soojendus
    • 2. Regulaaravaldised
    • 3. Olekumasinad
    • 4. Lõplikud automaadid
    • 5. Avaldise struktuur
    • 6. Grammatikad ja lekser
    • 7. Käsitsi parsimine
    • 8. ANTLR intro
    • 9. AST loomine
      • ANTLRi parsepuu
      • AST klassid
      • Eksami põhiosa
      • Kodutöö
    • 10. Interpretaator
    • 11. Semantiline analüüs
    • 12. Kompilaator
  • Moodle
  • Bitbucket
  • Fleep!
  • Backlinks

9. Abstraktse süntaksipuu loomine

Sellel nädalal tegeleme eelkõige abstraktse süntakspuu loomisega. Eelmises kodutöös huvitas meid vaid see, kas mingi sõne on AKTK programm, aga mitte selle osade omavahelised seosed ja struktuur, sh tehete prioriteedid ja assotsiatiivsused. Nüüd vaatame ja töötleme ka parsepuid, mille puhul see kõik on oluline. Eksami põhiosa koosneb ka sellisest ülesandes, kus tuleb etteantud keele kohta kirjutada grammatika ja implementeerida vastav teisendus, et sisendi põhjal luua abstraktse süntaksipuu (AST).

Kõigepealt võiks kodutööde põhjal tutvuda selle ülesanne lahendamise meetodiga. Esimene samm on meil juba tehtud: ANLTRi grammatika on meil juba olemas. Kuna meid aga eelmine nädal struktuur ei huvitanud, siis võib juhtuda, et sellel nädalal peate grammatikat muuta. (Võite ka kohe kasutada meie näidislahendust.) Grammatika põhjal loob ANTLR parserit, mis sisendi põhjal tagastab parsepuu. Meie eesmärk on nüüd seda puud töödelda ja selleks tutvume kõigepealt parsepuuga ja siis kordame ASTi mõistet.

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

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

  • 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.
Courses’i keskkonna kasutustingimused