Jäsennysalgoritmeja. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 29. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Jäsennysalgoritmeja
|
|
- Maija-Liisa Hakala
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2009
2 Sisällys
3 Sisällys
4 Seuraava deadline Vaihe B tiistai klo 10 selaaja ja jäsentäjä toimivat
5 Kääntäjän rakenne lähdeohjelma SELAAJA sanasjono JÄSENTÄJÄ VÄLIKOODIN GENEROIJA rakennepuu välikoodi KOHDEKOODIN GENEROIJA kohdeohjelma TARKASTAJA SOKERINPILKKOJA OPTIMOIJA OPTIMOIJA
6 Jäsentäjän tehtävät selaajan tuottaman sanasjonon muuttaminen ohjelman loogista rakennetta kuvaavaksi tietorakenteeksi ohjelmassa olevien kielioppivirheiden tunnistaminen ja diagnosointi tällä luennolla oletetaan annetuksi jäsennettävä kielioppi
7 Sisällys
8 engl. recursive descent parsing Tehdään kustakin välikesymbolista aliohjelma, joka kokeilee kutakin produktiota vuorollaan. Päätesymbolin kohdalla yritetään ottaa se selaimelta. Välikesymbolin kohdalla kutsutaan sitä vastaavaa aliohjelmaa. Jos jäsennys ei onnistu, peruutetaan (backtrack) lähimpään tehtyyn valintaan, jossa ei ole vielä kaikki vaihtoehdot käyty läpi.
9 /* <statement> ::= if ( <expression> ) <statement> if ( <expression> ) <statement> else <statement> return ; return <expression> ; */ Statement parsestatement(lexer l) throws ParserException { Lexer.State st = l.savestate(); try { l.get(lexer.if); l.get(lexer.oparen); Expression tst = parseexpression(l); l.get(lexer.cparen); Statement thn = parsestatement(l); Statement els = null; if (l.peek() == Lexer.ELSE) { l.get(); els = parsestatement(l); } return new IfStatement(tst, thn, els); } catch (ParserException e) {} l.restorestate(st); try { l.get(lexer.return); Expression e = null; Lexer.State st1 = l.savestate(); try { e = parseexception(l); } catch (ParserException e) { l.restorestate(st1); } l.get(lexer.semicolon); return new ReturnStatement(e); } catch (ParserException e) {} l.restorestate(st); throw ParserException("failed to parse a statement"); }
10 Pro ja contra + Erittäin helppo koodata käsin kieliopista lähtien. Jos kielioppi on vasenrekursiivinen, algoritmi kaatuu. Algoritmi tekee älyttömästi turhaa työtä kokeillessaan kaikkia vaihtoehtoja.
11 Vasemman rekursion poisto X α 1 X X Xγ X α m X X Xγ n = X γ 1 X X α X γ m X X α m X γ i ja α i eivät ala X:llä
12 A x A (E) F A F F A F F / A E F E E + F E E F = A x A (E) F AF F F AF F / AF E FE E E + FE E FE
13 Sama koodina Expression parseexpression(lexer l) throws ParserException { Expression e = parseterm(l); return parseexpressionprime(l, e); } Expression parseexpressionprime(lexer l, Expression e1) throws ParserException { Lexer.State st = l.savestate(); try { l.get(lexer.plus); Expression e2 = parseterm(l); return parseexpressionprime(l, new AdditionExpression(e1,e2)); } catch (ParserException e) {} l.restorestate(st); try { l.get(lexer.minus); Expression e2 = parseterm(l); return parseexpressionprime(l, new AdditionExpression(e1,e2)); } catch (ParserException e) {} l.restorestate(st); return e1; }
14 Poistetaan häntäkutsuja Expression parseexpression(lexer l) throws ParserException { Expression e1 = parseterm(l); while (true) { Lexer.State st = l.savestate(); try { l.get(lexer.plus); Expression e2 = parseterm(l); e1 = parseexpressionprime(l, new AdditionExpression(e1,e2)); continue; } catch (ParserException e) {} l.restorestate(st); try { l.get(lexer.minus); Expression e2 = parseterm(l); e2 = parseexpressionprime(l, new AdditionExpression(e1,e2)); continue; } catch (ParserException e) {} l.restorestate(st); return e1; } }
15 Ennustava jäsennys Usein on mahdollista päättää heti, onko jokin produktio mahdollinen. Esim. E + TE ei tule kyseeseen, jos seuraava token 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.
16 Expression parseexpression(lexer l) throws ParserException { Expression e1 = parseterm(l); while (true) { switch (l.peek()) { case Lexer.PLUS: l.get(); Expression e2 = parseterm(l); e1 = parseexpressionprime(l, new AdditionExpression(e1,e2)); continue; case Lexer.MINUS: l.get(); Expression e2 = parseterm(l); e2 = parseexpressionprime(l, new AdditionExpression(e1,e2)); continue; default: return e1; } } }
17 Milloin tietty produktio voidaan ennustaa? NULLABLE(X) on tosi, jos X:stä voidaan johtaa tyhjä merkkijono. NULLABLE(X) = tosi NULLABLE(X) = NULLABLE(Y i ) jos on produktio X jos on produktio X Y 1 Y i Y n ja jos NULLABLE(Y 1 ) NULLABLE(Y i 1 ) FIRST(γ) on kaikkien niiden päätesymbolien (ynnä syötteen loppu) joukko, jotka voivat aloittaa γ:n. FIRST(a) = {a} FIRST(X) = FIRST(X) FIRST(Y i ) jos a on päätesymboli jos on produktio X Y 1 Y i Y n ja jos NULLABLE(Y 1 ) NULLABLE(Y i 1 ) FOLLOW(X) on kaikkien niiden päätesymbolien (ynnä syötteen loppu) joukko, jotka voivat seurata Xää. FOLLOW(Y i ) = FOLLOW(Y i ) FIRST(Y j ) jos on produktio X Y 1 Y i Y j Y n ja NULLABLE(Y i+1 ) NULLABLE(Y j 1 ) FOLLOW(Y i ) = FOLLOW(Y i ) FOLLOW(X) jos on produktio X Y 1 Y i Y n ja jos NULLABLE(Y i+1 ) NULLABLE(Y n)
18 Esimerkki E TE E T x E + TE T (E) E TE NULLABLE FIRST FOLLOW E ei x, ( ), eof E kyllä +, ), eof T ei x, ( +,, ), eof
19 Ennustava jäsennystaulukko rivi jokaiselle välikesymbolille sarake jokaiselle päätesymbolille (ynnä syötteen loppu) Merkitse produktio X γ riville X ja sarakkeeseen t jokaiselle t FIRST(γ), ja jos NULLABLE(γ), myös jokaiselle t FOLLOW(X).
20 Esimerkki E TE E T x E + TE T (E) E TE NULLABLE FIRST FOLLOW E ei x, ( ), eof E kyllä +, ), eof T ei x, ( +,, ), eof x + ( ) eof E E TE E TE E E +TE E TE E E T T x T (E)
21 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 1, 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. 1 Tällöin taulukossa on konflikti.
22 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.
23 Ylhäältä alaspäin -jäsennys LL(1)-jäsennys etenee ylhäältä alaspäin, sillä se aloittaa välikesymbolista, ennustaa tarvittavan produktion, ja jäsentää ko. produktion mukaan, ja näin rakentaa jäsennyspuun juuresta lehtiin.
24 Ennustava jäsennys: 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).
25 Sisällys
26 LR(k)-jäsennys left-to-right parse, rightmost derivation, k-token lookahead jäsentimessä pino ja syöte (jota luetaan k:n sanasen ikkunassa) syötejono sisältää koko syöteen ja pino on tyhjä. kaksi toimintoa: shift: Siirrä seuraava syötesananen pinoon. reduce: Valitse produktio X Y 1 Y n, poista pinosta symbolit Y 1,..., Y n ja lisää pinoon välikesymboli X. Jos jäsennys onnistui, lopussa syötejono on tyhjä ja pinossa on vain yksi symboli (kieliopin aloitussymboli).
27 LR(k)-jäsennysautomaatti Kuhunkin tilaan liittyy toimintaohje kullekin symbolille (ynnä syötteen loppumiselle): shift n tee shift-operaatio ja siirry tilaan n reduce n tee reduce-operaatio produktiolle n goto n siirry tilaan n koskematta pinoon ja syötteeseen accept jäsennys on valmis error jäsennys epäonnistui Goto-toiminto on mahdollinen vain välikesymbolin kohdalla, muut vain päätesymbolin kohdalla Pinoon pistetään aina symbolin seuraksi nykyinen tila; automaatin tila on aina pinon päällimmäinen tila.
28 LR-itemit LR(0)-item koostuu produktiosta ja indeksistä sen oikeaan puoleen. Merkitään usein niin, että indeksin paikka kirjoitetaan produktion sisään pisteenä: E F +. E LR(1)- ja LALR(1)-item sisältää lisäksi lookahead-päätesymbolin. LR(k)-item sisältää lookahead-päätesymbolijonon
29 Konfliktit Jos LR-automaatissa on samassa solussa useampi toimintaohje, on kyseessä konflikti. Tällöin kielioppi ei ole LR. Shift/reduce-konflikti on tilanne, jossa samassa tilassa on sekä shift- että reduce-toimintaohje. Tyypillinen esimerkki on aiemmin esitelty if-else-moniselitteisyys. Yleensä korjattavissa kielioppia muokkaamalla. Usein shift-toiminnon valitseminen tuottaa halutun tuloksen. Reduce/reduce-konflikti on tilanne, jossa samassa tilassa on kaksi eri reduce-toimintaohjetta. Tällöin joko kieliopissa on bugi tai jäsennettävä kieli ei sovellut LR-jäsennykseen. Shift/shift-konfliktia ei esiinny.
30 Alhaalta ylöspäin -jäsennys LR(k) jäsentää alhaalta ylöspäin, sillä se rakentaa reduce-toiminto kerrallaan jäsennyspuuta lehdistä juureen.
31 LR:n eri lajit Ilmaisuvoimajärjestyksessä: LR(0) ei lookaheadia SLR lookahead FIRST- ja FOLLOW-joukkojen avulla LALR(1) eli lookahead-lr LR(1)-jäsentimestä tilatehokkaampi ja hieman heikompi versio LR(1) yhden merkin lookahead, automaatti on yleensä iso LR(k), missä k > 1, ja LR(1) ovat yhtä ilmaisuvoimaiset.
32 LR: pro ja contra + LR(1) käsittää useampia kieliä kuin LL(k). + LR-kieliopit ovat yleensä varsin helppolukuisia. LR-jäsentimen käsin koodaaminen on lähes mahdotonta. LR-konfliktien debuggaus on hankalaa ja vaatii kokemusta.
33 LARL-jäsenningeneraattorit Yacc, Bison, CUP, Happy jne. Jokaiseen symboliin liittyy semanttinen arvo. Reduce-toiminnon yhteydessä mahdollista suorittaa ohjelmoijan määräämää koodia, joka voi laskea vasemman puolen välikesymbolille semanttisen arvon käyttäen oikean puolen symbolien semanttisia arvoja hyväkseen.
34 Sisällys
35 Seuraava deadline Vaihe B tiistai klo 10 selaaja ja jäsentäjä toimivat
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ä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ä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ä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ä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ä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ä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, 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ä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. 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ä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ä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ä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ä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ä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ätiedotTIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 17. marraskuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman ta) Vaihe
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ätiedotEloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)
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ä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ätiedotTIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne
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ä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ä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ä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ä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ätiedotTIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 13. lokakuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe C tiistai 20.10. klo 10 kielivirheiden diagnoosi, sokerin
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ä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ätiedotMuita rekisteriallokaatiomenetelmiä
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 23. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)
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ä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ätiedotTIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 26. lokakuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. lokakuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Kääntäjän rakenne
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ä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ä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ä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ä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ä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ä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ä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ätiedotTehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003
Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja
LisätiedotLaskennan 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
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ä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ätiedotTIE448 Kääntäjätekniikka, syksy 2009. Antti-Juhani Kaijanaho. 7. joulukuuta 2009
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 7. joulukuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe F maanantai 14.12. klo 12 rekisteriallokaatio Arvostelukappale
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ätiedotEsimerkki: 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ä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ä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ätiedotEsimerkki 47. Kieli {a i b j c k : i = j tai j = k} on luonnostaan moniselitteinen.
Aritmeettisen lausekkeen jäsennyspuun avulla voidaan helposti laskea lausekkeen arvo, kun muuttujien arvot tunnetaan. Yleisemmin, kääntäjä voi jäsennyspuun avulla generoida koodia lausekkeen evaluoimiseksi.
LisätiedotPoikkeustenkäsittely
1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on
LisätiedotSilmukkaoptimoinnista
sta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. joulukuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe F maanantai 14.12. klo 12 rekisteriallokaatio Arvostelukappale
Lisätiedotarvostelija JavaCC Petri Kärki Helsinki 15. huhtikuuta 2005 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
hyväksymispäivä arvosana arvostelija JavaCC Petri Kärki Helsinki 15. huhtikuuta 2005 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 JavaCC 1 2.1 Selaaja...................................
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ä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ätiedotOhjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
LisätiedotAlgoritmit 2. Demot Timo Männikkö
Algoritmit 2 Demot 2 3.-4.4.2019 Timo Männikkö Tehtävä 1 Avoin osoitteenmuodostus: Hajautustaulukko t (koko m) Erikoisarvot VAPAA ja POISTETTU Hajautusfunktio h(k,i) Operaatiot: lisaa etsi poista Algoritmit
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ä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, 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ä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ätiedotHakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina
Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 1.-2.2.2017 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: laskesumma(t, n) sum = t[0]; for (i = 1; i < n; i++) sum = sum + t[i]; return sum; Silmukka suoritetaan n 1 kertaa
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
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ätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 2 7.-8.2.2018 Timo Männikkö Tehtävä 1 (a) Ei-rekursiivinen algoritmi: etsipienin(t, n) { pnn = t[0]; for (i = 1; i < n; i++) { pnn = min(pnn, t[i]); return pnn; Silmukka suoritetaan
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ä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ä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ä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 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ä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ä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ä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ä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ätiedotEsimerkki 1: Kahviautomaatti.
Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.
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ätiedotLaskennan 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ä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ätiedot5/20: Algoritmirakenteita III
Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän
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ätiedotOhjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
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ätiedotTIEA241 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ä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ätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
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ä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ätiedot17/20: Keittokirja IV
Ohjelmointi 1 / syksy 2007 17/20: Keittokirja IV Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/10 Tavoitteita
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
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ätiedotTietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
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ätiedot