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



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

Riemannin integraalista

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Kuvausta f sanotaan tällöin isomorfismiksi.

Ristitulo ja skalaarikolmitulo

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

2.5 Säännöllisten kielten rajoituksista

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

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

Sinilause ja kosinilause

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

Kieli, merkitys ja logiikka, kevät 2011 HY, Kognitiotiede. Vastaukset 2.

Pythagoraan lause. Pythagoras Samoslainen. Pythagoraan lause

Esimerkki 8.1 Määritellään operaattori A = x + d/dx. Laske Af, kun f = asin(bx). Tässä a ja b ovat vakioita.

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (Predikaattilogiikka )

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan perusmallit 2013: Kertausta

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

Neliömatriisin A determinantti on luku, jota merkitään det(a) tai A. Se lasketaan seuraavasti: determinantti on

5 Epäoleellinen integraali

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

Riemannin integraalista

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

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

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

6.2 Algoritmin määritelmä

Kertymäfunktio. Kertymäfunktio. Kertymäfunktio: Mitä opimme? 2/2. Kertymäfunktio: Mitä opimme? 1/2. Kertymäfunktio: Esitiedot

LINSSI- JA PEILITYÖ TEORIAA. I Geometrisen optiikan perusaksioomat

Riemannin integraali

Määritelmä Olkoon C R m yksinkertainen kaari ja γ : [a, b] R m sen yksinkertainen parametriesitys, joka on paloittain C 1 -polku.

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

Integraalilaskentaa. 1. Mihin integraalilaskentaa tarvitaan? MÄNTÄN LUKIO

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

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

AUTOMAATTIEN SYNKRONISAATIOSTA

S Laskennallinen systeemibiologia

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

Valmennuksen ja arvioinnin tukijärjestemä (VAT)

4 Taso- ja avaruuskäyrät

Reaalinen lukualue. Millainen on luku, jossa on päättymätön ja jaksoton desimaalikehitelmä?

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

ANALYYSI I, kevät 2009

10. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA

Suorat, käyrät ja kaarevuus

7 Funktiosarjoista. 7.1 Funktiosarjojen suppeneminen

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause

Mikrotalousteoria 2, 2008, osa III

SARJAT JA DIFFERENTIAALIYHTÄLÖT Funktiojonot 1

