8. Kieliopit ja kielet

Samankaltaiset tiedostot
8. Kieliopit ja kielet 1 / 22

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

Säännöllisten kielten sulkeumaominaisuudet

Muodolliset kieliopit

Luonnolliset vs. muodolliset kielet

11.4. Context-free kielet 1 / 17

Automaatit. Muodolliset kielet

811120P Diskreetit rakenteet

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

MS-A0402 Diskreetin matematiikan perusteet

Output. Input Automaton

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

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

9. Matemaattisista koneista.

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

ICS-C2000 Tietojenkäsittelyteoria

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

1. Kuinka monella tavalla joukon kaikki alkiot voidaan järjestää jonoksi? Tähän antaa vastauksen: tuloperiaate ja permutaatio

Äärettömät sanat. Aleksi Saarela. Matematiikan ja tilastotieteen laitos ja FUNDIM-keskus, Turun yliopisto. A. Saarela (TY) Äärettömät sanat 1 / 28

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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 }?

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

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

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

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

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

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

Vastauksia. Topologia Syksy 2010 Harjoitus 1

Tietojenkäsittelyteorian alkeet, osa 2

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

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

Rajoittamattomat kieliopit

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Kertausta 1. kurssikokeeseen

Säännöllisen kielen tunnistavat Turingin koneet

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

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

1 Lineaariavaruus eli Vektoriavaruus


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

Johdatus matemaattiseen päättelyyn

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

Johdatus matematiikkaan

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

Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

Chomskyn hierarkia ja yhteysherkät kieliopit

802320A LINEAARIALGEBRA OSA I

Laskennan teoria

5.3 Ratkeavia ongelmia

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Lineaarinen yhtälöryhmä

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

LOGIIKKA johdantoa

8.5. Jäsennyspuu 1 / 23

Lineaarialgebra ja matriisilaskenta I

Ratkeavuus ja efektiivinen numeroituvuus

MS-A0401 Diskreetin matematiikan perusteet

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

2. Yhteydettömät kielet

Lineaarialgebra ja matriisilaskenta I

Algoritmit 2. Luento 6 To Timo Männikkö

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

Algoritmit 2. Demot Timo Männikkö

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

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

Joukot. Georg Cantor ( )

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

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

Johdatus matematiikkaan

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

Tehtävä 2: Säännölliset lausekkeet

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

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

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

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Konnektiivit. On myös huomattava, että vain joillakin luonnollisen kielen konnektiiveilla on vastineensa lauselogiikassa.

1. Esitä rekursiivinen määritelmä lukujonolle

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

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

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

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

Pinoautomaatit. Pois kontekstittomuudesta

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Laskennan teoria

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

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

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Kaikki mitä olet aina halunnut tietää pumppauslemmoista, mutta mitä et ole kehdannut kysyä

Transkriptio:

8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti oikein muodostettu. Subjekti = "mies, predikaatti="räpyttää"ja objekti "siipiään". Lause on siis muodollisesti eli syntaktisesti oikein muodostettu, vaikka lauseen sisältö eli semantiikka olisi pielessä. "Mies räpytys siivet" ei ole kieliopillisesti oikein muodostettu lause, koska se ei noudata Suomen kielen kielioppia. Formaali kieli Luonnollisen kielen eli puhutun kielen syntaksi on aina äärimmäisen monimutkainen. Itse asiassa ei ole mahdollista kuvata kaikkia puhutun kielen kielioppisääntöjä. Kielen syntaksin tutkimus on johtanut käsitteeseen Formaali kieli: Kieltä, jossa kielen kielioppi on kuvattu tarkasti hyvin määritellyillä säännöillä. Lingvistiikan lisäksi formaalilla kielillä on sovelluksia ohjelmointikielten tutkimuksessa ja tietoliikenteessä Kääntäjät, ohjelmointikielten syntaksi, bittijonojen käsittely jne.

8.1. Määritelmiä Kieli on kokoelma sanoja ja sanojen yhdistämistapoja, joita käyttää tai ymmärtää jokin yhteisö. Aakkosto on äärellinen, ei-tyhjä joukko merkkejä (eli symboleja, kirjaimia) Tavallisia aakkostoja ovat suomen kielen kirjaimet (mukaanlukien sanavälit ja välimerkit) sekä bitit 0 ja 1. Sana on äärellinen jono kirjaimia. Tyhjä sana λ on sana, jossa ei ole yhtään kirjainta. Sanan w pituus w on w:n sisältämien kirjaimien lukumäärä. Esimerkiksi aabbc = 5 ja 1 + 2 = 3 = 5. Tyhjälle sanalle on λ = 0. Sanojen katenaatio Kaksi sanaa w 1 ja w 2 ovat samat (merkitään w 1 = w 2 ), jos niissä molemmissa esiintyvät samat kirjaimet samassa järjestyksessä. Esimerkiksi abba abab, mutta aabλ = aab. Sanojen perusoperaatio on katenaatio eli sanojen kirjoittaminen peräkkäin. Sanojen w 1 ja w 2 katenaatiota (tässä järjestyksessä) merkitään w 1 w 2 :lla. Esimerkiksi sanojen aaba ja ccad katenaation on sana aabaccad. Yleensä sana w 1 w 2 w 2 w 1. Lisäksi wλ = w kaikilla sanoilla w.

