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
      • JFLAP
      • Challenge*
      • HtmlStrip
      • PlusMiinus
      • Kodutöö
    • 4. Lõplikud automaadid
    • 5. Avaldise struktuur
    • 6. Grammatikad ja lekser
    • 7. Käsitsi parsimine
    • 8. ANTLR intro
    • 9. AST loomine
    • 10. Interpretaator
    • 11. Semantiline analüüs
    • 12. Kompilaator
  • Moodle
  • Bitbucket
  • Fleep!
  • Backlinks

3. Olekumasinad

Selle nädala teema on olekumasinad. Teoorias huvitavad meid peamiselt olekumasinad, mis vastavad jah/ei küsimusele: kas sõne kuulub regulaaravaldise poolt defineeritud hulka. Praktikas on olekumasinaid, mis lisaks veel midagi teevad, aga käituvad erinevalt sõltuvalt oma seisundist. Kodutöös on vaja joonistada paar klassikalist automaati, aga lisaks proovime olekumasina abil ka teksti natuke korrastada. Järgmistest materjalidest võib seetõttu olla abiks kodutöö lahendamisel:

  1. Automaatide joonistamine JFLAP abil. Iseseisvalt võite uurida, kuidas regulaaravaldisi disainida automaatide abil.
  2. Olekumasina näide. Ülesanne on kirjutada lihtne olekumasin, mis eemaldab tekstist HTML märgendid. Võite ka vaadata esimese kodutöö olekumasinaid. Need mõlemad sobivad paremini iseseisvaks uurimiseks, aga praktikumides võib neid käsitleda, kui selleks aega jätkub.

Selle nädala eesmärk on õppida automaate joonistama (JFLAP abil). Neid automaate kasutatakse regulaarsete keelte äratundmiseks. Automaatide disainimine peaks aitama Sind ka programme ja süsteeme paremini disainima, sest tihti peituvad nendes ka olekumasinad, mille väljatoomisel läheb asi palju selgemaks. Kodutööga üritame natuke sellist olekupõhist mõtlemist harjutada, aga me rohkem teilt seda ei küsi...

Peamine on siin seega need JFLAP harjutused, millega saate harjutada fundamentaalsel tasemel programme disainima, eeldades muidugi, et teete need mõttega ja mitte liiga testipõhiselt. Mõelge: mille eest vastutab iga olek ehk mis see tähendab, kui automaat on selles seisundis? (Näiteks: see seisund tähendab seda, et automaat on siiamaani näinud paaritu arv a-sid.)

Viited ja näited

  • UML State Machine.
  • Näide: müügihaldus
  • MIT 6.01: State machines.
  • Autokooli läbimine
  • java.io.InputStream
  • GUId
  • Plokkskeemid?
  • 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