8.5. Jäsennyspuu 1 / 23



Samankaltaiset tiedostot
9. Matemaattisista koneista.

11.4. Context-free kielet 1 / 17

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

8. Kieliopit ja kielet

Automaatit. Muodolliset kielet

Yhteydettömän kieliopin jäsennysongelma

Säännöllisten kielten sulkeumaominaisuudet

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

811120P Diskreetit rakenteet

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

6.4. Järjestyssuhteet

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Yhteydettömät kieliopit [Sipser luku 2.1]

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Tietotekniikan valintakoe

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

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

8. Kieliopit ja kielet 1 / 22

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Datatähti 2019 loppu

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

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

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

811120P Diskreetit rakenteet

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

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

1. Universaaleja laskennan malleja

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

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

5. Laskutoimitukset eri lukujärjestelmissä

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

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

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

4.3. Matemaattinen induktio

Rajoittamattomat kieliopit

MS-A0402 Diskreetin matematiikan perusteet

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

5.3 Ratkeavia ongelmia

Jäännösluokat. Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan

Luonnolliset vs. muodolliset kielet

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

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

2. Yhteydettömät kielet

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Johdatus matematiikkaan

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Datatähti alkukilpailu

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

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 6 (8 sivua) OT. 1. a) Määritä seuraavat summat:

ICS-C2000 Tietojenkäsittelyteoria

S BAB ABA A aas bba B bbs c

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Python-ohjelmointi Harjoitus 2

Algoritmit 1. Luento 8 Ke Timo Männikkö

Turingin koneen laajennuksia

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

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

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Todistusmenetelmiä Miksi pitää todistaa?

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

Kappale 20: Kantaluvut

811120P Diskreetit rakenteet

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Algoritmit 2. Luento 6 To Timo Männikkö

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

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

Matematiikka B2 - Avoin yliopisto

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

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

1 Lukujen jaollisuudesta

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Tietojenkäsittelyteorian alkeet, osa 2

Johdatus graafiteoriaan

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

a b 1 c b n c n

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

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

Matematiikan tukikurssi

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Attribuuttikieliopit

7. Laskutoimitukset eri lukujärjestelmissä 1 / 31

Transkriptio:

8.5. Jäsennyspuu 1 / 23 Kääntäminen ja BNF Ohjelmointikielten kuten Java, C++, Pascal, Fortran jne. syntaksi määritellään tyypillisesti BNF-muotoisilla säännöillä. Sääntöjä on usein satoja. Ohjelman kääntämisessä testataan onko ohjelma muodollisesti oikein eli toteuttaako se ohjelmointikielen syntaksin. Siis voidaanko ohjelmakoodi johtaa ohjelmointikielen syntaksin määrittelevistä BNF-säännöistä. 2 / 23 Kokonaisluvun johto Esimerkki. Kokonaisluvun määrittelevät BNF-muotoiset säännöt Integer ::= SignedInteger U nsignedinteger SignedInteger ::= + U nsignedinteger U nsignedinteger U nsignedinteger ::= Digit Digit U nsignedinteger Digit ::= 0 1 2 9 3 / 23 1

