aloitus meta aloitus sovelluksia historiaa...

24
Aloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. tammikuuta 2012

Upload: others

Post on 22-Oct-2019

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

AloitusTIEA241 Automaatit ja kieliopit, kevät 2012

Antti-Juhani Kaijanaho

TIETOTEKNIIKAN LAITOS

10. tammikuuta 2012

Page 2: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Sisällys

Meta

Sovelluksia

Historiaa

Esimerkki

Page 3: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Sisällys

Meta

Sovelluksia

Historiaa

Esimerkki

Page 4: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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!

Page 5: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Kurssin käytännöt

Kurssin sivuillahttp://users.jyu.fi/~antkaij/opetus/auki/2012/

Page 6: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 7: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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.

Page 8: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Sisällys

Meta

Sovelluksia

Historiaa

Esimerkki

Page 9: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 10: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Kurssin keskivaiheen asiat

I suomen kielen syntaktinen analyysiI tietokoneohjelmien syntaktinen analyysi

I kääntäjät!

Page 11: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Kurssin loppupään asiat

I tietotekniikan rajojen tunnistaminen

Page 12: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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?

Page 13: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Sisällys

Meta

Sovelluksia

Historiaa

Esimerkki

Page 14: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Historiaa?!

Kurssin aihepiirin teoria tuli ensin, sovellukset vastasitten.

Page 15: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 16: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 17: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 18: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 19: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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

Page 20: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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.

Page 21: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Sisällys

Meta

Sovelluksia

Historiaa

Esimerkki

Page 22: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Yksinkertaisia automaatteja

I on/off-kytkinI kioskiautomaattiI ydinvoimalan hätäpysäytysjärjestelmä

Page 23: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

Aloitus

Meta

Sovelluksia

Historiaa

Esimerkki

Yksinkertaisia kielenkuvauksia

I throws? | catchI E→ vakio | E + E | E− E | E ∗ E | E/E | (E)

Page 24: Aloitus Meta Aloitus Sovelluksia Historiaa Esimerkkiusers.jyu.fi/~antkaij/opetus/auki/2012/luennot/0-alku.pdfAloitus Meta Sovelluksia Historiaa Esimerkki Aloitus TIEA241 Automaatit

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)