aloitus meta aloitus sovelluksia historiaa...
TRANSCRIPT
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
AloitusTIEA241 Automaatit ja kieliopit, kevät 2012
Antti-Juhani Kaijanaho
TIETOTEKNIIKAN LAITOS
10. tammikuuta 2012
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Sisällys
Meta
Sovelluksia
Historiaa
Esimerkki
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Sisällys
Meta
Sovelluksia
Historiaa
Esimerkki
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Luennoija
I yliopistonopettaja ja tohtorikoulutettavaI tutkimusalana ohjelmointikielten kehitysI vapaaohjelmistokehittäjä:
I Debian-kehittäjä vuodesta 1999I dctrl-tools-työkalupaketin pääkehittäjäI Alue-foorumialustan kehittäjä
I . . . vasta valmistumisen jälkeen tajusin kuinka tärkeäkurssi tämä oli!
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kurssin käytännöt
Kurssin sivuillahttp://users.jyu.fi/~antkaij/opetus/auki/2012/
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kirjallisuutta
I Luentojen pohjana:I Michael Sipser: Introduction to the Theory of
Computation. Second Edition, International Edition.Thompson 2006.
I John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman:Introduction to Automata Theory, Languages, andComputation. Third Edition, Pearson InternationalEdition. Addison–Wesley, 2007.
I Täydentävää lukemistaI Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D.
Ullman: Compilers – Principles, Techniques, & Tools.Second Edition. Addison–Wesley, 2007.
I Pekka Orponen: Laskennan teoria. Luentomoniste.http://users.ics.tkk.fi/orponen/lectures/lte.pdf
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Tapahtui taannoin Facebookissa
Vesa Kaihlavirta Yksi tärkeimmistä kursseista. Pistä nepunnertamaan :P
Antti-Juhani Kaijanaho Vesa, saako tuon kommentin näyttääopiskelijoille?Ja jos saa, niin kerkeäisitkö vielä vähän avaamaanmiksi pidät tuota yhtenä tärkeimmistä kursseista.
Vesa Kaihlavirta No jos luulet, että siitä on jotain hyötyä, niin siitävain :)
Vesa Kaihlavirta Se antaa hyvää ja Ihan Oikeasti sovellettavaa pohjaaohjelmistosuunnitelussa tapahtuvalle formalisoinnille.(Meinasin tähän lisätä, että "Ei siis mitäänoliosuunnittelun, UML:n ja muun sellaisen sonnankaltaista vaan jotain Oikeaa." mutta ehkä se meni liianpitkälle)Lisäksi regexpien osaaminen on käytännöllisestikatsoen taikuutta tietämättömien näkökulmasta.
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Sisällys
Meta
Sovelluksia
Historiaa
Esimerkki
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kurssin alkupään asiat
I tekstihakujen toteuttaminenI verkkoprotokollien suunnitteluI suomen kielen morfologinen analyysi (esim.
oikolukua varten)I tietokoneohjelmien leksikaalinen analyysiI ohjainlaitteiden suunnitteluI ohjelmien oikeellisuustarkastelu
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kurssin keskivaiheen asiat
I suomen kielen syntaktinen analyysiI tietokoneohjelmien syntaktinen analyysi
I kääntäjät!
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kurssin loppupään asiat
I tietotekniikan rajojen tunnistaminen
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Luentotehtävä
Pohdi vierustoverisi kanssaMiten selvität, reagoiko annettu ohjelma johonkinannettuun ärsykkeeseen äärellisessä ajassa?Miten ohjeistaisit jonkun toisen tekemään tämän?
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Sisällys
Meta
Sovelluksia
Historiaa
Esimerkki
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Historiaa?!
Kurssin aihepiirin teoria tuli ensin, sovellukset vastasitten.
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Matematiikan kriisi
I 1874 Cantor todisti, että äärettömyydet eivät olesamanlaisia ja aloitti näin joukko-opintutkimusohjelman
I 1897 Burali-Forti esitti joukko-oppiparadoksinsaI 1899 Cantor esitti joukko-oppiparadoksinsaI 1901 Russell esitti joukko-oppiparadoksinsa
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Matematiikka alkaa toipua
I 1908 Zermelo esitti joukko-oppiaksioomansaI 1910–3 Russell ja Whitehead julkaisevat Principia
Mathematican, joka oli ensimmäinen yritys rakentaakoko matematiikka pohjalta alkaen
I 1922 Fraenkel ja Skolem (toisistaan riippumatta)laajentavat Zermelon aksiomatisointia
I laajennus tunnetaan nimelläZermelon–Fraenkelin (ZF) joukko-oppi
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Matematiikka kriisiytyy taas
I 1900 Hilbert esitti 23 ongelmaansa, joista toinen olimatematiikan ristiriidattomuuden osoittaminen
I 1931 Kurt Gödel julkaisee kuuluisanepätäydellisyyslauseensa
I Principia Mathematica (ja muut vastaavat) ei kykenetodistamaan omaa ristiriidattomuuttaan
I tulkitaan usein Hilbertin toisen ongelman(epä)ratkaisuksi
I ks. MATS150 Logiikan jatkokurssi
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Uudesta kriisistä tietojenkäsittelyteoria
I 1928 Hilbert esitti ongelman, joka tunnetaan nimelläEntscheidungsproblem (ratkeavuusongelma)
I Onko olemassa algoritmi, joka kykenee sanomaanmistä tahansa hyvin määritellystä matemaattisestaväitteestä, onko se tosi vai ei?
I 1936 Alonzo Church käyttää luomaansa λ-laskentoaratkaisemaan Hilbertin ratkeavuusongelman:algoritmia ei ole
I λ-laskennolle muodostui myöhemmin merkittävärooli ohjelmointikielten teoriassa (ks. TIES542Ohjelmointikielten periaatteet)
I 1936 Alan Turing (Churchista riippumatta) käyttääluomaansa Turingin konetta ratkaisemaan Hilbertinratkeavuusongelman: algoritmia ei ole
I teemme olennaisesti saman kurssin loppupuolella
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Kehitys kehittyy
I 1951 Stephen Cole Kleene [kleIni:] tutkiineuroverkkoja ja määrittelee äärellisen automaatin jasäännöllisen lausekkeen käsitteet sekä todistaaniiden perusominaisuudet
I 1956 Noam Chomsky tutkii englannin kielenkieliopin esitysmuotoja ja määritteleekontekstittomien kielioppien käsitteen
I 1959 John Backus ja Peter Naur käyttävätkontekstittomia kielioppeja ohjelmointikielten(Fortran, Algol) syntaksin määrittelyyn
I 1968 Ken Thompson käyttää säännöllisiä lausekkeitatekstieditorin hakutoiminnossa1
1Dennis Ritchie: An incomplete history of the QED Text Editor,http://cm.bell-labs.com/cm/cs/who/dmr/qed.html
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Historiallista?
I Kurssin keskeiset teoreettiset ideat ovat siis peräisinvuosilta 1936–1956.
I Tutkimusalana automaattien ja kielioppien teoria olivilkas vielä 1980-luvulla mutta kurssin asiat ovatstabiloituneet kauan sitten.
I Silti tämä kaikki on edelleen hyvin relevanttia2010-luvun ohjelmistoammattilaisille!. . . kutentulemme huomaamaan.
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Sisällys
Meta
Sovelluksia
Historiaa
Esimerkki
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Yksinkertaisia automaatteja
I on/off-kytkinI kioskiautomaattiI ydinvoimalan hätäpysäytysjärjestelmä
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Yksinkertaisia kielenkuvauksia
I throws? | catchI E→ vakio | E + E | E− E | E ∗ E | E/E | (E)
Aloitus
Meta
Sovelluksia
Historiaa
Esimerkki
Ratkeamattomia ongelmia
Seuraaville tehtäville (muiden muassa) ei ole algoritmia:I Täsmällisesti esitetyn matemaattisen väittämän
tunnistaminen todeksi tai epätodeksi. (HilbertinEntschedungsproblem)
I Tietokoneohjelman ja sille annetun syötteentunnistaminen sellaiseksi, että ohjelma pysähtyykyseisellä syötteellä taikka sellaiseksi, että se jääikuiseen silmukkaan kyseisellä syötteellä.(Pysähtymisongelma)