TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

Koko: px
Aloita esitys sivulta:

Download "TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013"

Transkriptio

1 TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013

2 Sisällys etenevä etenevä

3 Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti lueteltava automaatti äärellinen (ennustava jäsennin) deterministinen pino pino lineaarirajoitettu Turingin kone etenevä

4 Tunnistamis- ja ongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja w Σ sen merkkijono. Tunnistamisongelmassa tehtävänä on selvittää, päteekö w L(G). Jäsennysongelma on tunnistamisongelman yleistys: tehtävänä on selvittää kaikki w:n puut. Jäsennysongelmalle on runsaasti laajassa käytössä olevia algoritmisia ratkaisuja. Useimmat eivät toimi kaikilla kieliopeilla. Tällä luennolla tarkastellaan ennustavaa tä. Lisämateriaaleissa lisäksi Earleyn algoritmi ja LR-. etenevä

5 1 Määritelmä Olkoon G = (V, Σ, P, S) CFG. Se on operaattorikielioppi välikesymbolien E V (operaattorivälikesymbolit) suhteen, jos kaikki operaattorivälikesymbolien produktiot ovat jotain seuraavista muodoista: etenevä A B ( on prefiksioperattori) A B ( on postfiksioperaattori) A B C A BC ( on infiksioperaattori) (ε on infiksioperaattori) A ( on primäärilauseke) A B missä A, B, C E ja sekä alkaa että päättyy päätesymboliin. 1 Tämä määritelmä ei ole yleisesti käytössä.

6 Esimerkkejä operaattoreista Tavanomaisten operaattoreiden (+, jne) lisäksi: C:n typecast (tyyppi) on prefiksioperaattori. Funktiokutsu (arg1,...,argn) on postfiksioperaattori. Mixfix-operaattorit kuten C:n?lauseke: ovat tämän analyysin kannalta infiksioperaattoreita. etenevä

7 Presedenssi ja assosiatiivisuus Miten on lauseke a b c tulkittava? 2 Operaattorien välille on tapana määritellä osittaisjärjestys nimeltä presedenssi: Jos :llä on korkeampi presedenssi kuin :lla, niin tuo lauseke tulkitaan (a b) c. Jos :llä on korkeampi presedenssi kuin :lla, niin tuo lauseke tulkitaan a (b c). Lisäksi on kullekin operaattorille tapana määritellä ominaisuus nimeltä assosiatiivisuus: Jos kummallakaan ei ole toista korkeampi presedenssi mutta molemmat assosioivat vasemmalle, tuo lauseke tulkitaan (a b) c. Jos kummallakaan ei ole toista korkeampi presedenssi mutta molemmat assosioivat oikealle, tuo lauseke tulkitaan a (b c). Muissa tapauksissa tuo lauseke on kielioppivirhe. etenevä 2 Tässä tai tai molemmat voivat toki olla prefiksi- tai postfiksioperaattoreita, jolloin a, b ja c voivat olla tyhjiä.

8 Yksiselitteisen operaattorikieliopin laatiminen I Lajitellaan operaattorit eri luokkiin siten, että samassa luokassa olevista operaattoreista millään ei ole suurempi presedenssi kuin muilla. 3 Järjestetään luokat jonoon siten, että luokka A tulee luokan B:n jälkeen, jos A:n operaattoreilla on suurempi presedenssi kuin B:n operaattoreilla. Lisätään jonon loppuun vielä yksi luokka primäärilausekkeita varten. Valitaan kullekin luokalle oma uniikki välikesymboli. etenevä 3 Oletetaan yksinkertaisuuden vuoksi, että kaikilla samaan luokkaan kuuluvilla operaattoreilla on sama assosiatiivisuus.

