Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005
|
|
- Aune Rantanen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Jäsennys TIEA341 Funktio ohjelmointi 1 Syksy 2005
2 Muistutus: Laskutehtävä ja tulos data Laskutehtava = Luku Double Yhteen Laskutehtava Laskutehtava Vahennys Laskutehtava Laskutehtava Tulo Laskutehtava Laskutehtava Osamaara Laskutehtava Laskutehtava deriving (Show) data Tulos = LukuTulos Double VirheTulos String deriving (Show)
3 Jäsennys (1) Jäsennyksen tehtävänä on muuttaa merkkijono laskutehtävän rakennepuuksi: String > Laskutehtava virhetilanteiden vuoksi kuitenkin String > Either String Laskutehtava Jäsennys on erittäin paljon tutkittu ja hyvin ymmärretty ongelma
4 Jäsennys (2) Tavallisesti jäsennysongelma jaetaan kahtia: merkkijonon paloittelu sanasiksi vakiot, välimerkit ym. sanaslistan jäsentäminen Laskimen sanaset: data Sananen = Vakio Double SulkuAuki SulkuKiinni Plus Miinus Kertaa Jako OutoMerkki Char deriving (Show)
5 palastele :: String > [Sananen] palastele (' ':xs) = palastele xs palastele ('\t':xs) = palastele xs palastele ('\n':xs) = palastele xs palastele ('(':xs) = SulkuAuki : palastele xs palastele (')':xs) = SulkuKiinni : palastele xs palastele ('+':xs) = Plus : palastele xs palastele ('*':xs) = Kertaa : palastele xs palastele ('/':xs) = Jako : palastele xs palastele (' ':xs@(c:_)) '0' <= c && c <= '9' = let (d, r) = luku xs in Vakio ( d) : palastele r palastele (' ':xs) = Miinus : palastele xs palastele xs@(c:cs) '0' <= c && c <= '9' = let (d, r) = luku xs in Vakio d : palastele r otherwise = OutoMerkki c : palastele cs palastele [] = []
6 luku :: String -> (Double, String) luku s = case span isdigit s of (n, '.':r) -> case span isdigit r of (m, r') -> (read (n++. ++m), r') (n, r) -> (read n, r) where isdigit c = '0' <= c && c <= '9'
7 Jäsennyksen teoriaa Oikeastaan Automaatit ja kieliopit kurssin asiaa, mutta tehdään sitä nyt käytännöllisesti
8 Peruskäsitteet Aakkosto Kieli (Kontekstiton) kielioppi Jäsennin bottom up top down ennustava jäsennin
9 Aakkosto Formaalisti: epätyhjä äärellinen joukko Käytännössä usein merkistö aika usein myös: sanasten joukko Aakkoston alkioista tehty äärellinen jono on merkkijono
10 Kieli Formaalisti: kieli on jokin merkkijonojen joukko ei enempää, ei vähempää kieleen sinänsä ei liity mitään tulkintaa tai rakennetta Aakkoston {0, 1} kieliä: {000, 001, 010, 011, 100, 101, 110, 111} { , }
11 Kielioppi Kielioppi on jonkin yksittäisen kielen formaali määritelmä Yleensä käytännössä kiinnostaa vain kontekstiton kielioppi Kontekstiton kielioppi rakentuu hierarkisuuden ja rekursiivisuuden varaan
12 Kontekstittoman kieliopin rakenne Kontekstiton kielioppi on joukko produktioita Kukin produktio koostuu välikesymbolista, nuolesta (oikealle) sekä jonosta välike ja päätesymboleja Esimerkki: binääriluku > 0 binääriluku > 1 binääriluku > binääriluku 0 binääriluku > binääriluku 1 välikesymboli päätesymboleita
13 Kontekstittoman kieliopin tulkinta Välikesymboli on jonkin kielen nimi kirjoita paperille jokin välikesymboli etsi kieliopista produktio, jossa on jokin paperilla oleva välikesymboli nuolen vasemmalla puolella korvaa paperilla ko. välikesymbolin nimi ko. produktion oikealla puolella toista kahta edellistä, kunnes paperilla ei ole enää välikesymboleja
14 (1) binääriluku > 0 (2) binääriluku > 1 (3) binääriluku > binääriluku 0 (4) binääriluku > binääriluku 1 binääriluku
15 (1) binääriluku > 0 (2) binääriluku > 1 (3) binääriluku > binääriluku 0 (4) binääriluku > binääriluku 1 binääriluku ==> (3) binääriluku 0
16 (1) binääriluku > 0 (2) binääriluku > 1 (3) binääriluku > binääriluku 0 (4) binääriluku > binääriluku 1 binääriluku ==> (3) binääriluku 0 ==> (4) binääriluku 1 0
17 (1) binääriluku > 0 (2) binääriluku > 1 (3) binääriluku > binääriluku 0 (4) binääriluku > binääriluku 1 binääriluku ==> (3) binääriluku 0 ==> (4) binääriluku 1 0 ==> (4) binääriluku 1 1 0
18 (1) binääriluku > 0 (2) binääriluku > 1 (3) binääriluku > binääriluku 0 (4) binääriluku > binääriluku 1 binääriluku ==> (3) binääriluku 0 ==> (4) binääriluku 1 0 ==> (4) binääriluku ==> (1) (merkkijonon 0110 yo. kieliopin mukainen johto)
19 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä
20 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä ==>(5) laskutehtävä * laskutehtävä
21 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä ==>(5) laskutehtävä * laskutehtävä ==>(2) laskutehtävä * ( laskutehtävä )
22 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä ==>(5) laskutehtävä * laskutehtävä ==>(2) laskutehtävä * ( laskutehtävä ) ==>(3) laskutehtävä * ( laskutehtävä + laskutehtävä )
23 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä ==>(5) laskutehtävä * laskutehtävä ==>(2) laskutehtävä * ( laskutehtävä ) ==>(3) laskutehtävä * ( laskutehtävä + laskutehtävä ) ==>(1) 35 * ( laskutehtävä + laskutehtävä )
24 (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä laskutehtävä ==>(5) laskutehtävä * laskutehtävä ==>(2) laskutehtävä * ( laskutehtävä ) ==>(3) laskutehtävä * ( laskutehtävä + laskutehtävä ) ==>(1) 35 * ( laskutehtävä + laskutehtävä ) ==>(1) ja (1) 35 * ( )
25 Kertausta kieliopeista Kielioppi siis määrittelee jonkin tietyn kielen Koostuu produktioista Produktiolla on vasen ja oikea puoli Vasemmalla puolella on välikesymboli Oikealla puolella on pääte ja välikesymboleita Välikesymboli voidaan kieliopin avulla avata joksikin sen kieleen kuuluvaksi merkkijonoksi (tämä prosessi on epädeterministinen)
26 Rakennepuu (1) laskutehtävä (1) laskutehtävä (5) laskutehtävä ==>(5) laskutehtävä * laskutehtävä ==>(2) laskutehtävä * ( laskutehtävä ) ==>(3) laskutehtävä * ( laskutehtävä + laskutehtävä ) ==>(1) 35 * ( laskutehtävä + laskutehtävä ) ==>(1) ja (1) 35 * ( ) laskutehtävä (2) laskutehtävä (1) laskutehtävä (3) laskutehtävä (1) 35 * ( ) (lausekkeen 35*(12+4) niin sanottu konkreetti rakennepuu)
27 Rakennepuu (2) (Konkreetti) rakennepuu on puu, jonka lehtisolmut ovat päätesymboleja jonka sisäsolmut ovat välikesymboleja jossa jokaiselle sisäsolmulle pätee seuraavaa: kun ko. solmu katsotaan produktion vasemmaksi puoleksi ja sen lasten katsotaan muodostavan produktion oikean puolen löytyy tuo produktio kieliopista Konkreetista rakennepuusta on mahdollista lukea merkkijonon johto... sekä päin vastoin
28 laskutehtävä laskutehtävä laskutehtävä laskutehtävä laskutehtävä 2 + ( 3 * 4 ) laskutehtävä laskutehtävä laskutehtävä laskutehtävä laskutehtävä ( ) * 4 Kaksi saman merkkijonon rakennepuuta saman kieliopin mukaan (punaiset sulut osoittavat, mitä nämä eri rakennepuut oikein tarkoittavat)
29 Moniselitteisyys Kielioppi on moniselitteinen, jos samalla merkkijonolla on sen mukaan ainakin kaksi erilaista rakennepuuta (ja siis johtoa) Moniselitteisyys on yleensä mahdollista poistaa muokkaamalla kielioppia muokattu kielioppi tuottaa saman kielen eli samat merkkijonot muokattu kielioppi ei kuitenkaan ole moniselitteinen
30 Moniselitteinen kielioppi (1) laskutehtävä > lukuvakio (2) laskutehtävä > ( laskutehtävä ) (3) laskutehtävä > laskutehtävä + laskutehtävä (4) laskutehtävä > laskutehtävä laskutehtävä (5) laskutehtävä > laskutehtävä * laskutehtävä (6) laskutehtävä > laskutehtävä / laskutehtävä Yksiselitteinen kielioppi (1) laskutehtävä > termi (2) laskutehtävä > laskutehtävä + termi (3) laskutehtävä > laskutehtävä termi (4) termi > tekijä (5) termi > termi * tekijä (6) termi > termi / tekijä (7) tekijä > lukuvakio (8) tekijä > ( laskutehtävä )
31 (S )attribuuttikieliopit Jokaiseen symboliin liittyy semanttinen arvo esim. lukuvakio symbolin semanttinen arvo voi olla 42, 12, 999 jne. Jokaiseen produktioon lisätään synteettinen attribuutti sääntö, jolla produktion vasemmanpuoleisen välikesymbolin semanttinen arvo johdetaan oikealla puolella esiintyvien symboleiden semanttisista arvoista
32 (1) laskutehtävä > termi $1 (2) laskutehtävä > laskutehtävä + termi Yhteen $1 $3 (3) laskutehtävä > laskutehtävä termi Vahennys $1 $3 (4) termi > tekijä $1 (5) termi > termi * tekijä Tulo $1 $3 (6) termi > termi / tekijä Osamaara $1 $3 (7) tekijä > lukuvakio Luku $1 (8) tekijä > ( laskutehtävä ) $2 $i tarkoittaa oikean puolen i:nnen symbolin semanttista arvoa tässä semanttiset arvot ovat Haskell lausekkeita merkkijonoa johdettaessa tulkinta: muodostetaan merkkijono, joka vastaa ko. semanttista arvoa produktiota saa käyttää vain jos semanttinen arvo on sovitettavissa sen attribuuttiin * 3 on joko Yhteen (Luku 1) (Tulo (Luku 2) (Luku 3)) tai Tulo (Yhteen (Luku 1) (Luku 2)) (Luku 3)
33 Jäsennysongelma Annettu: kielioppi (mahdollisesti attribuutteineen) merkkijono Tulos: merkkijonon johto (rakennepuu) tai se semanttinen arvo, josta merkkijono on johdettu tai tieto siitä, ettei merkkijono kuulu kieleen syntaksivirhe
34 Toiveita jäsennysalgoritmista Mikäli mahdollista, toimii lineaarisesti skannaamalla annettua merkkijonoa ei palata taaksepäin (no backtracking) mahdollisimman kevyt muutenkin Mahdollisimman hyvä virheen diagnosointi jos merkkijono ei kuulu kieleen, miksi ei? voiko merkkijonoa vähän muuttamalla tehdä siitä kieleen kuuluvan?
35 Tunnettuja jäsennystapoja Alhaalta ylöspäin rakennetaan rakennepuu lehdistä juureen päin LR(1), LARL,... työkaluja: yacc, bison, happy, SableCC Ylhäältä alaspäin LL(1), ei vasenrekursiivisuus rekursiivisesti etenevä (usein ennustava) jäsennys usein kirjoitetaan käsin työkaluja: JavaCC, lucky,...
36 Rekursiivisesti etenevä jäsennys (1) recursive descent parsing tavallisesti käsin kirjoitettuja jäsentimiä idea: kutakin välikesymbolia vastaa funktio, joka koettaa katsoa, kuuluuko merkkijono sen määrittelemään kieleen funktio koettaa sovittaa merkkijonoa välikesymbolin produktioihin funktio kutsuu toisia funktioita, kun pitää selvittää, sopiiko jokin osamerkkijono johonkin toiseen välikesymboliin
37 Rekursiivisesti etenevä jäsennys (2) Käytettävä kielioppi ei saa olla vasenrekursiivinen vasen rekursio: produktion oikean puolen ensimmäinen symboli voidaan laajentaa muotoon, jossa sen alussa on ko. produktion vasen puoli esim. termi > termi + tekijä muuten rekursiivisesti etenevä jäsennin jää päättymättömään rekursioon Vasen rekursio on mahdollista poistaa ns. vasemmalla tekijöinnillä tuloksena vaan sotkuisempi kielioppi
38 (1) laskutehtävä > termi $1 (2) laskutehtävä > laskutehtävä + termi Yhteen $1 $3 (3) laskutehtävä > laskutehtävä termi Vahennys $1 $3 Vasen tekijöinti (4) termi > tekijä $1 (5) termi > termi * tekijä Tulo $1 $3 (6) termi > termi / tekijä Osamaara $1 $3 laskutehtävä > termi laskutehtävä' $2 $1 (7) tekijä > lukuvakio Luku $1 (8) tekijä > ( laskutehtävä ) $2 laskutehtävä' > \ x > x laskutehtävä' > + laskutehtävä \ x > Yhteen x $2 laskutehtävä' > laskutehtävä \ x > Vahennys x $2 termi > tekijä termi' $2 $1 termi' > \ x > x termi' > * termi \ x > Tulo x $2 termi' > / termi \ x > Osamaara x $2 tekijä > lukuvakio Luku $1 tekijä > ( laskutehtävä ) $2
39 Jäsentäminen Haskellissa Oikeaan työhön suosittelen oikeita työkaluja: Happy, Lucky, frankfurt.de/~klose/lucky.html Parsec, Bnfc, Seuraavassa tehoton mutta opettavainen itse alusta asti rakennettu laskutehtävän jäsennin
40 Jäsentimen tyyppi? Epäilemättä funktio Ottaa sanasjonon Palauttaa sitä vastaavan semanttisen arvon jos kielioppi on moniselitteinen, useita sellaisia Palauttaa myös jäljelle jääneen sanasjonon type Parser a = [Sananen] > [(a, [Sananen])] Avainsana type määrittelee tyyppialiaksen: vasen tyyppinimi tarkoittaa samaa kuin oikealla esiintyvä tyyppi. Parser a on näin lyhennysmerkintä tyypille [Sananen] > [(a, [Sananen])]
41 Onnistuisiko näin? laskutehtävä > termi laskutehtävä' $2 $1 laskutehtävä' > \ x > x laskutehtävä' > + laskutehtävä \ x > Yhteen x $2 laskutehtävä' > laskutehtävä \ x > Vahennys x $2 termi > tekijä termi' $2 $1 termi' > \ x > x termi' > * termi \ x > Tulo x $2 termi' > / termi \ x > Osamaara x $2 tekijä > lukuvakio Luku $1 tekijä > ( laskutehtävä ) $2 laskutehtava :: Parser Laskutehtava laskutehtava' :: Parser (Laskutehtava > Laskutehtava) termi :: Parser Laskutehtava termi' :: Parser (Laskutehtava > Laskutehtava) tekija :: Parser Laskutehtava lukuvakio :: (Double > a) > Parser a syo :: Sananen > Parser ()
42 laskutehtävä > termi laskutehtävä' $2 $1 laskutehtava :: Parser Laskutehtava laskutehtava = termi `followedby` laskutehtava' `sem` \(p1,p2) > p2 p1 followedby :: Parser a > Parser b > Parser (a, b) followedby p1 p2 toks = concat (map (\(a,s) > map (\(b,s') > ((a,b),s')) (p2 s)) (p1 toks)) sem :: Parser a > (a > b) > Parser b sem p f toks = map (\(a,s) > (f a, s)) (p toks)
43 laskutehtävä' > \ x > x laskutehtävä ' > + laskutehtävä \ x > Yhteen x $2 laskutehtävä' > laskutehtävä \ x > Vahennys x $2 laskutehtava' :: Parser (Laskutehtava > Laskutehtava) laskutehtava' = (ota Plus `followedby` laskutehtava `sem` \(_,p) x > Yhteen x p) `orelse` (ota Miinus `followedby` laskutehtava `sem` \(_,p) x > Vahennys x p) `orelse` otatyhja (\x > x) orelse :: Parser a > Parser a > Parser a orelse p1 p2 toks = p1 toks ++ p2 toks ota :: Sananen > Parser () ota tok (tok':toks) tok == tok' = [((),toks)] ota = [] otatyhja :: a > Parser a otatyhja a toks = [(a, toks)] (termi, termi' samaan tapaan)
44 tekijä > lukuvakio Luku $1 tekijä > ( laskutehtävä ) $2 tekija :: Parser Laskutehtava tekija = lukuvakio Luku `orelse` (ota SulkuAuki `followedby` laskutehtava `followedby` ota SulkuKiinni `sem` \((_,l),_) > l) lukuvakio :: (Double > a) > Parser a lukuvakio f (Vakio d:toks) = [(f d,toks)] lukuvakio = []
45 Toimii, mutta... Tehoton: kokeilee kaikkia vaihtoehtoja rinnakkain fiksu, jos kielioppi on raskaasti moniselitteinen useimmiten tuhlaa resursseja (ei kylläkään peruuta!) Huono diagnostiikka: ainoat palautteet ovat moniselitteinen syöte ja syntaksivirhe
46 Parannusideoita Vältetään rinnakkaisuutta silloin, kun sen tiedetään olevan tarpeetonta FIRST ja FOLLOW joukot (ks. AuKi) Pidetään kirjaa virheistä esim. ota voisi hyvin kirjata odotin sanasta Foo, sain sanasen Bar ongelmana relevanttien virheiden seulonta turhista Ei kuulu enää tämän kurssin sisältöihin käyttäkää valmiita työkaluja ja kirjastoja : )
47 Yhteenveto: keskeiset käsitteet Kieli Kontekstiton kielioppi produktio välikesymboli päätesymboli Attribuutti, semanttinen arvo Rakennepuu Rekursiivisesti etenevä jäsennys
Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005
Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin Liukulukulaskentaa Yhteen, vähennys, kerto ja jakolaskut Syötteenä laskutehtävä, tulosteena tulos tai virheilmoitus
Lisätiedotjä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ätiedotTIEA241 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ätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013 Sisällys etenevä etenevä Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1)
LisätiedotTIEA341 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ätiedotjä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ätiedot5.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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotJä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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotAttribuuttikieliopit
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ätiedotjä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ätiedotTIEA241 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ätiedotAlgebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...
LisätiedotTIEA241 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ätiedotPinoautomaatit. 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ätiedotYhteydettö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ätiedotRajoittamattomat 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ätiedotTä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ätiedot815338A 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ätiedotTä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ätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x
LisätiedotTä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ätiedotPinoautomaatit. 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ätiedotTIEA241 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ätiedotVasen 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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotPinoautomaatit. 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ätiedottään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla
2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella
Lisätiedotuv 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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 11 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Listakomprehensio Uusi tapa luoda (ja muokata) listoja: [ lauseke
LisätiedotKontekstittomien 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ätiedotTIEA241 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ätiedotJä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ätiedotLisää laskentoa. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Lisää laskentoa TIEA341 Funktio ohjelmointi 1 Syksy 2005 Kertausta: Laajennettu aritmetiikka Lasketaan rationaaliluvuilla vakiot yhteen, vähennys, kerto ja jakolasku Laajennetaan sitä määrittelyillä: vakio
LisätiedotEi-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ätiedotTIE448 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ätiedotAutomaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
LisätiedotT 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ätiedotSää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ätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 5 Ympärysmitta. Puut. Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 CASE: YMPÄRYSMITTA Lasketaan kuvioiden ympärysmittoja
LisätiedotTIEA241 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ätiedotTIEA241 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ätiedot2. 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ätiedotLaskennan 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ätiedotUusi näkökulma. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Uusi näkökulma TIEA341 Funktio ohjelmointi 1 Syksy 2005 Aloitetaan alusta... Otetaan uusi näkökulma Haskelliin ohjelmointi laskentana kertausta toisaalta, uusia käsitteitä toisaalta helpottanee sitten
LisätiedotChomskyn 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ätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön
LisätiedotDemo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005
Demo 7 (14.12.2005) Antti-Juhani Kaijanaho 9. joulukuuta 2005 Liitteenä muutama esimerkki Ydin-Haskell-laskuista. Seuraavassa on enemmän kuin 12 nimellistä tehtävää; ylimääräiset ovat bonustehtäviä, joilla
LisätiedotLR-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ätiedotTIEA241 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ätiedotTyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS LUONNOLLISEN KIELEN KÄSITTELY (NATURAL LANGUAGE PROCESSING, NLP) TEKOÄLYSOVELLUKSET, JOTKA LIITTYVÄT IHMISTEN KANSSA (TAI IHMISTEN VÄLISEEN) KOMMUNIKAATIOON, OVAT TEKEMISISSÄ
LisätiedotTIEA241 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ätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 4 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 17. tammikuuta 2008 Modulin viimeistelyä module Shape ( Shape ( Rectangle, E l l i p
LisätiedotICS-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ätiedotYdin-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ätiedotYhteydettö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ätiedotTIE448 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ätiedotTIEA241 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ätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotOsoitamme, 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ätiedot1. 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ätiedotSyntaksi. 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(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ätiedotS 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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotTIEA241 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ätiedotLisää 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ätiedotTIEA241 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ätiedotTuringin 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ätiedotICS-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ätiedotTIEA341 Funktio-ohjelmointi 1, kevät 2008
TIEA341 Funktio-ohjelmointi 1, kevät 2008 Luento 10 Todistamisesta Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 21. tammikuuta 2008 Samuuden todistaminen usein onnistuu ihan laskemalla
LisätiedotTarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.
Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen
LisätiedotRajoittamattomat 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ätiedot11.4. Context-free kielet 1 / 17
11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä
LisätiedotMuodolliset kieliopit
Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk.
LisätiedotTIEA241 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ätiedotICS-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ätiedot3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko
3.3 KILIOPPIN JÄSNNYSONGLMA Rtkistv tehtävä: Annettu yhteydetön kielioppi G j merkkijono x. Onko x L(G)? Rtkisumenetelmä = jäsennyslgoritmi. Useit vihtoehtoisi menetelmiä, erityisesti kun G on jotin rjoitettu
LisätiedotKertausta 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ätiedotTietojenkä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ätiedotLaskennan 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ätiedotfollow(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ätiedotvaihtoehtoja 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ätiedotAbstraktit tietotyypit. TIEA341 Funktio ohjelmointi 1 Syksy 2005
Abstraktit tietotyypit TIEA341 Funktio ohjelmointi 1 Syksy 2005 Data abstraktio Abstraktio on ohjelmoinnin tärkein väline Data abstraktio abstrahoi dataa Abstrakti tietotyyppi Koostuu kolmesta asiasta:
LisätiedotLaajennetaan vielä Ydin-Haskellia ymmärtämään vakiomäärittelyt. Määrittely on muotoa
2.6. TIETOKONE LASKIMENA 23 Edellä esitetty Ydin-Haskell on hyvin lähellä sitä kieltä, jota GHCi (Glasgow Haskell Compiler, Interactive) sekä muut Haskell-järjestelmät suostuvat ymmärtämään. Esimerkiksi:
LisätiedotRekursiiviset palautukset [HMU 9.3.1]
Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle
Lisätiedot4. 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ätiedotKontekstittomat jäsennysmenetelmät
Kontekstittomat jäsennysmenetelmät Yleistä, kontekstittomat kieliopit, kokoava ja osittava jäsentäminen Lili Aunimo lili.aunimo@helsinki.fi Helsingin yliopisto Kieliteknologia Lili Aunimo Kontekstittomat
LisätiedotTIEA241 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ätiedotMatematiikan tukikurssi, kurssikerta 2
Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan
LisätiedotLaskennan 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ätiedotLuku 3. Listankäsittelyä. 3.1 Listat
Luku 3 Listankäsittelyä Funktio-ohjelmoinnin tärkein yksittäinen tietorakenne on lista. Listankäsittely on paitsi käytännöllisesti oleellinen aihe, se myös valaisee funktio-ohjelmoinnin ideaa. 3.1 Listat
Lisätiedot