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

Samankaltaiset tiedostot
Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

8. Kieliopit ja kielet

Muodolliset kieliopit

Tietojenkäsittelyteorian alkeet, osa 2


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

11.4. Context-free kielet 1 / 17

Säännöllisten kielten sulkeumaominaisuudet

Luonnolliset vs. muodolliset kielet

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

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

Luonnollisen päättelyn luotettavuus

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

8. Kieliopit ja kielet 1 / 22

DFA:n käyttäytyminen ja säännölliset kielet

Todistusteoriaa. Kun kielen syntaksi on tarkasti määritelty, voidaan myös määritellä täsmällisesti, mitä pätevällä päättelyllä tarkoitetaan.

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

Insinöörimatematiikka A

Yhteydettömät kieliopit [Sipser luku 2.1]

Toinen muotoilu. {A 1,A 2,...,A n,b } 0, Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun 1 / 13

Rajoittamattomat kieliopit (Unrestricted Grammars)

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

815338A Ohjelmointikielten periaatteet

Output. Input Automaton

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Rajoittamattomat kieliopit

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

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

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

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

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

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

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

811120P Diskreetit rakenteet

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

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

Pinoautomaatit. Pois kontekstittomuudesta

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Ohjelmointikielten syntaksista ja semantiikasta

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

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

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

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

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

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

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

Automaatit. Muodolliset kielet

T Tietojenkäsittelyteorian seminaari

Täydentäviä muistiinpanoja laskennan rajoista

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

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

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

FI3 Tiedon ja todellisuuden filosofia LOGIIKKA. 1.1 Logiikan ymmärtämiseksi on tärkeää osata erottaa muoto ja sisältö toisistaan:

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

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

Todistusmenetelmiä Miksi pitää todistaa?

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

Rekursiiviset tyypit

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Johdatus matemaattiseen päättelyyn

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

2. Yhteydettömät kielet

1. Logiikan ja joukko-opin alkeet

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Taulumenetelmä modaalilogiikalle K

LOGIIKKA johdantoa

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

ICS-C2000 Tietojenkäsittelyteoria

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )

Ensimmäinen induktioperiaate

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

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

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

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

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

Ensimmäinen induktioperiaate

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Logiikka 1/5 Sisältö ESITIEDOT:

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Yhteydettömän kieliopin jäsennysongelma

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

S BAB ABA A aas bba B bbs c

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

Insinöörimatematiikka A

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

MS-A0402 Diskreetin matematiikan perusteet

Säännöllisen kielen tunnistavat Turingin koneet

Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)

Transkriptio:

FORMAALI SYSTEEMI (in Nutshell): Formaali kieli: aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus esim. SSM:n tai EBNF:n avulla Semantiikka: sallittujen merkkijonojen tulkinta eli mitä ne oikeasti tarkoittavat kyseisessä tapauksessa. Päättelymekanismi: aksioomat: sallittujen merkkijonojen perusjoukko, kantatotuudet päättelysäännöt: miten aksioomista saa muodostaa uusia totuuksia välittöminä seurauksina Lauseet ja todistukset: todistus: aksioomista ja olemassaolevista sallituista merkkijonoista päättelysääntöjen avulla muodostettu äärellinen ketju lause: todistuksen seurauksena muodostunut uusi sallittu merkkijono Johto: joukosta premissejä johdettu uusi sallittu merkkijono

