S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen.

Samankaltaiset tiedostot
S if b then S else S S s. (b) Muodosta (a)-kohdan kieliopin kanssa ekvivalentti, so. saman kielen tuottava yksiselitteinen.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

(0 1) 0 (0 1) 01 = (0 1) (0 01) = (0 1 ) (0 01)

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 5 Demonstraatiotehtävien ratkaisut. ja kaikki a Σ ovat säännöllisiä lausekkeita.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

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

3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko

Yhteydettömän kieliopin jäsennysongelma

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Yhteydettömät kieliopit [Sipser luku 2.1]

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

Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

ICS-C2000 Tietojenkäsittelyteoria

S BAB ABA A aas bba B bbs c

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

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

OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA

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

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

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

2.5 Säännöllisten kielten rajoituksista

5.5 Jäsenninkombinaattoreista

Q = {q 1, q 2, q 3, q 4 } Σ = {a, b} F = {q 4 },

Chomskyn hierarkia ja yhteysherkät kieliopit

2. Yhteydettömät kielet

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

SYDÄNKATETRISAATIOLABORATORION RÖNTGENLAITTEISTON JA SYDÄNKATETRISAATION MITTAUSLAITTEISTON HANKINTA MEILAHDEN TORNISAIRAALAN SYDÄNTUTKIMUSOSASTOLLE

RATKAISUT: 9. Pyörimisen peruslaki ja pyörimismäärä

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Olkoon. M = (Q, Σ, δ, q 0, F)

Olkoon. äärellinen automaatti. Laajennetaan M:n siirtymäfunktio yksittäisistä syötemerkeistä merkkijonoihin: jos q Q, x Σ, merkitään

1.a) f(x) = 2x(x 2 3) = 0 2x = 0 tai x 2 3 = 0 x = 0 tai x 2 = 3. Anne: Tulo on nolla, jos jokin tulon tekijöistä on nolla

Attribuuttikieliopit

Automaatin tunnistama kieli on sen hyväksymien merkkijonojen joukko. Täsmällinen muotoilu: δ,q 0,{q 2,q 3,q 6 }), missä

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Siirtojohdot. Siirtojohdot

Rajoittamattomat kieliopit

järjestelmät Jatkuva-aikaiset järjestelmät muunnostason ratkaisu Lineaariset järjestelmät Risto Mikkonen

TYÖNTEKIJÄN ELÄKELAIN (TYEL) 182 :N MUKAISEN TYÖTTÖMYYSVAKUUTUSRAHASTON MAKSUN KORJAUS VUODELTA 2007

Mutta esimerkiksi 0-kertaisesti pumpattaessa: Siten L ei voi olla säännöllinen.