MS-A010{2,3,4,5} (SCI,ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause

3 Mallipohjainen testaus ja samoilutestaus

ANALYYSI I, kevät 2009

Matematiikan johdantokurssi, syksy 2017 Harjoitus 6, ratkaisuista. 1. Onko jokin demojen 5 tehtävän 3 relaatioista

ANALYYSI I, kevät 2009

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

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

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

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

Vuokrahuoneistojen välitystä tukeva tietojärjestelmä.

SUORAKULMAINEN KOLMIO

Runkovesijohtoputket

// Tulostetaan liukulukutyyppinen muuttuja riviä vaihtamatta // yhden desimaalin tarkkuudella. System.out.printf("%.

Tehtävä 1. Jatka loogisesti oheisia jonoja kahdella seuraavaksi tulevalla termillä. Perustele vastauksesi

Polynomien laskutoimitukset

Täydentäviä muistiinpanoja jäsennysalgoritmeista

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

Yhteydettömät kieliopit [Sipser luku 2.1]

Diskreetin matematiikan perusteet Laskuharjoitus 6 / vko 13

Preliminäärikoe Pitkä Matematiikka

Sisältö. Integraali 10. syyskuuta 2005 sivu 1 / 20

θ 1 θ 2 γ γ = β ( n 2 α + n 2 β = l R α l s γ l s 22 LINSSIT JA LINSSIJÄRJESTELMÄT 22.1 Linssien kuvausyhtälö

Matematiikan peruskurssi. Seppo Hassi

Numeeriset menetelmät TIEA381. Luento 9. Kirsi Valjus. Jyväskylän yliopisto. Luento 9 () Numeeriset menetelmät / 29

Matematiikan tukikurssi

4 DETERMINANTTI JA KÄÄNTEISMATRIISI

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

T /1002 Tietojenkäsittelyteorian perusteet T/Y

Suorakaidekanavat. lindab suorakaidekanavat

LATO - Lastensuojelun ja toimeentulotuen toimintaprosessien ja tiedonhallinnan kehittäminen ja tehostaminen( )

Matematiikan tukikurssi

Matemaattiset menetelmät I. Seppo Hassi

Muodolliset kieliopit

Matematiikkaolympialaiset 2008 kuusi vaikeaa tehtävää

Lue Tuotteen turvaohjeet ennen laitteen käyttöönottoa. Lue sitten tämä Pika-asennusopas oikeiden asetusten ja asennuksen onnistumisen takaamiseksi.

TEHTÄVÄ 1. Olkoon (f n ) jono jatkuvia funktioita f n : [a, b] R, joka suppenee välillä [a, b] tasaisesti kohti funktiota f : [a, b] R.

3 Integraali ja derivaatta

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

1.3 Toispuoleiset ja epäoleelliset raja-arvot

Numeerinen integrointi

601 Olkoon tuntematon kateetti a ja tuntemattomat kulmat α ja β Ratkaistaan kulmat. 8,4 = 12. Ratkaistaan varjon pituus x. 14 x = 44,

7.lk matematiikka. Geometria 1

2.2 Automaattien minimointi

Painopiste. josta edelleen. x i m i. (1) m L A TEX 1 ( ) x 1... x k µ x k+1... x n. m 1 g... m n g. Kuva 1. i=1. i=k+1. i=1

Rekursioyhtälön ratkaisutapa #1: iteratiivinen korvaus

VEKTORILASKENTA. Timo Mäkelä SISÄLTÖ: 1 VEKTORIN KÄSITE...1

Digitaalinen videonkäsittely Harjoitus 5, vastaukset tehtäviin 25-30

TAMPEREEN YLIOPISTO Valinnaisten opintojen syventäviin opintoihin kuuluva tutkielma. Lauri Kumpulainen. Büchin automaateista

Transkriptio:

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 (käytännössä esiintyvää) muoto. Johdot j jäsennyspuut Olkoon γ V kieliopin G = (V, Σ, P, S) lusejohdos. Lähtösymbolist S merkkijonoon γ johtv suorien johtojen jono S = γ 0 γ 1 γ n = γ snotn γ:n johdoksi G:ssä. Johdon pituus on siihen kuuluvien suorien johtojen määrä (edellä n). simerkki: luseen johtoj kieliopiss G expr : (i) T T T F T T F (ii) T F T F F F F (iii) T F T F. Johto γ γ on vsen johto, merkitään γ γ, jos kusskin johtoskeless on produktiot sovellettu merkkijonon vsemmnpuoleisimpn välikkeeseen (edellä johto (i)). Vstvsti määritellään oike johto (edellä (iii)), jot merkitään γ Suori vsempi j oikeit johtoskeli merkitään γ γ j γ γ. γ Olkoon G = (V, Σ, P, S) yhteydetön kielioppi. Kieliopin G mukinen jäsennyspuu on järjestetty puu, joll on seurvt ominisuudet: (i) puun solmut on nimetty joukon V ε lkioill siten, että sisäsolmujen nimet ovt välikkeitä (so. joukost N = V Σ) j juurisolmun nimenä on lähtösymboli S; (ii) jos A on puun jonkin sisäsolmun nimi, j X 1,...,X k ovt sen jälkeläisten nimet järjestyksessä, niin A X 1... X k on G:n produktio. Jäsennyspuun τ tuotos on merkkijono, jok sdn liittämällä yhteen sen lehtisolmujen nimet esijärjestyksessä ( vsemmlt oikelle ).

simerkki. Luseen jäsennyspuu kieliopiss G expr : Luseen johto: T F T T T F T T F T F Johto S = γ 0 γ 1 γ n = γ vstvn jäsennyspuun muodostminen: (i) puun juuren nimeksi tulee S; jos n = 0, niin puuss ei ole muit solmuj; muuten (ii) jos ensimmäisessä johtoskeless on sovellettu produktiot S X 1 X 2... X k, niin juurelle tulee k jälkeläissolmu, joiden nimet vsemmlt oikelle ovt X 1, X 2,...,X k ; (iii) jos seurvss skeless on sovellettu produktiot X i Y 1 Y 2... Y l, niin juuren i:nnelle jälkeläissolmulle tulee l jälkeläistä, joiden nimet vsemmlt oikelle ovt Y 1, Y 2,...,Y l ; j niin edelleen. Konstruktiost huomtn, että jos τ on jotkin johto S γ vstv jäsennyspuu, niin τ:n tuotos on γ. Olkoon τ kieliopin G mukinen jäsennyspuu, jonk tuotos on päätemerkkijono x. Tällöin τ:st sdn vsen johto x:lle käymällä puun solmut läpi esijärjestyksessä ( ylhäältä ls, vsemmlt oikelle ) j lventmll vstn tulevt välikkeet järjestyksessä puun osoittmll tvll. Oike johto sdn käymällä puu läpi käänteisessä esijärjestyksessä ( ylhäältä ls, oikelt vsemmlle ). Muodostmll nnetust vsemmst johdost S x ensin jäsennyspuu edellä esitetyllä tvll, j sitten jäsennyspuust vsen johto, sdn tkisin lkuperäinen johto; vstv tulos pätee myös oikeille johdoille. simerkki. Luseen vsemmn johdon muodostminen jäsennyspuust. 1 2 T 1 T 2 F 2 F 1 2 1 2 T 2 F 1 1 T 1 F 2 2 T T T F T T F 1

Luse 3.3 Olkoon G = (V, Σ, P, S) yhteydetön kielioppi. Tällöin: (i) jokisell G:n lusejohdoksell γ on G:n mukinen jäsennyspuu τ, jonk tuotos on γ; (ii) jokist G:n mukist jäsennyspuut τ, jonk tuotos on päätemerkkijono x, vstvt yksikäsitteiset vsen j oike johto S x j S x. Seurus 3.4 Jokisell G:n luseell on vsen j oike johto. Siis: yhteydettömän kieliopin tuottmien luseiden jäsennyspuut, vsemmt j oiket johdot vstvt yksikäsitteisesti toisin. Jäsennysongelmn rtkisuun ktsotn usein kuuluvn pelkän päätösongelmn Onko x L(G)? rtkisemisen lisäksi jonkin näistä jäsennysesityksistä tuottminen. Kieliopin moniselitteisyys Luseell voi oll kieliopiss useit jäsennyksiä. simerkki. Trkstelln yksinkertisten ritmeettisten lusekkeiden kielioppi: G expr =,,, (). Luseell on tässä kieliopiss kksi jäsennystä: Yhteydetön kielioppi G on moniselitteinen, jos jollkin G:n luseell x on kksi erilist G:n mukist jäsennyspuut. Muuten kielioppi on yksiselitteinen. Moniselitteisyys on tietojenkäsittelysovelluksiss yleensä ei-toivottu ominisuus, kosk se merkitsee että nnetull luseell on kksi vihtoehtoist tulkint. Yhteydetön kieli, jonk tuottvt kieliopit ovt kikki moniselitteisiä, on luonnostn moniselitteinen. simerkiksi kielioppi G expr on moniselitteinen, kieliopit G expr j G mtch yksiselitteisiä. Kieli L expr = L(G expr) ei ole luonnostn moniselitteinen, kosk sillä on myös yksiselitteinen kielioppi G expr. Luonnostn moniselitteinen on esimerkiksi kieli (Todistus sivuutetn.) i b j c k i = j ti j = k. 3.4 Osittv jäsentäminen Yksi (yleisessä muodoss tehoton!) tp etsiä vsent johto (jäsennyspuut) nnetun kieliopin G mukiselle luseelle x on loitt G:n lähtösymbolist j generoid systemttisesti kikki mhdolliset vsemmt johdot (jäsennyspuut), smll sovitten muodostetun lusejohdoksen päätemerkkejä (puun lehtiä) x:n merkkeihin. i-yhteensopivuuden ilmetessä peruutetn viimeksi tehty produktiovlint j kokeilln järjestyksessä seurv vihtoehto. Tällist luseenjäsennystp snotn osittvksi, kosk siinä trksteltu luse yritetään joht kieliopin lähtösymbolist osittmll se vlittujen produktioiden mukisiin rkenneosiin j yrittämällä näin, trvittess toistuvsti edelleen osittmll, sovitt kieliopin tuottm rkennett yhteen luseen rkenteen knss.

sim. Trkstelln kielioppi G: T T T T (). Luseen osittv jäsennys G:n suhteen: T T [ristiriit; peruutetn] () T [ristiriit; peruutetn] T T [ristiriit; peruutetn] T T () [ristiriit; peruutetn] T [ristiriit; peruutetn] T () [ristiriit; peruutetn] T [OK!] m. osittv jäsennystekniikk sdn huomttvsti tehokkmmksi, jos kieliopill on sellinen ominisuus, että jäsennyksen jok viheess määrää tvoitteen olevn luseen seurv merkki yksikäsitteisesti sen, mikä lvennettvn olevn välikkeeseen liittyvä produktio on vlittv. Kielioppi, joll on tämä ominisuus, snotn LL(1)-tyyppiseksi. Muoktn G:stä välikkeen produktiot tekijöimällä ekvivlentti kielioppi G : T ε T (). simerkiksi luseen jäsentäminen G :n suhteen (kulloisenkin produktiovlinnn määräävä syötemerkki on tässä merkitty vstvn johtonuolen päälle): T T ε. LL(1)-tyyppiselle kieliopille on helppo kirjoitt jäsennysohjelm suorn rekursiivisin proseduurein. simerkiksi kieliopin G pohjlt voidn muodost seurv C-kielinen funktiokokoelm, jok syötejonon jäsennyksen yhteydessä tulost sen tuottvn vsemmn johdon produktiot järjestyksessä. #include <stdio.h> int next; void (void); void prime(void); void T(void); void (void) printf(" -> T \n"); T(); prime(); void prime(void) if (next == ) printf(" -> \n"); next = getchr(); (); else if (next == - ) printf(" -> -\n"); next = getchr(); (); else printf(" -> \n");

void T(void) if (next == ) printf("t -> \n"); next = getchr(); else if (next == ( ) printf("t -> ()\n"); next = getchr(); (); if (next!= ) ) RROR(") expected."); next = getchr(); else RROR("T cnnot strt with this."); void RROR(chr *msg) printf("%s\n",msg); exit(1); int min(void) next = getchr(); (); exit(0); simerkiksi syötejono -() käsitellessään ohjelm tulost seurvt rivit: T T - T T () T T T T Tulostus vst vsent johto: T T () (T ) ( ) ( ) ( T ) ( ) ( ) ( ).