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

Automaadid, keeled ja translaatorid 2017/18 kevad

  • Ü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?
  • 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