8. Kieliopit ja kielet 1 / 22



Samankaltaiset tiedostot
8. Kieliopit ja kielet

Muodolliset kieliopit

Luonnolliset vs. muodolliset kielet

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

11.4. Context-free kielet 1 / 17

Säännöllisten kielten sulkeumaominaisuudet

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Automaatit. Muodolliset kielet

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

Yhteydettömät kieliopit [Sipser luku 2.1]

ICS-C2000 Tietojenkäsittelyteoria

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

Rajoittamattomat kieliopit

Output. Input Automaton

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

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

MS-A0402 Diskreetin matematiikan perusteet

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

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

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

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

LOGIIKKA johdantoa

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

FORMAALIT KIELET. Keijo Ruohonen

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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


Rajoittamattomat kieliopit (Unrestricted Grammars)

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

5.3 Ratkeavia ongelmia

Tietojenkäsittelyteorian alkeet, osa 2

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

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

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

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

Ratkeavuus ja efektiivinen numeroituvuus

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Algoritmit 2. Demot Timo Männikkö

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

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

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

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

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

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

1 Logiikkaa. 1.1 Logiikan symbolit

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

Lukion matematiikkakilpailun alkukilpailu 2015

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

Laskennan teoria

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

Luku 3. Listankäsittelyä. 3.1 Listat

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

Täydentäviä muistiinpanoja laskennan rajoista

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