9 Yksiselitteisen operaattorikieliopin laatiminen II Kullekin operaattoreiden luokalle, jonka välikesymboli on A ja jota seuraavan luokan välikesymboli on B, tehdään seuraavat produktiot: A B A A B jokaiselle A-luokan vasemmalle assosioivalle infiksioperaattorille. A B A jokaiselle A-luokan oikealle assosioivalle infiksioperaattorille. A A jokaiselle A-luokan prefiksioperaattorille. A A jokaiselle A-luokan postfiksioperaattorille. Primäärilausekkeiden luokalle tehdään tarvittavat produktiot. Kaikki alkuperäisen kieliopin operaattorivälikesymbolien produktiot poistetaan ja kaikki viittaukset näihin symboleihin muutetaan viittamaan ensimmäisen luokan välikesymboliin. etenevä

10 etenevä engl. recursive descent parsing Tehdään kustakin välikesymbolista aliohjelma, joka kokeilee kutakin produktiota vuorollaan. Päätesymbolin kohdalla katsotaan onko se seuraavana merkkijonossa. Välikesymbolin kohdalla kutsutaan sitä vastaavaa aliohjelmaa. Jos ei onnistu, peruutetaan (backtrack) lähimpään tehtyyn valintaan, jossa ei ole vielä kaikki vaihtoehdot käyty läpi. etenevä

11 Välittömän vasemman rekursion poisto etenevä ei selviä vasenrekursiivisista produktioista: Esim. A Ab a kääntyisi aliohjelmaksi, joka ensi töikseen kutsuu itseään. Tuollainen produktio voidaan korvata kahdella uudella produktiolla A aa ja A ε ba, missä A on uusi välikesymboli. Yleisesti mikä tahansa produktiojoukko etenevä A Aα 1 Aα n β 1 β m voidaan kirjoittaa muotoon A β 1 A β m A A ε α 1 A α n A missä α i ja β i ovat välike- ja päätesymbolien jonoja, jotka eivät ala A:lla, ja A on uusi välikesymboli. Epäsuora vasen rekursio pitää poistaa toisella menetelmällä, joka sivuutetaan tässä.

12 Usein on mahdollista päättää heti, onko jokin produktio mahdollinen. Esim. E + TE ei tule kyseeseen, jos seuraava merkki ei ole +. Tällöin kokeile-ja-peruuta on täysin älytön idea. Ideaalitilanne on, jossa peruutusta ei tarvita lainkaan. Tällöin kyse on ennustavasta jäsennyksestä (engl. predictive parsing). Onnistuu vain osalle kieliopeista. Seuraavilla kalvoilla oletetaan annetuksi jokin kielioppi G = (V, Σ, P, S) ja rakennetaan sille (jos mahdollista) ennustava jäsennin. etenevä

13 NULLABLE NULLABLE on taulukko, joka kertoo kullekin välikesymbolille, voidaanko siitä johtaa tyhjä merkkijono. kaikki välikemerkit ovat taulukossa merkitsemättömiä. Toista kunnes taulukko ei enää muutu: Toista kaikille produktioille A ω, jolle pätee, että A:ta ei ole merkitty: Jos ω ei sisällä yhtään päätemerkkiä ja sen kaikki välikemerkit on merkitty, merkitse A. etenevä