Johtamispuu Context-free kielioping = (V,V T,S,P) johtoons w voidaan aina liittää johtoa kuvaava jäsennyspuu (=johtamispuu, parse tree) seuraavasti: 1) Puun pisteet merkitäänv:n symboleilla taiλ:lla. 2)Jos johdossa ensimmäinen käytetty sääntö ons α 1 α 2 α m,m 1,α i V, aina kuni = 1,2,...,m, niin jatketaan puutam:llä symbolilla, jotka merkitään vasemmalta oikealleα 1,α 2,...,α m. Jos ensimmäinen sääntö ons λ, niin jatketaan puuta yhdellä pisteellä, jota merkitäänλ:lla. 3) Josα i on apukirjain, johdon toinen sääntö kohdistuu siihen ja onα i β 1 β 2 β k, niin jatketaan puutaα i :tä vastaavasta pisteestäk:lla pisteellä, jotka merkitään vasemmalta oikealle symboleinβ 1,β 2,...,β k. Jos toinen sääntö on muotoa α i λ, niin jatketaan puuta pisteellä, jota merkitäänλ:lla. 4 / 23 Johtamispuu jatkoa 4) Tällä tavoin jatketaan puun rakentamista. Sitä voidaan jatkaa mistä tahansa apukirjaimesta, ei pelkästään viimeksi saadusta. 5) Lopulta jokainen puun piste johon sääntöä ei ole sovellettu on merkitty joko aakkostonv T symbolilla taiλ:lla. Näistä pisteistä johtoa ei enää voi jatkaa (kysessä ovat puun lehdet). Silloin johto päättyy ja johdon tuottama sana voidaan lukea puun lehdistä vasemmalta oikealle. 5 / 23 2

Jäsentämispuun käyttö Jäsentämispuuta käytetään sanan oikeellisuuden (onko annettu sana kielen sana) tarkistamisessa. Puhutuille kielille ei tarkkoja sääntöjä kyetä luomaan, joten myöskään oikeellisuuden testaaminen ei ole mahdollista. Ohjelmointikielet määritellään tarkasti, joten jäsennyspuu on käyttökelpoinen väline ohjelman oikeellisuuden tutkimiseen. 6 / 23 Esimerkki 8.9. Merkitään seuraavassa kieliopin sääntöjoukkoaa w 1,A w 2,...A w n lyhyesti A w 1 w 2 w n. Esimerkki 8.9. Määrää kieliopin G = ({A,B,0,1},{0,1},S,P), missä P = {S A B,A 0 0A 1AA AA1 A1A,B 1 1B 0BB BB0 B0B}, johto ja johtoa vastaava jäsennyspuu sanalle0111. 7 / 23 3

9. Matemaattisista koneista. 8 / 23 Yleistä Monia tietojenkäsittelytehtäviä, digitaalisia komponetteja, ohjelmia jne. voidaan mallintaa äärellistilaisella matemaattisella koneella. Matemaattinen kone on myös tietojen käsittelijän malli. Se sisältää sekä syötön, äärellisen muistin, kontrollin ja mahdollisesti tulostuksen. Matemaattisia koneita on erityyppisiä. Yhteiset osat: Äärellinen tilojen joukko, alkutila, syöttöaakkosto, siirtofunktio, joka kuvaa miten kone siirtyy tilasta toiseen kohdatessaan syötön. 9 / 23 Tarkasteltavat konetyypit Jonokone: Matemaattinen kone joka sisältää myös tulostuksen. Äärellinen automaatti: Matemaattinen kone, jonka tulostus rajoittuu syötön hyväksymiseen. Lopuksi tarkastellaan matemaattisia koneita, joiden muisti on ääretön. 10 / 23 4