2. Yhteydettömät kielet

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Säännöllisen kielen tunnistavat Turingin koneet

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

} {{ } kertaa jotain

Lineaarialgebra ja matriisilaskenta I

Pinoautomaatit. Pois kontekstittomuudesta

LAUSEKKEET JA NIIDEN MUUNTAMINEN

Diskreetin Matematiikan Paja Ratkaisuhahmotelmia viikko 1. ( ) Jeremias Berg

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

MS-A0401 Diskreetin matematiikan perusteet

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Vastauksia. Topologia Syksy 2010 Harjoitus 1

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

LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

Ilpo Halonen Päätelmistä ja niiden pätevyydestä. Luonnehdintoja logiikasta 1. Johdatus logiikkaan. Luonnehdintoja logiikasta 2

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

Kieli merkitys ja logiikka. 4: Luovuus, assosiationismi. Luovuus ja assosiationismi. Kielen luovuus. Descartes ja dualismi

Kertausta 1. kurssikokeeseen

Pikapaketti logiikkaan

5.5 Jäsenninkombinaattoreista

Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?

Yhtäpitävyys. Aikaisemmin osoitettiin, että n on parillinen (oletus) n 2 on parillinen (väite).

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

Johdatus matematiikkaan

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

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

Algoritmit 2. Luento 6 To Timo Männikkö

Kieli merkitys ja logiikka. Luento 6: Merkitys ja kieli

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

Matematiikan tukikurssi

Transkriptio:

8. Kieliopit ja kielet 1 / 22 Luonnollinen kieli 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. 2 / 22 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. Seuraavassa määritellään formaalin kielen peruskäsitteet ja operaatiot. 3 / 22 1

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ä bitit0ja1. 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. 4 / 22 Sanojen katenaatio Kaksi sanaaw 1 jaw 2 ovat samat (merkitäänw 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. Sanojenw 1 jaw 2 katenaatiota (tässä järjestyksessä) merkitäänw 1 w 2 :lla. Esimerkiksi sanojenaaba jaccad katenaation on sanaaabaccad. Yleensä sanaw 1 w 2 w 2 w 1. Lisäksiwλ = w kaikilla sanoillaw. 5 / 22 2

Sanojen potenssi Sananw n:s (katenaatio) potenssi on sana w n = ww w } {{ }. n kpl Erikseen on määritelty, ettäw 1 = w jaw 0 = λ. Lisäksi ainaλ n = λ. 6 / 22 Sanan peilikuva Sananw peilikuva w R on sana, joka saadaanw:stä ottamalla kirjaimet oikealta vasemmalle. Josw = a 1 a 2 a n, niinw R = a n a n 1 a 2 a 1. Erityisestiλ R = λ. Selvästi on(w 1 w 2 ) R = w R 2 wr 1. 7 / 22 3

Osasanat Sanauon sananw alkuosa, josw = uv jollakin sanallav. Sanauon sananw loppuosa, josw = vu jollakin sanallav. Sanauon sananw osasana, josw = v 1 uv 2 joillakin sanoillav 1,v 2. 8 / 22 Sanojen lukumäärä Huom. Aakkoston sanoja on numeroituvasti ääretön määrä. Toisin sanoen aakkoston sanat voidaan kirjoittaa päättymättömäksi listaksi. 9 / 22 4

8.2. Kielet 10 / 22 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 sanaw yleensä samaistetaan ja merkitään myös kieltäw:llä. 11 / 22 Joukko-opin merkinnät Kielille käytetään joukko-opin merkintöjä:,,,\. Sananw kuuluminen kieleen merkitäänw L. Vastaavasti merkintäw / L tarkoittaa, että w ei ole kielenlsana. AakkostonV kaikkien sanojen muodostamaa kieltä merkitäänv :llä. Myösλ V. KieliV + = V \{λ} eli kaikkien aakkostonv ei tyhjien sanojen muodostama kieli. 12 / 22 5

Kielten ylinumeroituvuus Kieliä on selvästi ääretön määrä. Lisäksi voidaan todistaa Lause 8.1.Aakkoston kieliä on ylinumeroituvasti ääretön määrä. Toisin sanoen aakkoston kieliä ei voida kirjoittaa listaksi, Tod.... 13 / 22 Kielten operaatioita KieltenL 1 jal 2 katenaatio (tässä järjestyksessä) on kieli L 1 L 2 = {w 1 w 2 w 1 L 1 jaw 2 L 2 }. KielenLn:s (katenaatio) potenssi on kieli L n = {w 1 w 2 w n w 1,w 2,...,w n L}. ErityisestiL 1 = L,L 0 = {λ}. Myös 0 = λ. 14 / 22 6

Kielen katenaatiosulkeuma KielenLkatenaatiosulkeuma on kieli L = L n. n=0 elil on kieli joka muodostuu sanoista jotka saadaan kielenlsanoista katenoimalla. Myösλ L. Vastaavasti kieli L + = L n, n=1 jossa sanaλon mukana vain josλ L. Voidaan osoittaa, että L + = LL = L L. 15 / 22 Säännölliset kielet Säännölliset kielet aakkostossav: 1.,{λ} ja{a}, a V ovat säännöllisiä kieliä. 2. JosLjaL ovat säännöllisiä kieliä, niin myösl L,LL jal 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}. 16 / 22 7

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. JosRjaS ovat säännöllisiä ilmaisuja, niin myös(r),r+s,r S jar ovat säännöllisiä ilmaisuja. Esimerkki Alla 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 ilmaisua+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ää muodossaa+ba. 17 / 22 Yhteys Jokainen säännöllinen ilmaisurmäärää säännöllisen kielenl(r) seuraavasti: L( ) =,L(λ) = {λ},l(a) = {a}, L(R+S) = L(R) L(S),L(RS) = L(R)L(S) jal(r ) = (L(R)). EsimerkiksiL(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...}. Säännöllisten kielten ja säännöllisten ilmaisujen määritelmien perusteella: Jokainen säännöllisen ilmaisun määräämä kieli on säännöllinen ja jokaisen säännöllisen kielen määrää säännöllinen ilmaisu. Kaksi säännöllistä ilmaisuarjas ovat samat, josl(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.... 18 / 22 8

8.3. Kieliopit 19 / 22 Johdanto Kielioppi on välineistö synnyttää (formaaleja) kieliä. Tietyn kieliopin mukaisella kielellä on (hyvyys)ominaisuuksia, joita voidaan hyödyntää ko. kielellä tehtyjen ohjelmien tarkistamisessa ohjelman kääntämisen yhteydessä. Käytettäessä kieltä kiinnitetään huomiota kahteen asiaan: muotoon (syntaksiin) asiasisältöön (tarkoitukseen, semantiikkaan). Kielioppi säätelee kielen muotoa, syntaksia, ja niinpä kieliopin perusteella voidaan tarkistaa ilmaisun (lauseen) syntaksia. Formaalien kielien kielioppien tarkoituksena ei ole luoda laitetta, joka tuottaa ohjelmointikieliä, vaan aikaansaada kielioppeja, joiden sääntöjä noudattavien kielien muotoa(=syntaksia) on helppo tarkistaa (esim. kääntämisen tai tulkkauksen yhteydessä). 20 / 22 Kieliopin määritelmä Kielioppi G on järjestetty nelikko G = (V,V T,S,P), missä V = aakkosto (kaikkien kirjaimien joukko); V T = lopullisen kielen kirjaimien joukko (terminaalit)v T jav T V ; S = aloitussymbolis V\V T, P = äärellinen produktioiden (=tuotantosääntöjen) joukko,p V V. AakkostoaV N = V\V T kutsutaan ei terminaalien eli apukirjainten joukoksi. Produktioiden joukon sääntö(a,b) P kirjoitetaan yleensä muodossaa B. KielioppiGtuottaa sanoja seuraavasti: Aloitetaan alkukirjaimestas Sovelletaan joukonp sääntöjä, eli korvataan sanassa esiintyväasäännöna B oikealla puolellab. 21 / 22 9

Sanojen tuottaminen OlkootQ,R V sanoja. Määritellään operaatio G (tai josgtunnetaan ) seuraavasti: Q G R, josq = Q 1 αq 2,R = Q 1 βq 2 jaα β P. Q n G R,n 1, jos on olemassa sellaiset sanatq 1,Q 2,...,Q n 1, että Q Q 1 Q 2 Q n 1 R. JosQ = R taiq i R, jollakini, niinq R. 22 / 22 10