f [Hz] f [Hz]

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Analyysi 2. Harjoituksia lukuihin 1 3 / Kevät Anna sellainen välillä ] 2, 2[ jatkuva ja rajoitettu funktio f, että

Numeeriset menetelmät

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

( ) Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 321 Päivitetty Saadaan yhtälö. 801 Paraabeli on niiden pisteiden ( x,

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

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

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

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

6 Numeerisesta integroinnista

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

Rajoittamattomat kieliopit (Unrestricted Grammars)

Tietorakenteet ja algoritmit

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

HY / Matematiikan ja tilastotieteen laitos Tilastollinen päättely II, kevät 2017 Harjoitus 4 Ratkaisuehdotuksia. Tehtäväsarja I

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

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

Riemannin integraali

Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila

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

MS-A010{2,3,4,5} (SCI, ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Täydentäviä muistiinpanoja jäsennysalgoritmeista

2. Laske tehtävän 1 mukaiselle 320 km pitkälle johdolle nimellisen p- sijaiskytkeän impedanssit ja admittanssit, sekä piirrä sijaiskytkennän kuva.

Ohjelmoinnin peruskurssien laaja oppimäärä

KUINKA PALJON VAROISTA OSAKKEISIIN? Mika Vaihekoski, professori. Lappeenrannan teknillinen yliopisto

Tietueet. Tietueiden määrittely

Sosiaali- ja terveysministeriön vahvistamissa vastuunjakoperusteissa esiintyvien tasauskertoimien arvot vuodelle 2011 = 0, = 0,036947

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

2 Epäoleellinen integraali

2.2 Automaattien minimointi

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

2.4 Pienimmän neliösumman menetelmä

sin θ θ θ r 2 sin 2 θ φ 2 = 0.

Tietorakenteet ja algoritmit

II.1. Suppeneminen., kun x > 0. Tavallinen lasku

TYÖNTEKIJÄN ELÄKELAIN (TYEL) 182 :N MUKAINEN TYÖTTÖMYYSVAKUUTUSRAHASTON MAKSU VUODELTA 2008

olevat ansiot vuonna v ja

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

Esimerkki 1: Kahviautomaatti.

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali


Käydään läpi: ääriarvo tarkastelua, L Hospital, integraalia ja sarjoja.

6.2 Algoritmin määritelmä

Ratkaistaan digitaalista rajataajuutta vastaava analoginen taajuus: Suodin on stabiili, koska napa on z-tasossa yksikköympyrän sisäpuolella.

S uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.

1.3 Toispuoleiset ja epäoleelliset raja-arvot

Syksyn 2015 Pitkän matematiikan YO-kokeen TI-Nspire CAS -ratkaisut

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Transkriptio:

T-79.148 Kevät 2004 Tietojenkäittelyteorin peruteet Hrjoitu 7 Demontrtiotehtävien rtkiut 4. Tehtävä: Ooit, että yhteydettömien kielten luokk on uljettu yhdite-, ktentioj ulkeumopertioiden uhteen, o. jo kielet L 1, L 2 Σ ovt yhteydettömiä, niin moin ovt myö kielet L 1 L 2, L 1 L 2 j L 1. Vtu: Olkoon L 1 j L 2 yhteydettömiä kieliä. Tällöin on olem kieliopit G 1 = (V 1, Σ 1, R 1, S 1 ) j G 2 = (V 2, Σ 2, R 2, S 2 ), iten, että L(G 1 ) = L 1 j L(G 2 ) = L 2. Vditn liäki, että (V 1 Σ 1 ) (V 2 Σ 2 ) =, eli kieliopei ei eiinny moj välikkeitä. Kok kieliopin välikkeet voidn trvitte nimetä uudelleen, ei tämä et oleellit rjoitut. 5. Tehtävä: Unioni: Olkoon S uui välike j G = (V 1 V 2 S, Σ 1 Σ 2, R 1 R 2 S S 1 S 2, S. Nyt L(G) = L(G 1 ) L(G 2 ) = L 1 L 2. Näin on, kok S:tä voidn joht vin S 1 ti S 2, joit voidn edelleen joht vin noj jotk kuuluvt jompn kumpn iemmit kielitä (ääntöjen eknnukelt vältytään, kok välikejoukot ovt pitevierit). Ktentio: Tällä kert uui kielioppi G = (V 1 V 2 S, Σ 1 Σ 2, R 1 R 2 S S 1 S 2, S. Nyt L(G) = L 1 L 2. Kleenen tähti: Tällä kert uui kielioppi G = (V 1 S, Σ 1, R 1 S ɛ SS 1, S. Nyt L(G) = L 1 () Ooit, että eurv yhteydetön kielioppi on monielitteinen: S S ele S S. (b) Muodot ()-kohdn kieliopin kn ekvivlentti, o. mn kielen tuottv ykielitteinen kielioppi. Vtu: Yhteydetön kielioppi G on monielitteinen, mikäli on olem n w L(G) iten, että w:llä on inkin kki erilit jäennypuut. Tehtävän kieliopille ykinkertiin tällinen n on: if b then if b then ele, jok voidn jäentää khdell tp: S ele S 1

S ele S Yleenä ohjelmointikieliä hlutn ele-lue liittää lähinpään mhdollieen if-lueeeen. Ylläolevit puit enimmäinen vt tätä käytäntöä. Määritellään kielioppi eurvti: G = (V, Σ, P, S) V = S, B, U,, b, if, then, ele Σ =, b, if, then, ele P = S B U B if b then B ele B U if b then B ele U Tää välikeellä B dn johdettu vin ohjelmi, joi kikill if-lueill on ekä then- että ele-hrt. Välikkeellä U johdetn itten if-lueet, joit puuttuu elehr. 6. Tehtävä:Ldi rekuriivieti etenevä jäentäjä edelliten hrjoituten tehtävän 6 kieliopille. Vtu: All olev C-ohjelm toteutt rekuriivien jäentäjän kieliopille: C S S; C S begin C end for n time do S Tää on ykinkertitettu hiemn edellien lkuhrjoitukerrn 6. tehtävän kielioppi korvmll erilliet numerot terminlill n, jok trkoitt mitä thn numero. Tärkeimmät ohjelm eiintyvät funktiot ovt: C(), S() toteuttvt kieliopin vriniet äännöt lex() lukee yötteetä eurvn lekeemin j tllett en globliin muuttujn current tok. expect(int token) yrittää luke yötteetä lekeemin token. Mikäli lukeminen epäonnituu nnetn virheilmoitu. conume token() merkitään tämänhetkinen lekeemi käytetyki. Tämä (ti jokin muu vtv funktio) trvitn iki, että joiin tpuki täytyy yötettä luke yki lekeemi eteenpäin ennen kuin tiedetään, mitä ääntöä täytyy käyttää. Käytännöä ohjelmointikielten jäentäjät toteutetn yleenä käyttäen lex- j ycc-työkluj 1. Näitä lex muodot tilkonepohjien eljn, jok tunnit äännölliillä luekkeill määritellyt lekeemit, j ycc tekee pinoutomttipohjien jäentimen nnetulle yhteydettömälle kieliopille. 1 Ti niiden johdnnii. 2

#include <tdio.h> #include <tdlib.h> #include <ctype.h> /* Define the lphbet */ enum TOKEN DO, FOR, END, BEGIN, TIMES, OP, SC, NUMBER, ERROR ; cont chr* token[] = "do", "for", "end", "begin", "time", "", ";", "NUMBER", NULL ; /* A globl vrible holding the current token */ int current_tok = ERROR; /* Mximum length of token */ #define TOKEN_LEN 128 /* declre function correponding to nonterminl */ void S(void); void C(void); int lex(void); void conume_token(void); void error(chr *t); void expect(int token); void C(void) S(); lex(); if (current_tok == SC) C(); printf("c => S ; C\n"); ele printf("c => S\n"); void S(void) lex(); witch (current_tok) ce OP: printf("s => \n"); ce BEGIN: C(); expect(end); printf("s => begin C end\n"); ce FOR: expect(number); 3

expect(times); expect(do); S(); printf("s => for N time do S\n"); defult: error("pre error"); /* int lex(void) return the next token of the input. */ int lex(void) ttic chr token_text[token_len]; int po = 0, c, i, next_token = ERROR; /* I there n exiting token lredy? */ if (current_tok!= ERROR) return current_tok; /* kip whitepce */ do c = getchr(); while (c!= EOF && ipce(c)); if (c!= EOF) ungetc(c, tdin); /* red token */ c = getchr(); while (c!= EOF && c!= ; &&!ipce(c) && po < TOKEN_LEN) token_text[po++] = c; c = getchr(); if (c == ; ) if (po == 0) /* emicolon token */ next_token = SC; ele /* triling emicolon, leve it for future */ ungetc( ;, tdin); token_text[po] = \0 ; /* triling zero */ /* identify token */ if (idigit(token_text[0])) /* number? */ next_token = NUMBER; ele /* not number */ for (i = DO; i < NUMBER; i++) if (!trcmp(token[i], token_text)) next_token = i; current_tok = next_token; return next_token; 4

void conume_token(void) current_tok = ERROR; void error(chr *t) printf(t); exit(1); /* try to red token from input */ void expect(int token) int next_tok = lex(); if (next_tok == token) return; ele error("pre error"); int min(void) int i; C(); return 0; Liite: oikelle lineriet kieliopit Yhteydetön kielioppi G on oikelle linerinen, mikäli en kikki äännöt ovt muoto: A αb, miä α Σ j B V ε. Toiin noen, äännön oikell puolell eiintyä korkeintn yki välike, j en täytyy oll äännön lopu. Eimerkiki äännöt A bc j A ε ovt oikelle linerii, mutt A B j A bcd eivät ole. Vtvti vemmlle linerien kieliopin kikki äännöt ovt muoto A Bα. Lineriet kieliopit ovt ilmiuvoimltn mll toll kuin äärelliet utomtit, eli niillä voidn ilmit kikki äännölliet kielet. Säännöllien kielen tuottv oikelle linerinen kielioppi voidn luke uorn kielen tunnitvt utomtit. Kieliopin välikkeiki otetn utomtin tilt, j kutkin utomtin iirtymätä q i q j dn ääntö Q i Q j. Liäki kielioppiin liätään äännöt Q f ε kikille hyväkyville lopputiloille q f F. Eimerkiki utomtti: q 2 q q 1 0 b b b 5

vtv kielioppi on: Q 0 Q 1 bq 2 ε Q 1 Q 2 bq 0 Q 2 Q 0 bq 1. 6