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
    1. JFLAP
    2. Challenge*
    3. HtmlStrip
    4. PlusMiinus
    5. 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!

3. Olekumasinad

Selle nädala teema on olekumasinad. Teoorias huvitab meid peamiselt olekumasinad, mis vastavad jah/ei küsimusele: kas sõne kuulub regulaaravaldise poolt defineeritud hulka. Praktikas on olekumasinad, mis lisaks midagi teevad, aga käituvad erinevalt sõltuvalt oma seisundis. Kodutöös on vaja joonistada paar klassikalist automaati, aga lisaks proovime olekumasina abil 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öö olekumasinad. Need mõlemad sobivad paremini iseseisvaks uurimiseks, aga praktikumides võib neid käsitleda, kui aega selleks jätkub.

Selle nädala eesmärk on õppida automaate joonistada (JFLAP abil). Neid automaate kasutatakse regulaarsete keelte ära tundmiseks. Automaatide disainimine peaks aitama Sind ka programme ja süsteeme paremini disainida, sest tihti peituvad nendes ka olekumasinad, mille välja toomisel 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 disainida, 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?
  • 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