Formaalit kielet: Normaalien kielten analysointi kolmella eri tasolla: 1. leksikaalisella tasolla sanat liitetään kielelle määritellyn sanaston perustyyppeihin, esimerkiksi auto substantiivi mutta umpsutäh luultavasti kirjoitusvirhe 2. syntaktisella tasolla kuvataan sitä, kuinka sanoista voidaan muodostaa sallittuja lauseita 3. semanttisella tasolla muodostettuihin lauseisiin liitetään niiden todellinen merkitys ohjelmointikielten rakenne periaatteessa hyvin samankaltainen kuin normaaleissa kielissä, paitsi lausekkeiden semanttinen tulkinta tapahtuu aina ohjelmointikielen määräämässä kontekstissa; leksikaalisia elementtejä: tunnisteet, literaalit, erikoissanat (avainsanat), operaattorit, kommentit, erottimet, tyhjät merkit Aakkosto (alphabet): kielen alkeismerkit, esim. Σ = {a, b,..., z } yleisin merkintä isot kreikkalaiset kirjaimet Σ, Γ,... yleisin merkintä merkkien määrälle eli aakkoston koolle Σ = 25 myös merkkijonon pituus abc = 3 esimerkkejä: Reaaliluvut, esim. 210.542, muodostuvat aakkoston {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,.} symboleista. Binääriluvut, esim. 100101, muodostuvat aakkoston {0, 1} symboleista. Pelikortit, esim. 10, muodostuvat aakkoston {,,,, A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K} symboleista. Luentomonisteen eri lukujen ja kappaleiden numerointi, esim. 2.5.3, muodostuu aakkoston {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,.} symboleista. huomataan: kahdella eri formaalilla kielellä voi olla sama aakkosto tai toisen aakkosto voi olla toisen aakkoston osajoukko kielioppi (grammar): minkälaisia merkkijonoja aakkostosta voi muodostaa määrittää syntaksin eli ne säännöt, joiden mukaan aakkosista saa muodostaa kielen sisältämiä sallittuja merkkijonoja (well formed formula = wff) formaali kieli = { sallitut merkkijonot }

ESIMERKKI KIELIOPISTA: Kielen L aakkoston muodostavat symbolit {, }. Kielen syntaksin määrittää kielioppisääntö: Kielen L sallitut merkkijonot muodostuvat nollan tai äärellisen mittaisesta jonosta symboleja, joita seuraa yhdestä neljään symbolia tai yhden tai usemman symbolin jonosta, jota ei seuraa symboleja. Tällöin kielen L sallittuja merkkijonoja ovat esimerkiksi: Seuraavat jonot eivät ole sallittuja merkkijonoja : HUOM: Kieliopin (tulkinnan) yksiselitteisyys vrs. sen kuvaamisessa käytetty kieli?

STANDARDI SYNTAKTINEN METAKIELI SSM: kieliopin kuvaamiseen tarvitaan yksiselitteisempi, formaalimpi metakieli kieliopin kuvaaminen joukolla sääntöjä, jotka määrittävät ja nimeävät sallitut merkkijonot eli kielen sallitut rakenteet SSM-rakenteen syntaksi koostuu sille annettavasta nimestä, jota seuraa =-merkki, jonka jälkeen annetaan kokonaisuuden määrittelysääntö ja päätetään määritys ;-merkkiin. Kielen aakkostoon kuuluvat symbolit varustetaan -merkeillä. Kun määrittelysääntö voidaan muodostaa useammalla, toisilleen vaihtoehtoisella tavalla, erotetaan eri tapaukset toisistaan -merkin avulla. aakkoston luetteleminen: luku = 0 1 2 3 4 5 6 7 8 9 ; hexaluku = luku A B C D E F ; sallitun merkkijonon järjestyksen määrääminen: kaksinumeroinen luku = luku, luku;... ja näiden yhdistelmä (eli aakkostona = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,.}) etumerkitön desimaaliluku = etumerkitön kokonaisluku desimaaliosa etumerkitön kokonaisluku, desimaaliosa; desimaaliosa =., etumerkitön kokonaisluku; etumerkitön kokonaisluku = luku luku, etumerkitön kokonaisluku; luku = 0 1 2 3 4 5 6 7 8 9 ;