14 Yleistetty NULLABLE NULLABLE-taulukko voidaan yleistää pääte- ja välikemerkkien jonojen funktioksi seuraavalla rekursiivisella määritelmällä: etenevä NULLABLE(ε) = tosi NULLABLE(cω) = epätosi { NULLABLE(ω) NULLABLE(Aω) = epätosi jos NULLABLE[A] pätee muuten

15 FIRST FIRST on taulukko, joka kertoo kullekin välikesymbolille niiden päätemerkkien joukon, joilla kyseisestä välikesymbolista johdettavissa olevat merkkijonot voivat alkaa. Alusta kaikki muut taulukon paikat tyhjiksi. Toista kunnes taulukko ei enää muutu: Toista kaikille produktioille A s 1 s n, missä n 1 ja i {1,..., n} : s i Σ V 1. Olkoon k suurin joukossa {0,..., n}, jolle pätee, NULLABLE(s 1 s k ). 2. Lisää A:n kohdalle taulukkoon kaikki merkit FIRST[s 1 ] FIRST[s k ]. 3. Jos k < n ja s k+1 on päätemerkki, lisää A:n kohdalle taulukkoon lisäksi s k Jos k < n ja s k+1 on välikemerkki, lisää A:n kohdalle taulukkoon lisäksi FIRST[s k+1 ]. etenevä

16 Yleistetty FIRST FIRST-taulukko voidaan yleistää pääte- ja välikemerkkien jonojen funktioksi seuraavalla rekursiivisella määritelmällä: etenevä FIRST(ε) = FIRST(cω) = {c} { FIRST[A] FIRST(ω) FIRST(Aω) = FIRST[A] jos NULLABLE[A] pätee muuten

17 FOLLOW Myös FOLLOW on välikemerkeillä indeksoitu taulukko: FOLLOW[A] = { c Σ ω 1, ω 2 (V Σ) : S G ω 1 Acω 2 } { ω (V Σ) : S G ωa } etenevä missä V Σ merkitsee merkkijonon loppua. Alusta kaikki taulukon paikat tyhjiksi paitsi aloitussymbolin, jonka paikalle laita. Toista kunnes taulukko ei enää muutu: Toista kaikilla produktioilla A ω 1 Bω 2, missä A, B V ja ω 1, ω 2 (V Σ) : Lisää B:n kohdalle taulukkoon merkit FIRST(ω 2 ). Jos NULLABLE(ω 2 ) pätee, lisää B:n kohdalle taulukkoon myös kaikki A:n kohdalla olevat merkit.

18 taulukko rivi jokaiselle välikesymbolille sarake jokaiselle päätesymbolille (ynnä syötteen loppu) Merkitse produktio X ω riville X ja sarakkeeseen t etenevä jokaiselle t FIRST(ω), ja jos NULLABLE(ω), myös jokaiselle t FOLLOW(X).

19 Taulukon tulkinta Tee jokaiselle välikesymbolille aliohjelma. Aliohjelman alussa tee switch case kaikille päätesymboleille (ynnä syötteen päättymiselle). Jos välikesymbolin X ja päätesymbolin t risteyskohta sisältää yhden produktion, niin koodaa ko. produktio X:n aliohjelmaan t:n caseen. sisältää useamman kuin yhden produktion 4, koodaa produktiot X:n aliohjelmaan t:n caseen ja käytä peruutusta valinnan tekemiseen produktioiden välissä. on tyhjä, niin koodaa X:n aliohjelmaan t:n caseen kielioppivirheen diagnosointi. Jos taulukossa ei ole yhtään konfliktia, jäsennin on ennustava. etenevä 4 Tällöin taulukossa on konflikti.

20 LL(1) left-to-right parse, leftmost derivation, 1-token lookahead. Jos kieliopista johdettu ennustava taulukko on konfliktiton, ko. kielioppi on LL(1). Jos kielioppi ei ole LL(1), kannattaa kokeilla vasemman rekursion poistoa ja vasenta tekijöintiä (engl. left factoring). Monet hyödylliset kieliopit eivät ole LL(1). Moniselitteinen kielioppi ei ole koskaan LL(1). On mahdollista yleistää LL(n):ään, jolloin FIRST ja FOLLOW sisältävät n:n mittaisia sanasjonoja. Tämä laajentaa jäsennettävien kielten joukkoa. etenevä

21 : pro ja contra + Helppo koodata kieliopin perusteella käsin. + Tehokas ei peruutusta. Vaadittu LL(1)-kielioppi on usein varsin vaikeaselkoinen. Kieliopin muuttaminen voi johtaa vaikeaselkoisiin virheisiin, kun FIRST- ja FOLLOW-joukkojen muuttumista ei muisteta ottaa kaikkialla huomioon. Tämän poistaa LL-generaattorin käyttäminen (esim. ANTLR). Käsin kirjoitetun prediktiivisen jäsentimen muokkaaminen voi johtaa epäselvyyteen siitä, mitä kieltä se oikeasti jäsentää. Tämänkin poistaa LL-generaattorin käyttäminen (esim. ANTLR). etenevä

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 29.9.2016 klo 8:41 (lähes kaikki kommentoitu) passed

Lisätiedot

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. marraskuuta 2015 Sisällys Rekursiivisesti etenevä engl. recursive descent parsing Tehdään kustakin välikesymbolista

Lisätiedot

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 29. huhtikuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 29. huhtikuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. huhtikuuta 2011 Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. kesäkuuta 2013 Sisällys t Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton

Lisätiedot

Jäsennysalgoritmeja. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 29. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Jäsennysalgoritmeja

Jäsennysalgoritmeja. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 29. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Jäsennysalgoritmeja TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe B tiistai 6.10. klo 10 selaaja ja jäsentäjä toimivat Kääntäjän

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012 TIEA241 Automaatit ja, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 2. helmikuuta 2012 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava

Lisätiedot

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).

Lisätiedot

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016 Kontekstittomien kielten jäsentäminen äydentäviä muistiinpanoja IA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 19. lokakuuta 2016 1 Yksiselitteiset operaattorikieliopit 1.1 Aritmeettiset

Lisätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.

Lisätiedot

Täydentäviä muistiinpanoja jäsennysalgoritmeista

Täydentäviä muistiinpanoja jäsennysalgoritmeista äydentäviä muistiinpanoja jäsennysalgoritmeista Antti-Juhani Kaijanaho 7. helmikuuta 2012 1 simerkki arleyn algoritmin soveltamisesta arkastellaan kielioppia G : + () c ja sovelletaan arleyn algoritmia

Lisätiedot

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä Antti-Juhani Kaijanaho 30. marraskuuta 2015 1 Yksiselitteiset operaattorikieliopit 1.1 Aritmeettiset lausekkeet Tällä kurssilla on

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. Pois kontekstittomuudesta TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino

Lisätiedot

Rajoittamattomat kieliopit

Rajoittamattomat kieliopit Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet

Lisätiedot

LR-jäsennys. Antti-Juhani Kaijanaho. 3. lokakuuta 2016

LR-jäsennys. Antti-Juhani Kaijanaho. 3. lokakuuta 2016 LR-jäsennys Antti-Juhani Kaijanaho 3. lokakuuta 2016 Tämä lisämoniste esittelee Yaccin, CUPin ja muiden vastaavien ohjelmien käyttämän LR-jäsennysmenetelmäperheen. Se ei kuulu kurssin koealueeseen. Tehtävänä

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. helmikuuta 2012 Sisällys t Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys Harjoitustehtävät loppukurssilla luentojen 14 18 harjoitustehtävistä on tehtävä yksi

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)