9.1. Jonokone Jonokone: Malli tietojenkäsittelijästä, joka pystyy muuntamaan syöttöä äärellisen muistinsa ja "ohjelmansa"avulla. 11 / 23 Määritelmä tarkasti. Jonokone (finite-state machine)on järjestetty kuusikko M = (S,I,O,f S,f O,s 0 ), missä S =M:n tilojen (äärellinen) joukko, I = syöttösymbolien (äärellinen) joukko, O = tulostussymbolien (äärellinen) joukko, jaf S sekäf O kuvauksia f S : S I S ja f O : S I O, f S = (siirtofunktio) seuraavan tilan kuvaus (ja tämä riippuu edellisestä tilasta ja syötöstä (=input) f O = tulostusfunktio (outputfunktio) ja s 0 on alkutila. 12 / 23 5

Toiminnan kuvaus Jokaiseen tila, syöttösymboli pariins,a liitetään tilaf S (s,a) (=seuraava tila) ja tulostusf O (s,a). Jonokone aloittaa alkutilassas 0 lukemaan syöttösanaa vasemmalta oikealle. Jokaisen syöttösymbolin lukemisen yhteydessä kone siirtyy senhetkisen tilan ja syöttösymbolin määräämään tilaan ja tulostaa jotain. Esimerkki 9.1. Olkoon jonokone M = ({s 0,s 1 },{a,b},{0,1},f S,f o,s 0 ), missä f S (s 0,a) = s o,f S (s 0,b) = f S (s 1,a) = f S (s 1,b) = s 1 ja Silloin syöttöönaabba liittyy tulostus... f O (s 0,a) = f O (s 1,b) = 0,f O (s 0,b) = f O (s 1,a) = 1. 13 / 23 Jonokoneen taulukkoesitys Taulukkomuodossa esitetään tila ja tulostusfunktiot kahtena taulukkona. Taulukko (todellisuudessa kaksi taulukkoa) määrittelevät funktiotf S jaf O. 14 / 23 6

Jonokoneen graafiesitys Jonokoneeseen liittyvä suunnattu graafi (tarkasti painotettu suunnattu multigraafi) rakennetaan seuraavasti: Tilat merkitään solmuina. Nuoli viivojen solmujens i jas j välillä painonax,y tarkoittaa, että Syöttönä siisxja tulostuksenay f S (s i,x) = s j jaf O (s i,x) = y. 15 / 23 Esimerkki 9.2. Esimerkki 9.2 Määrää Esimerkin 9.1 jonokoneen esitys tilataulukkona ja suunnattuna graafina. M = ({s 0,s 1 },{a,b},{0,1},f S,f o,s 0 ), missä f S (s 0,a) = s o,f S (s 0,b) = f S (s 1,a) = f S (s 1,b) = s 1 ja f O (s 0,a) = f O (s 1,b) = 0,f O (s 0,b) = f O (s 1,a) = 1. 16 / 23 7

Huomioita jonokoneesta Huom. 1. Jonokoneen tilojen lukumäärä on äärellinen, joten ajanhetkeä ei voi käyttää tilana. 2. Syöttömerkit ohjaavat konetta. Tyhjä sanaλei voi olla syöttösana, koska silloin jonokone tekisi jotain ilman ohjetta. 3. Toiminta on synkronoitu erillisiin ajanhetkiin 0, 1, 2,... (vrt. kellopulssi). 4. Kone toimii deterministisesti eli jokaiseen tila syöttöpariin liitetään täsmälleen yksi seuraava tila ja tulostussymboli (f S jaf O ovat funktioita). 17 / 23 Esimerkki 9.3. Esimerkki 9.3. Kun kokonaisluku jaetaan kolmella, niin jaon mennessä tasan, jakojäännös on0, ja kun jako ei mene tasan voi jakojäännös olla1tai2. Laadi jonokone, joka syötetystä symbolejaajabsisältävästä sanasta tulostaa aina siihen mennessä syötetyna bjonona:n lukumäärän3:lla jakamisen antaman jakojäännöksen. Kerro koneen syötöt ja tulostukset, sekä selosta,mistä koneen tilat muodostuvat. 18 / 23 8

Esimerkki 9.4. Esimerkki 9.4. Määrää kahden binäärisen numeron yhteenlaskua suorittavan jonokoneen tilagraafi. Huomaa, että luvut voivat olla keskellä kahta pitkää binäärilukua. Mitkä ovat koneet syötöt, tulostukset ja koneen tilat. Kuinka lukujen esikäsittelyssä otetaan huomioon binäärilukujen mahdollinen erilainen pituus. 19 / 23 Esimerkki 9.5. Esimerkki 9.5. Televisioon oli mahdollista virittää täsmälleen4kanavaa ja virityksen jälkeen televisiota säädettiin pelkästään kaukosäätimellä. Virityksen jälkeen kanavapaikalla1näkyi ohjelma1, kanavapaikalla2ohjelma2ja kanavapaikalla3ohjelma3. Kanavapaikalla4näkyi vain "lumisadetta". Kaukosäätimessä on kolme ohjelmapainiketta V (virtapainike), E (eteenpäinpainike) ja T (taaksepäinpainike). Virta kytkettiin painamalla painiketta V, jolloin televisio alkoi näyttää ohjelmakanavan 2 ohjelmaa. Virran ollessa kytkettynä näppäimen V painaminen kytki virran pois ja kuva sammui. Virran ollessa kytkettynä ja television näyttäessä kanavapaikani ohjelmaa, E:n painaminen ohjasi television näyttämään kanavapaikani+1ohjelmaa (i = 1,2,3) ja kun TV näytti kanavapaikan4ohjelmaa, E:n painaminen ohjasi TV:n näyttämään kanavapaikan1ohjelmaa. Vastaavasti virran ollessa kytkettynä ja television näyttäessä kanavapaikanj ohjelmaa, T:n painaminen ohjasi television näyttämään kanavapaikan j 1 ohjelmaa (j = 2, 3, 4) ja kun TV näytti kanavapaikan 1 ohjelmaa, T:n painaminen ohjasi TV:n näyttämään kanavapaikan4ohjelmaa. Kun virta ei ollut kytkettynä E:n ja T:n painamisella ei ollut vaikutusta TV:n näyttämään ohjelmaan. 20 / 23 9

Jatkoa Laadi jonokone joka kuvaa ylläselostetun kaukosäätimen toimintaa. Selitä mistä muodostuvat jonokoneen syötöt, tulostukset ja tilat. 21 / 23 Esimerkki 9.6. Esimerkki 9.6. Tutkitaan amerikkalaista virvoitusjuoma-automaattia (tässä automaatti ei tarkoita matemaattista konetta nimeltä automaatti), joka30:llä centillä (=c) antaa omenajuoman (OJ) tai appelsiinijuoman (AJ). Automaatti hyväksyy 5c:n, 10c:n ja 25c:n kolikot ja antaa välittömästi tarvittavat vaihtorahat ja syötetyt ylimääräiset rahat. Juomien tilaamista varten koneessa on painonapit O ja A omena- ja appelsiinijuomille. Määrää virvoitusjuoma-automaattiin liittyvän jonokoneen tilaverkko ja tilataulu. Selitä jonokoneen tilat, syötöt ja tulostukset. 22 / 23 10

Esimerkki 9.7. Esimerkki 9.7. Sanoissa käytettäviä merkkejä ovat0,1,2,3; lisäksi on käytössä sanan loppumisen osoittava merkkix. Salakirjoitetaan sanoja seuraavasti: Lopetusmerkki säilyy ennallaan. Kun kirjoitettavana on0, niin salaaja kirjoittaa sen sijasta3:sen, kun kirjoitettavana on1, niin salaaja kirjoittaa sen sijasta2:sen, kun kirjoitettavana on2, niin salaaja kirjoittaa sen sijasta1:sen ja kun kun kirjoitettavana on3, niin salaaja kirjoittaa sen sijasta0:n Salakirjoitettavissa sanoissa ei koskaan ole kolmea samaa merkkiä peräkkäin. Laadi jonokone, joka avaa edelläkuvatulla tavalla salakirjoitetut sanat takaisin alkuperäisiksi sanoiksi. Lisäksi, jos avaaja löytää kolme samaa merkkiä peräkkäin, se tulostaa kolme sanan päättymismerkkiä ja siirtyy aloitustilaan. Kone on suunniteltava siten, että se kykenee avaamaan useita peräkkäisiä sanoja. Piirrä jonokoneen tilaverkko ja selitä sen tilat, syötöt ja tulostukset. 23 / 23 11