EBNF: lähtökohtana Backus-Naur -formalismi (BNF) ALGOL 68 -kielen kuvaamiseksi kuvauksen rakennuspalikoina terminaali(symboli)t ( nimi ), nonterminaali(symboli)t (< nimi >), alkusymboli ja joukko kielioppisääntöjä eli produktioita, jotka ovat muotoa nonterminaali ::= määrittely määrittelyn syntaksi ja sen tulkinta: Symboli xy [x] {x} x y Merkitys määrittelyt x ja y peräkkäin (ilman pilkkua, vrt. SSM) 0 tai 1 määrittelyn x esiintymää 0 tai useampi määrittelyn x esiintymää joko x tai y EBNF in EBNF < produktio > ::= < nonterminaali > ::= < jono >. < jono > ::= < alkio > < alkio > < jono > < alkio > ::= < terminaali > < nonterminaali > < kooste > < rakenne > < kooste > ::= ( < jono > ) < rakenne > ::= < valinta > < toisto > < vaihtoehto > < valinta > ::= [ < jono > ] < toisto > ::= { < jono > } < vaihtoehto > ::= < alkio > < alkio >

SEMANTIIKKA: kielen jokaisen sallitun merkkijonon merkityksen määrittäminen aakkoston symboleihin liitetään sovellusalueen konkreettinen arvo ( 0 ei ole 0 ennenkuin siitä on sovittu!) symboleista muodostettujen sallittujen merkkijonojen varsinainen merkitys tämäkin voitaisiin/pitäisi tehdä formaalisti, mutta... Tulkinta I 1 aikaisemmassa esimerkissä kuvatulle kielelle. Olkoot = 5 = 1 Symbolien asettaminen peräkkäin lukujen laskeminen yhteen = 1 + 1 + 1 = 3, = 5 + 5 + 5 + 1 +1 = 17. I 1 ( ) = 3 Tulkinnalla sallituille merkkijonoille arvoja joukosta {1, 2, 3,...} Tulkinta I 2. Olkoot I 2 ( ) = 10 I 2 ( ) = 2 symbolien asettaminen peräkkäin lukujen laskeminen yhteen I 2 (xy) = I 2 (x) + I 2 (y) I 2 ( ) = I 2 ( ) + I 2 ( ) = I 2 ( ) + I 2 ( ) + I 2 ( ) = 2 + 2 + 2 = 6, I 2 ( ) = 10 + 10 + 10 + 2 +2 = 34. Tulkinnalla sallituille merkkijonoille arvoja joukosta {2, 4, 6,...}