Lisätiedot

Attribuuttikieliopit

Attribuuttikieliopit TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. toukokuuta 2011 Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Jäsennys TIEA341 Funktio ohjelmointi 1 Syksy 2005 Muistutus: Laskutehtävä ja tulos data Laskutehtava = Luku Double Yhteen Laskutehtava Laskutehtava Vahennys Laskutehtava Laskutehtava Tulo Laskutehtava

Lisätiedot

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman

Lisätiedot

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. lokakuuta 2016 Sisällys n tunnistin Jay : An Efficient Context-Free Parsing Algorithm. Communications of the

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016 TIEA241 Automaatit ja, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 2016 Sisällys Kontekstiton kielioppi Kontekstiton kielioppi koostuu joukosta päätemerkkejä (engl. terminal symbols),

Lisätiedot

uv n, v 1, ja uv i w A kaikilla

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS .. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. lokakuuta 2016 Sisällys. Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28 passed potential redo submitters

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016 .. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. lokakuuta 2016 Sisällys. Turingin koneiden pysähtymisongelma. Lause Päätösongelma Pysähtyykö standardimallinen

Lisätiedot

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. kesäkuuta 2013 Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja sekä muita TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton

Lisätiedot

Yhteydettömät kieliopit [Sipser luku 2.1]

Yhteydettömät kieliopit [Sipser luku 2.1] Yhteydettömät kieliopit [ipser luku 2.1] Johdantoesimerkkinä tarkastelemme kieltä L = { a n b m a n n > 0, m > 0 }, joka on yhteydetön (mutta ei säännöllinen). Vastaavan kieliopin ytimenä on säännöt eli

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. tammikuuta 2012 Sisällys Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava

Lisätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn hierarkia ja yhteysherkät kieliopit Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien

Lisätiedot

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.

Lisätiedot

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 passed waiting redo submitters

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. maaliskuuta 2012 Sisällys Ongelma-analyysiä Sisällys Ongelma-analyysiä Hypoteettinen ongelma The Elite Bugbusters

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. maaliskuuta 2012 Sisällys Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

2. Yhteydettömät kielet

2. Yhteydettömät kielet 2. Yhteydettömät kielet Yhteydettömät eli kontekstittomat kielet (context-free language, CFL) ovat säännöllisiä kieliä laajempi luokka formaaleja kieliä. Ne voidaan esittää yhteydettömillä kieliopeilla

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria ICS-C2000 Tietojenkäsittelyteoria Luento 6: Jäsennyspuut, LL(1)-kielioppien jäsennys Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Alue ja aiheet: Orposen prujun luvut 3.3 3.5 Kielioppien

Lisätiedot

DFA:n käyttäytyminen ja säännölliset kielet

DFA:n käyttäytyminen ja säännölliset kielet säännölliset kielet TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2015 Sisällys toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015 TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free

Lisätiedot

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio}; 3.6 Cocke-Younger-Kasami -jäsennysalgoritmi Osittava jäsentäminen on selkeä ja tehokas jäsennysmenetelmä LL(1)-kieliopeille: n merkin mittaisen syötemerkkijonon käsittely sujuu ajassa O(n). LL(1)-kieliopit

Lisätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa

Lisätiedot

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters

Lisätiedot

follow(a) first(α j ) x

follow(a) first(α j ) x Tästä ensimmäisestä LL(1)-ehdosta (14) seuraa erityisesti, että korkeintaan yksi välikkeen A säännöistä voi tuottaa tyhjän merkkijonon ε eli tehdä välikkeestä A tyhjentyvän (eli nollautuvan). Toinen osa

Lisätiedot

Tietojenkäsittelyteorian alkeet, osa 2

Tietojenkäsittelyteorian alkeet, osa 2 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. syyskuuta 2016 Sisällys vs Ovat eri asioita! Älä sekoita niitä. Funktiot Funktio f luokasta A luokkaan B, merkitään

Lisätiedot

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013 TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 29. syyskuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 29. syyskuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe B tiistai 6.10. klo 10 selaaja ja jäsentäjä toimivat Sisällys

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Alue ja aiheet: Orposen

Lisätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone

Lisätiedot

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w} 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = {c w pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M := ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Alue ja aiheet: Orposen prujun

Lisätiedot

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä

Lisätiedot

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Vaihtoehtoinen tapa määritellä funktioita f : N R on Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot

Lisätiedot

Ydin-Haskell Tiivismoniste

Ydin-Haskell Tiivismoniste Ydin-Haskell Tiivismoniste Antti-Juhani Kaijanaho 8. joulukuuta 2005 1 Abstrakti syntaksi Päätesymbolit: Muuttujat a, b, c,..., x, y, z,... Tyyppimuuttujat α, β, γ,... Koostimet (data- ja tyyppi-) C, D,...,

Lisätiedot

Entscheidungsproblem

Entscheidungsproblem Entscheidungsproblem Antti-Juhani Kaijanaho 24. kesäkuuta 2013 Entscheidungsproblem eli ratkaisuongelma kysyy, millä mekaanisella menetelmällä voisi selvittää, onko mielivaltainen annettu ensimmäisen kertaluvun

Lisätiedot

Muita universaaleja laskennan malleja

Muita universaaleja laskennan malleja Muita universaaleja laskennan malleja Tällä kurssilla Turingin kone on valittu algoritmikäsitteen formalisoinniksi. Toisin sanoen tulkitsemme, että laskentaongelmalle on olemassa algoritmi, jos ja vain

Lisätiedot

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut T-79.1001 Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut Lemma (Säännöllisten kielten pumppauslemma). Olkoon A säännöllinen kieli. Tällöin on olemassa n 1

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 9 Kombinaattoreista Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Currying Haskell-funktio ottaa aina vain yhden

Lisätiedot

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää

Lisätiedot

1. Universaaleja laskennan malleja

1. Universaaleja laskennan malleja 1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016 TIEA24 Automaatit ja kieliopit, syksy 206 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 206 Sisällys Kolme laskennan mallia kuvitteellisia (abstrakteja) koneita eli automaatteja lukevat syötteen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

Lisätiedot

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittämä luokittelu kieliopeille niiden ilmaisuvoiman mukaan tyyppi kieli kielioppi tunnistaminen 0 rekurs. lueteltava rajoittamaton Turingin kone 1 kontekstinen

Lisätiedot

Entscheidungsproblem

Entscheidungsproblem Entscheidungsproblem Antti-Juhani Kaijanaho 10. joulukuuta 2015 Entscheidungsproblem eli ratkaisuongelma kysyy, millä mekaanisella menetelmällä voisi selvittää, onko mielivaltainen annettu ensimmäisen

Lisätiedot

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3 T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w

Lisätiedot

Syntaksi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Syntaksi. Aluksi.

Syntaksi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Syntaksi. Aluksi. TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. syyskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe B tiistai 6.10. klo 10 selaaja ja jäsentäjä toimivat Kääntäjän

Lisätiedot

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla.

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Täydentäviä muistiinpanoja laskennan rajoista Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen

Lisätiedot

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016 Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 4. lokakuuta 2016 1 simerkki arleyn algoritmin soveltamisesta Tämä esimerkki on laadittu

Lisätiedot

Ei-yhteydettömät kielet [Sipser luku 2.3]

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

5.5 Jäsenninkombinaattoreista

5.5 Jäsenninkombinaattoreista 5.5. JÄSENNINKOMBINAATTOREISTA 67 type Env α = FiniteMap String α data EnvT m α = MkE (Env Integer m (Env Integer, α)) instance Transformer EnvT where promote mp = MkE $ λenv mp λr return $(env, r) instance

Lisätiedot

Algoritmin määritelmä [Sipser luku 3.3]

Algoritmin määritelmä [Sipser luku 3.3] Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.

Lisätiedot

Rekursiiviset tyypit

Rekursiiviset tyypit Rekursiiviset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. helmikuuta 2007 Hiloista Kiintopisteet (Ko)rekursio Rekursiiviset

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

Lisätiedot

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 15. joulukuuta 2015 Sisällys Loppukurssin aikataulu tiistai 15.12.2015 viimeiset demot keskiviikko 16.12.2015 viimeiset

Lisätiedot

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin

Lisätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää pysähtymisaiheisia ongelmia Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Vaihe E tiistai

Lisätiedot

Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Geneeriset tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Geneeriset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 6. maaliskuuta 2007 Kysymys Mitä yhteistä on seuraavilla funktioilla?

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 7, 29. helmikuuta 4. maaliskuuta Demonstraatiotehtävien ratkaisut D1: Osoita, yhteydettömien kielten pumppauslemmaa käyttäen, että kieli {ww w {a,b}

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016 ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/

Lisätiedot

Kertausta 1. kurssikokeeseen

Kertausta 1. kurssikokeeseen Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.

Lisätiedot