Sanojen potenssi Sanan w n:s (katenaatio) potenssi on sana w n = ww w }{{}. n kpl Erikseen on määritelty, että w 1 = w ja w 0 = λ. Lisäksi aina λ n = λ. Sanan peilikuva Sanan w peilikuva w R on sana, joka saadaan w:stä ottamalla kirjaimet oikealta vasemmalle. Jos w = a 1 a 2 a n, niin w R = a n a n 1 a 2 a 1. Erityisesti λ R = λ. Selvästi on (w 1 w 2 ) R = w R 2 w R 1.

Osasanat Sana u on sanan w alkuosa, jos w = uv jollakin sanalla v. Sana u on sanan w loppuosa, jos w = vu jollakin sanalla v. Sana u on sanan w osasana, jos w = v 1 uv 2 joillakin sanoilla v 1, v 2. Sanojen lukumäärä Huom. Aakkoston sanoja on numeroituvasti ääretön määrä. Toisin sanoen aakkoston sanat voidaan kirjoittaa päättymättömäksi listaksi.

Määritelmä Formaali kieli on joukko jonkin aakkoston sanoja. Kieli on äärellinen, jos se sisältää äärellisen määrän sanoja. Tyhjä kieli on kieli, joka ei sisällä yhtään sanaa. Kieli {λ} on kieli, joka sisältää vain tyhjän sanan. Yhden sanan muodostama kieli {w} ja sana w yleensä samaistetaan ja merkitään myös kieltä w:llä. Kielille käytetään joukko-opin merkintöjä:,,, \. Sanan w kuuluminen kieleen merkitään w L. Vastaavasti merkintä w / L tarkoittaa, että w ei ole kielen L sana. Aakkoston V kaikkien sanojen muodostamaa kieltä merkitään V :llä. Myös λ V. Kieli V + = V \ {λ} eli kaikkien aakkoston V ei tyhjien sanojen muodostama kieli.

Kielten ylinumeroituvuus Kieliä on selvästi ääretön määrä. Lause 8.1.Aakkoston kieliä on ylinumeroituvasti ääretön määrä. Toisin sanoen aakkoston kieliä ei voida kirjoittaa listaksi, Tod. Vastaoletus:Kaikki aakkoston V kielet voidaan kirjoittaa listaksi L 1, L 2,... L i, L i+1,.... Kirjoitetaan aakkoston V sanat listaksi w 1, w 2,.... Määritellään kieli L seuraavasti: w i L täsmälleen silloin kun w i / L i, kun i = 1, 2,... Vastaoletuksen perusteella L = L n jollakin n. Kielen L määritelmän perusteella: Jos w n L n, niin w / L ja jos w n / L n, niin w L. Sana w n esiintyy vain toisessa kielistä L ja L n. Siis L L n, mikä on ristiriita. Kielten operaatioita Kielten L 1 ja L 2 katenaatio (tässä järjestyksessä) on kieli L 1 L 2 = {w 1 w 2 w 1 L 1 ja w 2 L 2 }. Kielen L n:s (katenaatio) potenssi on kieli L n = {w 1 w 2 w n w 1, w 2,..., w n L}. Erityisesti L 1 = L, L 0 = {λ}. Myös 0 = λ.

Kielen katenaatiosulkeuma Kielen L katenaatiosulkeuma on kieli L = n=0 L n. eli L on kieli joka muodostuu sanoista jotka saadaan kielen L sanoista katenoimalla. Myös λ L. Vastaavasti kieli L + = n=1 L n, jossa sana λ on mukana vain jos λ L. Voidaan osoittaa, että L + = LL = L L. Säännölliset kielet Säännölliset kielet aakkostossa V : 1., {λ} ja {a}, a V ovat säännöllisiä kieliä. 2. Jos L ja L ovat säännöllisiä kieliä, niin myös L L, LL ja L ovat säännöllisiä kieliä. Esimerkki Kieli {ab n n =, 0, 1,...} on säännöllinen, sillä {ab n n =, 0, 1,..., } = {a}{λ, b, b 2, b 3,...} = {a}{b}.

Säännölliset ilmaisut Säännöllinen kieli kuvataan usein säännöllisen ilmaisun avulla. Säännölliset ilmaisut aakkostossa V: 1., {λ} ja a, a V ovat säännöllisiä ilmaisuja 2. Jos R ja S ovat säännöllisiä ilmaisuja, niin myös (R), R + S, R S ja R ovat säännöllisiä ilmaisuja. Esimerkki. Aakkoston {0, 1} säännöllisiä ilmaisuja: λ, 0, 1, λ + 1, 0 + (1 0)0 1 Operaattoreiden suoritusjärjestys Sulkujen vähentämiseksi on sovittu säännöllisen ilmaisun operaatioille suoritusjärjestys: ensin, senjälkeen, ja viimeiseksi +. Esimerkiksi säännöllinen ilmaisu a + b a on sama kuin (a + (b (a ))). Jos sekaannusta ei synny, jätetään merkitsemättä. Esimerkiksi edellisen säännöllinen ilmaisu voidaan esittää muodossa a + ba.

Jokainen säännöllinen ilmaisu R määrää säännöllisen kielen L(R) seuraavasti: L( ) =, L(λ) = {λ}, L(a) = {a}, L(R + S) = L(R) L(S), L(RS) = L(R)L(S) ja L(R ) = (L(R)). Esimerkiksi L(a + bc ) = L(a) (L(b)L(c )) = {a} (L(b)L(c) ) = {a} ({b}{λ, c, c 2,...}) = {a, b, bc 2, bc 3, bc 4...}. Jokainen säännöllisen ilmaisun määräämä kieli on säännöllinen. Jokaisen säännöllisen kielen määrää säännöllinen ilmaisu. Kaksi säännöllistä ilmaisua R ja S ovat samat, jos L(R) = L(S). Esimerkki. Määrää aakkoston {0, 1} säännöllinen ilmaisu, jonka määräämä kieli sisältää täsmälleen kaikki parillisen pituiset bittijonot. Ratk....