PÄÄTTELYMEKANISMI: Aksioomat: riippumattomat sallitut merkkijonot, jotka edustavat erillisiä, sovellusalueen alkuperäisiä totuuksia Päättelysäännöt: sääntöjä, joiden avulla aksioomista voidaan muodostaa niiden välittöminä seurauksina (immediate consequences) uusia sallittuja merkkijonoja ESIMERKKI: Aakkosto = {,, } Kielioppisäännöt: lauseke = tähtijono,, tähtijono,, tähtijono; tähtijono = tähtijono, ; Päättelymekanismi: Aksiooma Sääntö Jos a b c on sallittu merkkijono, missä a, b, c ovat tyyppiä tähtijono, niin a b c on tämän välitön seuraus. Lauseke on sallitun merkkijonon välitön seuraus. Tämä nähdään, kun identifioidaan päättelysäännön sisältämät lausekkeet a {}}{ b {}}{ c {}}{, ja sovelletaan sääntöä ilman aivoja (tämän tietokone osaisi tehdä paremmin kuin me) a b {}}{ c {}}{{}} {,

ESIMERKKI (cont.): Edellisen formaalin systeemin (yksi) tulkinta I: Olkoon = 1, = 2, = 3,... eli formaalimmin, induktiivisesti esitettynä I( ) = 1 ( = 1), I(a ) = I(a) + I( ) (n + 1 = (n) + 1 = ((n-1) + 1) + 1 =...), missä a on tyyppiä tähtijono. Tarkoittakoon normaalia yhteenlaskumerkkiä + Tarkoittakoon normaalia yhtäsuuruusmerkkiä = Tässä semantiikassa formaalin kielen tähtijonot ovat kokonaislukuja ja kielen lausekkeet tulkitaan sallittujen merkkijonojen yhteenlaskuna a + b = c, joka siis normaalin aritmetiikan suhteen voi olla joko tosi tai epätosi sen suhteen päteekö saatu laskukaava. Kielen aksiooma tarkoittaa luonnollisesti perustapausta 1 + 1 = 2, josta päättelysäännön avulla voidaan johtaa uusia, muotoa a + (b + 1) = (c + 1) olevia välittömiä seurauksia. Lopuksi on syytä muistuttaa siitä, että tässä esitetty tulkinta kuulosti järkevältä kun erityisesti symboliksi valittiin + -merkki. Formaalina systeeminä ihan yhtä hyvä olisi saatu aikaan myös valitsemalla edustamaan - -merkkiä, mutta systeemin järkevä tulkinta olisi taatusti ollut paljon hankalampaa.

Todistukset ja lauseet: Formaaliin systeemiin F liittyvä todistus (proof) tarkoittaa sallittujen merkkijonojen äärellistä yhdistelmää, joista jokainen sallittu merkkijono on joko aksiooma tai annettujen päättelysääntöjen avulla muodostettu aksiooman tai sallitun merkkijonon välitön seuraus. Formaalin systeemin F sallittu merkkijono, joka voidaan todistaa tällä tavalla, on F:n lause (theorem) erityisesti jokainen aksiooma sellaisenaan muodostaa F:n lauseen Esim. aikaisemmalle esimerkille pätee seuraava lause: Lause 1. Todistus. 1 aksiooma 2 päättelysääntö sovellettuna 1:een 3 päättelysääntö sovellettuna 2:een 4 päättelysääntö sovellettuna 3:een huomataan, että todistuksen riveiltä 2 ja 3 saadaan uusia lauseita yhteenlaskutulkinnan mukaan lause vaikuttaa järkevältä (1 + 4 = 5) Formaalin systeemin F tulkinta I, jossa jokaiseen sallittuun merkkijonoon voidaan liittää totuusarvo T tai E, on johdonmukainen, jos F:n jokainen lause on tulkinnan suhteen T täydellinen, jos tulkinnan suhteen jokainen T voidaan todistaa F:n lauseeksi esimerkiksi lauseke on esimerkkikielen sallittu merkkijono, mutta sitä ei voida todistaa lauseeksi (eli esimerkkisysteemi on epätäydellinen) täydentäminen, mutta johdonmukaisuus säilyttäen...

Johdot: todistuksien avulla formaaliin systeemiin voidaan muodostaa uusia totuuksia eli sallittuja merkkijonoja johtojen (derivations) avulla tehdään sama mutta lähtien liikkeelle muista kuin aksioomista premissit (premises), joita merkitään P:llä, kuvaavat systeemin kyseisellä hetkellä jo sisältämiä sallittuja merkkijonoja sallitun merkkijonon W johtamisella tarkoitetaan W:hen päättyvää äärellistä ketjua sallittuja merkkijonoja, joista jokaisen sisältämä lauseke on joko F:n aksiooma F:n premissi ketjussa aikaisemmin esiintyneiden sallittujen merkkijonojen välitön seuraus, joka voidaan muodostaa annettujen päättelysääntöjen avulla ketju muodostaa tyyppiä jos..., niin... olevan rakenteen jos W voidaan johtaa premisseistä P, merkitään tätä P W, missä metasymboli tarkoittaa päättelysääntöjen mukaista loogista seurausta (syntactic turnstile) P W tarkoittaa sitä, että sekä P W että P W pätevät; W pätee tyhjälle joukolle premissejä (eli jo todistettu lause tai aksiooma) siirrettäessä johdoissa käytetyt premissit jonkin uuden formaalin systeemin aksioomiksi siirtyvät vastaavasta kaikki johdot kyseisen systeemin lauseiksi Esimerkki: Johto 1. Aikaisemman esimerkin formaalille systeemille pätee seuraava tulos: Johtaminen. 1 premissi 2 1 & sääntö 3 2 & sääntö