TIES542 kevät 2009 Lausekkeista ja vähän muustakin

Koko: px
Aloita esitys sivulta:

Download "TIES542 kevät 2009 Lausekkeista ja vähän muustakin"

Transkriptio

1 IES542 kevät 2009 Lausekkeista ja vähän muustakin Antti-Juhani Kaijanaho 13. tammikuuta Lausekkeet Ehkä mullistavin ero toisen ja kolmannen ohjelmointikielisukupolvien siis symbolisen konekielen ja tavanomaisen (imperatiivisen) ohjelmointikielen välillä on siinä, miten laskutoimitukset on niissä ilmaistava. Symbolisessa konekielessä laskentakäskyt ovat tyypillisesti muotoa ota luku muistipaikasta A, ota toinen luku muistipaikasta B ja tallenna niiden summa muistipaikkaan C, ja ohjelmoijaparan epäkiitolliseksi tehtäväksi jää laskutehtävän pilkkominen tällaisten atomisten laskutoimitusten jonoksi. Esimerkiksi hypotenuusan pituuden laskeminen c a 2 + b 2 joudutaan kirjoittamaan symbolisella konekielellä tyyliin t 1 a a t 2 b b t 3 t 1 + t 2 c t 3 (missä nuoli vasemmalle ilmaisee muuttujaan sijoittamista toki jokaisella konekielellä on omat erityispiirteensä, ja kullakin konekielellä koodi näyttäisi huomattavastikin erilaiselta kuin yllä, mutta ylläolevassa tulee olennainen esille). Kun vielä tyypillisessä konekielessä nopeiden muistipaikkojen eli rekisterien määrä on erittäin rajallinen (vanhoissa koneissa muutama, Intelin 32-bittisissä puolisen tusinaa, parhaissa muutama kymmenen) ja tyypillisessä ohjelmassa tällaista laskentaa harjoitetaan jatkuvasti, kasvaa ohjelmoijan työmäärä ja virhealttius merkittävästi. Ensimmäiset ohjelmointikielet eivät olleet juuri sen kummallisempia kuin symbolisten konekielten yksinkertaisia laajennuksia, joissa ohjelmoija saattoi kirjoit- 1

2 taa sijoituskäskyn oikealle puolelle kohtuullisen monimutkaisen aritmeettisen laskutehtävän. Vielä tänäkin päivänä tuki tällaisille lausekkeille on ohjelmointikielen yksi tärkeimmistä (mutta helposti huomaamatta jäävistä) tehtävistä. Maailman vanhimman korkean tason ohjelmointikielen nimi on ORRAN, formula translator, syystä. Sallittujen lausekkeiden joukko riippuu kielestä. Käytännössä kaikki ohjelmointikielet tukevat ainakin tavallisia aritmeettisia lausekkeita: 1. Lukuvakio on aritmeettinen lauseke. 2. Muuttuja, joka on nykyisessä ympäristösssä sidottu lukuarvoon, on aritmeettinen lauseke. 3. Jos e ja e ovat aritmeettisia lausekkeita, niin e + e, e e, e e ja e/e ovat aritmeettisia lausekkeita. 4. Jos e on aritmeettinen lauseke, niin e ja (e) ovat aritmeettisia lausekkeita. Yllä esitetyt lauseketyypit voidaan jaotella primäärilausekkeisiin (engl. primary expressions), unaarilausekkeisiin (engl. unary expressions) sekä binäärilausekkeisiin (engl. binary expressions). Primäärilausekkeita ovat sulkulausekkeet (e) sekä lukuvakiot ja muuttujat lausekkeina. Unaarilausekkeet jäsentyvät siten, että niissä on ensin jokin operaattori (engl. operator) ja sitten alilauseke (ns. operandi (engl. operand)); unaarilausekkeita ovat muotoa e, missä operaattori on ja operandi on e. Binäärilausekkeet alkavat alilausekkeella (vasen operandi), jonka jälkeen tulee operaattori (+,, tai /) ja lopuksi toinen alilauseke (oikea operandi). Lauseketta, jossa binäärinen operaattori voi sijaita operandiensa välissä, sanotaan infix-lausekkeeksi. Ongelmana tällaisissa lausekkeissa on, että ei ole aina aivan selvää, miten lauseke pitäisi ymmärtää. Esimerkki tällaisesta moniselitteisestä (engl. ambiguous) lausekkeesta on : pitääkö se ymmärtää samoin kuin (1 + 2) 3 vai kenties samoin kuin 1 + (2 3)? Jo muinaiset matemaatikot tiesivät tähän ratkaisun: pitää määritellä, mikä on eri operaattoreiden presedenssi (engl. precedence) ja assosiatiivisuus (engl. associativity). Jos tarkasteltavana on lauseke muotoa e e e, missä operaattorilla on korkeampi presedenssi kuin operaattorilla, sen sovitaan tarkoittavan (e e ) e ; jos taas operaattorilla on matalampi presedenssi kuin operaattorilla, sen sovitaan tarkoittavan e (e e ). Jos operaattoreilla ja on sama presedenssi, niin lausekkeen tulkinta riippuu niiden assosiatiivisuudesta. Jos molemmat assosioituvat vasemmalle (engl. associate to the left), lauseke tulkitaan (e e ) e, ja jos molemmat assosioituvat oikealle (engl. associate to the right), lauseke tulkitaan e (e e ). Jos ne assosioituvat eri suuntaan tai ainakaan toinen ei assosioidu lainkaan, lausekkeen todetaan olevan kielen sääntöjen vastainen. Jos sama ope- 2

3 (unaarinen) / + aulukko 1: avanomaisten aritmeettisten operaattoreiden normaali presedenssirelaatio raattori voi esiintyä sekä unaarisena että binäärisenä (esimerkiksi ), tulee sen unaarinen ja binäärinen versio pitää erillään; niillä on yleensä eri presedenssi. Presedenssi- ja assosiointisäännöt vaihtelevat kielestä toiseen. Yleensä lienee järkevää, että matematiikasta tutut aritmeettiset operaattorit (esimerkiksi yhteen-, vähennys-, kerto- ja vähennyslaskuoperaattorit sekä vastalukuoperaattori) noudattavat matematiikasta tuttua presedenssiä: vastalukuoperaattorilla (unaarinen ) on korkeampi presedenssi kuin kerto- ja jakolaskuoperaattoreilla, joilla puolestaan on korkeampi presedenssi kuin yhteen- ja vähennyslaskuoperaattoreilla. Kerto- ja jakolaskuoperaattoreilla on sama presedenssi, ja samoin yhteen- ja vähennyslaskuoperaattoreilla on sama presedenssi. Kaikki nämä operaattorit assosioituvat vasemmalle paitsi vastalukuoperaattori, joka assosioituu oikealle. Presedenssi muodostaa operaattoreiden välille osittaisjärjestyksen 1. Yleensä kuitenkin presedenssirelaatio on täydellinen järjestys ja se esitetään tavallisesti taulukkona, jossa korkeamman presedenssin omaavat operaattorit ovat korkeammalla kuin matalamman presedenssin omaavat operaattorit. Edellä esitetyt tavanomaiset presedenssisäännöt on esitetty taulukossa 1. Kannattaa huomata, että presedenssi ja assosiatiivisuus eivät määrittele laskujärjestystä vaan jäsennyksen, vaikka toisin usein ajatellaankin. Esimerkiksi lausekkeessa voidaan laskea ensin siitä huolimatta, että koulussa opetettiin, että kertolasku lasketaan ensin. Vaikka infix-lausekkeet ovatkin kaikista tutuimpia, eivät ne ole ainoat mahdollisuudet. Voidaan esimerkiksi käyttää ns. puolalaisia (engl. Polish) eli prefixlausekkeita, joissa operaattori tulee aina ensin ja vasta sitten operandit. ämän esitystavan etu on, että sulkuja tai presedenssi- ja assosiatiivisuussääntöjä ei tarvita, jos operaattorien operandimäärä on kiinteä (eli jos sama operaattori ei ole sekä unaarinen että binäärinen): tarkoittaa yksiselitteisesti samaa kuin infix-lauseke (2 3) + (4 5). Vastaavasti voidaan käyttää käänteisesti puolalaisia (engl. reverse Polish) eli postfix-lausekkeita, joissa operaattori tulee 1. Muistakaamme, että osittaisjärjestys (engl. partial order) on relaatio, joka on refleksiivinen (a a pätee aina), antisymmetrinen (jos a b ja b a pätevät, niin a = b pätee) ja transitiivinen (jos a b ja b c pätevät, niin a c pätee). äydellinen järjestys (engl. total order) vaatii lisäksi totaalisuuden (a b tai b a pätee aina). 3

4 / Kuva 1: Lausekkeen (2 + 3) 6 7/8 rakennepuu operandien jälkeen. uo sama lauseke olisi postfix-lausekkeena Lausekkeita onkin paras ajatella puina, jotka vain kirjoitetaan näkyviin infix-, prefix- tai postfix-tyylillä. Näissä puissa operaattorit ovat sisäsolmuja ja operandit ovat operaattorinsa alipuita. Puun lehdet muodostuvat muuttujista ja lukuvakioista. ällaista puuta sanotaan lausekkeen rakennepuuksi (engl. structural tree); eräs sellainen on kuvattu kuvassa 1. 2 Syntaksi Ohjelmointikielten konkreetti ja abstrakti kielioppi määritellään yleensä täsmällisesti käyttämällä yhteydettömien kielioppien (context-free grammars) käsitteistöä. Abstrakti kielioppi ilmaistaan tavallisesti puhtaasti muunnossäntöinä (rewrite rules, productions): E E + E E E E E E/E L 2. Postfix-lausekkeet ovat käytössä orth- ja Postscript-kielissä. Prefix-lausekkeiden muunnelma, ns. Cambridgen-puolalainen lauseketyyppi, jossa operaattorit tulevat aina operandien edellä mutta lausekkeiden ympärillä on aina sulut, on käytössä Lisp-sukuisissa kielissä. 4

5 ässä E ja L ovat välikesymboleja (nonterminal symbols) ja +,, ja / ovat päätemerkkejä (terminal symbols). Välikesymboli L edustaa literaalisanasta, jonka rakennetta ei ole tässä kuvattu. ärkeää tässä on huomata, että tämä kielioppi on moniselitteinen (ambiguous) se ei kelpaisi merkkijonon jäsentämiseen. Siihen se ei ole tarkoitettukaan: tämä kielioppi on abstrakti, se kuvailee nelilaskimen lausekkeiden oleelliset osat, ei kaikkea sitä, jota niiden kirjoittamiseen merkkijonona tarvitaan. Oikeastaan abstrakti kielioppi kuvaa tietorakenteen, jossa tällaiset lausekkeet voidaan esittää havainnollisesti. Saman asian konkreetti kielioppi on yksiselitteinen ja varsin sotkuinen: E E + E / L (E) Edellä käytettyjen merkintöjen lisäksi tässä esiintyy kaksi uutta välikesymbolia ( ja ) seka kaksi uutta päätemerkkiä (aaltosulkeet). Konkreetti kielioppi ilmaistaan yleensä käyttäen John Backusin ja lukujen vaihteessa kehittämää merkintätapaa, jota Peter Naur kehitti edelleen ja käytti Algol 60:n määrittelydokumentissa, nimittäin BN:ää (Backus Naur form, ei Backus normal form 3 ) tai jotain sen muunnelmaa. BN:llä ilmaistuna ylläoleva kielioppi kirjoitetaan seuraavasti: Expression ::= erm Expression + erm Expression erm erm ::= actor erm actor erm / actor actor ::= Literal ( Expression ) 3. Donald E. Knuth. Backus Normal orm vs. Backus Naur orm. Communications of the ACM (letters to the editor), vol. 7, no. 12, December

6 ISO ja IEC standardoivat vuonna 1996 laajennetun version BN:stä 4, EBN:n. EBN laajentaa BN:ää lisäämällä siihen tuen valinnaisuuden, toiston, ryhmittelyn, määräkertaisen toiston ja poikkeustapausten ilmaisemiseen. EBN sallii välikesymbolin koostua useammasta sanasta. Lisäksi EBN sallii kommenttien lisäämisen kieliopin kuvaukseen. Internet-protokollien määrittelyissä käytetty BN:n muunnelma (Augmented BN eli ABN) on myös standardoitu: RC on syntaktisen metakielen Internetstandardi. Konkreetin kieliopin voi ajatella kuvaukseksi, joka kuvaa merkkijonoja (tai sanasjonoja) järjestetyiksi puiksi. Näiden puiden sisäsolmut ovat välikesymboleita ja lehtisolmut päätemerkkejä (sanasia). ällaisesta ns. jäsennyspuusta (parse tree) voidaan lukea koko merkkijono (sanasjono) käymällä puu läpi järjestyksessä ja merkitsemällä kukin kohdattu lehtisolmu ylös. Kunkin (epätriviaalin) alipuun juuri (joka on alkuperäisen puun sisäsolmu) kertoo, mitä välikesymbolia kyseinen puu vastaa. Kuvassa 2 kuvataan erään aritmeettisen lausekkeen jäsennyspuu edellä annetun konkreetin kieliopin mukaan. 3 Algebrallinen tulkinta Matemaattisesta näkökulmasta katsoen abstrakti kielioppi määrittelee (algebrallisen) operaattoriston (engl. (algebraic) operator domain). Määritelmä 1 Operaattoristo koostuu epätyhjästä joukosta lajeja (engl. sort, phylum); epätyhjästä joukosta operaattoreita (engl. operator); kuvauksesta, joka liittää kuhunkin operaattoriin lajin (sen (tulos)laji, (result) sort); kuvauksesta, joka liittää kuhunkin operaattoriin luonnollisen luvun (sen paikkaluvun, arity), joka voi olla nolla; ja kuvauksesta, joka liittää kuhunkin operaattoriin jonon lajeja (sen operandilajit, operand sorts), missä ko. jonon pituus on operaattorin paikkaluku. Jos operaattoristossa on vain yksi laji, ei operaattorien tulos- ja operandilajeja luonnollisestikaan ole tarpeen määritellä riittää määritellä vain operaattorit ja niiden paikkaluvut. 4. Information lechnology Syntactic metalanguage Extended BN. International standard ISO/IEC 14977:1996(E),

7 L E E L L L E E L ( ) 6 8 / 7 Kuva 2: Lausekkeen (2 + 3) 6 7/8 jäsennyspuu sivulla 5 annetun konkreetin kieliopin mukaan 7

8 operaattori tulos- paikka- operandilajit laji luku luvut 2 luvut luvut luvut 2 luvut luvut luvut 2 luvut luvut luvut 1 luvut = totuusarvot 2 luvut luvut < totuusarvot 2 luvut luvut > totuusarvot 2 luvut luvut totuusarvot 2 luvut luvut totuusarvot 2 luvut luvut totuusarvot 2 totuusarvot totuusarvot totuusarvot 2 totuusarvot totuusarvot totuusarvot 2 totuusarvot totuusarvot totuusarvot 2 totuusarvot totuusarvot? : luvut 3 totuusarvot luvut luvut aulukko 2: Eräs kaksilajinen operaattoristo Esimerkiksi aritmeettisten lausekkeiden operaattoristo muodostuu seuraavasti: yksi laji (luvut); neljä operaattoria (+,, ja unaarinen ); operaattoreiden +, ja paikkaluku on kaksi; ja unaarisen -operaattorin paikkaluku on yksi. Kun ohjelmointikieleen yleensä sisältyy myös tarve tehdä päätöksiä laskutoimitusten tulosten perusteella, saadaan hieman monimutkaisempi (mutta kuitenkin suhteellisen yksinkertaisempi) operaattoristo aikaan. Operaattoristossa on kaksi lajia (luvut ja totuusarvot), ja sen muut ominaisuudet on määritelty kompaktisti taulukossa 2. Oikeastaan kummastakin esimerkistä puuttuu operaattoreita, sillä myös kaikki vakiot pitäisi luetella operaattoreina (lukuvakiot kuin myös mahdolliset totuusarvovakiot). Vakio-operaattoreiden paikkaluku on luonnollisesti nolla. Operaattoriston merkitys tulee näkyviin kunnolla vasta, kun on määritelty algebra: Määritelmä 2 Olkoon meillä annettuna jokin operaattoristo. Algebra määrittelee kullekin lajille kantajajoukon (engl. carrier set) sekä 8

9 kullekin operaattorille kuvauksen sen operandilajien kantajajoukoilta sen tuloslakin kantajajoukolle. Esimerkiksi edellä määriteltyyn aritmetiikan operaattoristoon voidaan määritellä algebra seuraavasti: Kantajajoukkona on kokonaislukujen joukko. Operaattori + on kokonaislukujen yhteenlasku. Operaattori on kokonaislukujen vähennyslasku. Operaattori on kokonaislukujen kertolasku. Unaarinen on vastalukuoperaattori. Jokaiselle operaattoristolle on olemassa erityinen algebraluokka seuraavasti: Määritelmä 3 Olkoon annettuna kullekin operaattoriston lajille s joukko X s siten, että sama alkio ei kuulu kahden eri lajin X-joukkoon. Lajin s 0-sanoja ovat kaikki jonot, joiden ainoa alkio kuuluu X s :ään. Lajin s n + 1-sanoja ovat kaikki jonot, jotka ovat muotoa Oa 1... a n, missä O on operaattori, jonka paikkaluku on n ja jonka tuloslaji on s, ja kukin a i on O:n i:nnen operandilajin n-sana ja peräkkäin kirjoittaminen tarkoittaa jonojen yhdistämistä (konkatenaatio). Äärellinen jono on lajin s sana, jos on olemassa jokin luonnollinen luku n siten, että kyseinen jono on lajin s n-sana. Määritellään kullekin operaattorille O kuvaus sen operandilajien sanojen joukoilta sen tuloslajin sanojen joukolle siten, että sanat a 1,..., a n (missä n on O:n paikkaluku) kuvataan sanaksi Oa 1... a n. Se algebra, jonka kantajajoukkoja ovat kunkin lajin sanojen joukot ja jossa operaattoriin liitetään edellä määritelty kuvaus, on operaattoriston sana-algebra yli X:n (engl. word algebra over X). Joukkojen X s alkioita sanotaan muuttujiksi. Esimerkiksi aritmetiikan operaattoriston sanoja ovat muiden muassa +xy, +x yz, kunhan x, y ja z kuuluvat X-joukkoon. Lienee helppo huomata, että sanat ovat operaattoreista ja muuttujista muodostettavia prefix-lausekkeita. Sanat voitaisiin ihan hyvin määritellä myös sulutettuina infix-lausekkeina taikka postfixlausekkeina, mutta tapana on käyttää prefix-muotoa. Sana-algebra yli tyhjän muuttujajoukon on esimerkki initaalialgebrasta (engl. initial algebra). Initiaalialgebran täsmällinen määritelmä on sen verran sotkuinen (ei 9

10 tosin vaikea), että sivuutetaan se tässä (ks. esim. Piercen kategoriateoriakirja 6 ), mutta sen idea on seuraava: Jokaisesta initiaalialgebrasta on yksikäsitteinen rakenteen säilyttävä (eli homomorfinen) kuvaus jokaiselle saman operaattoriston algebralle. Varsin hämmästyttävä kategoriateorian alkeistulos on, että kaikki initiaalialgebrat ovat isomorfisia (eli olennaisesti samanlaisia ). Mikä tahansa kielen konkreetti kielioppi kelpaa sen initiaalialgebraksi varsin yksinkertaisella tavalla. Myös jäsennyspuut ja rakennepuut muodostavat initiaalialgebroja. Gougen ja kumppanit 7 esittivätkin 1970-luvulla varsin näppärän määritelmän abstraktille syntaksille: kielen abstrakti syntaksi on kaikki kielen initiaalialgebrat tulkittuna (isomorfisuuden nojalla) samaksi vekottimeksi. 6. Benjamin C. Pierce: Basic Category heory for Computer Scientists, MI Press, J. A. Gougen, J. W. hatcher, E. G. Wagner ja J. B. Wright: Initial Algebra Semantics and Continuous Algebras, Journal of the ACM 24 (1),

Luku 3. Syntaktisia kysymyksiä. 3.1 Lausekkeet

Luku 3. Syntaktisia kysymyksiä. 3.1 Lausekkeet Luku 3 Syntaktisia kysymyksiä Syntaksi eli kielioppi käsittelee ohjelmien muodollista oikeellisuutta pohtimatta merkitysopillisia eli semanttisia kysymyksiä. Kieliopilliset ominaisuudet ovat (useimmiten)

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012 TIEA241 Automaatit ja, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 2. helmikuuta 2012 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti lueteltava

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy 2015. Antti-Juhani Kaijanaho. 3. joulukuuta 2015 TIEA241 Automaatit ja, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Formaalisti Määritelmä Nelikko G = (V, Σ, P, S) on kontekstiton kielioppi (engl. context-free

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016 TIEA241 Automaatit ja, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. lokakuuta 2016 Sisällys Kontekstiton kielioppi Kontekstiton kielioppi koostuu joukosta päätemerkkejä (engl. terminal symbols),

Lisätiedot

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä Antti-Juhani Kaijanaho 30. marraskuuta 2015 1 Yksiselitteiset operaattorikieliopit 1.1 Aritmeettiset lausekkeet Tällä kurssilla on

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia

Lisätiedot

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

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja

Lisätiedot

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016 Kontekstittomien kielten jäsentäminen äydentäviä muistiinpanoja IA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 19. lokakuuta 2016 1 Yksiselitteiset operaattorikieliopit 1.1 Aritmeettiset

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. lokakuuta 2016 Sisällys n tunnistin Jay : An Efficient Context-Free Parsing Algorithm. Communications of the

Lisätiedot

Rekursiiviset tyypit

Rekursiiviset tyypit Rekursiiviset tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 20. helmikuuta 2007 Hiloista Kiintopisteet (Ko)rekursio Rekursiiviset

Lisätiedot

Tietojenkäsittelyteorian alkeet, osa 2

Tietojenkäsittelyteorian alkeet, osa 2 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. syyskuuta 2016 Sisällys vs Ovat eri asioita! Älä sekoita niitä. Funktiot Funktio f luokasta A luokkaan B, merkitään

Lisätiedot

Yhteydettömät kieliopit [Sipser luku 2.1]

Yhteydettömät kieliopit [Sipser luku 2.1] Yhteydettömät kieliopit [ipser luku 2.1] Johdantoesimerkkinä tarkastelemme kieltä L = { a n b m a n n > 0, m > 0 }, joka on yhteydetön (mutta ei säännöllinen). Vastaavan kieliopin ytimenä on säännöt eli

Lisätiedot

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,

Lisätiedot

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

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

Lisätiedot

11.4. Context-free kielet 1 / 17

11.4. Context-free kielet 1 / 17 11.4. Context-free kielet 1 / 17 Määritelmä Tyypin 2 kielioppi (lauseyhteysvapaa, context free): jos jokainenp :n sääntö on muotoa A w, missäa V \V T jaw V. Context-free kielet ja kieliopit ovat tärkeitä

Lisätiedot

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. syyskuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 29.9.2016 klo 8:41 (lähes kaikki kommentoitu) passed

Lisätiedot

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

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus 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:

Lisätiedot

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

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

Syntaksi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Syntaksi. Aluksi.

Syntaksi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2009 TIETOTEKNIIKAN LAITOS. Syntaksi. Aluksi. TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. syyskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe B tiistai 6.10. klo 10 selaaja ja jäsentäjä toimivat Kääntäjän

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013 Sisällys etenevä etenevä Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1)

Lisätiedot

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Luonnollisten lukujen ja kokonaislukujen määritteleminen Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................

Lisätiedot

Ensimmäinen ohjelmointikieli

Ensimmäinen ohjelmointikieli Ensimmäinen ohjelmointikieli ALKEIS-suora Antti-Juhani Kaijanaho 15. tammikuuta 2007 Kaksi tärkeintä tekijää, joiden takia konekielinen ohjelmointi on vaikeaa, ovat rekisterien hallinta sekä aritmeettisten

Lisätiedot

MAT Algebra 1(s)

MAT Algebra 1(s) 8. maaliskuuta 2012 Esipuhe Tämä luentokalvot sisältävät kurssin keskeiset asiat. Kalvoja täydennetään luennolla esimerkein ja todistuksin. Materiaali perustuu Jyväskylän, Helsingin ja Turun yliopistojen

Lisätiedot

Attribuuttikieliopit

Attribuuttikieliopit TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. toukokuuta 2011 Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. kesäkuuta 2013 Sisällys t Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton

Lisätiedot

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009 TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe D tiistai 10.11. klo 10 välikielen generointi Vaihe E tiistai

Lisätiedot

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen

Lisätiedot

2. Yhteydettömät kielet

2. Yhteydettömät kielet 2. Yhteydettömät kielet Yhteydettömät eli kontekstittomat kielet (context-free language, CFL) ovat säännöllisiä kieliä laajempi luokka formaaleja kieliä. Ne voidaan esittää yhteydettömillä kieliopeilla

Lisätiedot

Silmukkaoptimoinnista

Silmukkaoptimoinnista sta TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. joulukuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe F maanantai 14.12. klo 12 rekisteriallokaatio Arvostelukappale

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

Lisätiedot

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a. Polynomit Tarkastelemme polynomirenkaiden teoriaa ja polynomiyhtälöiden ratkaisemista. Algebrassa on tapana pitää erillään polynomin ja polynomifunktion käsitteet. Polynomit Tarkastelemme polynomirenkaiden

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Esko Turunen Luku 3. Ryhmät

Esko Turunen Luku 3. Ryhmät 3. Ryhmät Monoidia rikkaampi algebrallinen struktuuri on ryhmä: Määritelmä (3.1) Olkoon joukon G laskutoimitus. Joukko G varustettuna tällä laskutoimituksella on ryhmä, jos laskutoimitus on assosiatiivinen,

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

Lisätiedot

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

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)

Lisätiedot

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

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 27. marraskuuta 2015 Sisällys Rekursiivisesti etenevä engl. recursive descent parsing Tehdään kustakin välikesymbolista

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

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

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman

Lisätiedot

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Jäsennys TIEA341 Funktio ohjelmointi 1 Syksy 2005 Muistutus: Laskutehtävä ja tulos data Laskutehtava = Luku Double Yhteen Laskutehtava Laskutehtava Vahennys Laskutehtava Laskutehtava Tulo Laskutehtava

Lisätiedot

Täydentäviä muistiinpanoja jäsennysalgoritmeista

Täydentäviä muistiinpanoja jäsennysalgoritmeista äydentäviä muistiinpanoja jäsennysalgoritmeista Antti-Juhani Kaijanaho 7. helmikuuta 2012 1 simerkki arleyn algoritmin soveltamisesta arkastellaan kielioppia G : + () c ja sovelletaan arleyn algoritmia

Lisätiedot

6. Tekijäryhmät ja aliryhmät

6. Tekijäryhmät ja aliryhmät 6. Tekijäryhmät ja aliryhmät Tämän luvun tavoitteena on esitellä konstruktio, jota kutsutaan tekijäryhmän muodostamiseksi. Konstruktiossa lähdetään liikkeelle jostakin isosta ryhmästä, samastetaan alkioita,

Lisätiedot

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en

Lisätiedot

ALGEBRA KEVÄT 2013 JOUNI PARKKONEN

ALGEBRA KEVÄT 2013 JOUNI PARKKONEN ALGEBRA KEVÄT 2013 JOUNI PARKKONEN Algebra käsittelee laskemista. Osin tämä tarkoittaa numeroilla laskemista lukualueissa N, Z, Q, R, C laskutoimituksilla + ja ja niiden käänteisoperaatioilla ja / siinä

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e

Lisätiedot

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) 31.1.-4.2.2011 OT 1. Määritellään kokonaisluvuille laskutoimitus n m = n + m + 5. Osoita, että (Z, ) on ryhmä.

Lisätiedot

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

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

TIEA341 Funktio-ohjelmointi 1, kevät 2008

TIEA341 Funktio-ohjelmointi 1, kevät 2008 TIEA34 Funktio-ohjelmointi, kevät 2008 Luento 3 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 2. tammikuuta 2008 Ydin-Haskell: Syntaksi Lausekkeita (e) ovat: nimettömät funktiot: \x

Lisätiedot

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia Kukin alkio (viite) talletettuna solmuun (node) vastaa paikan käsitettä

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio

Lisätiedot

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

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS. TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

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

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos. TIE303 Formaalit menetelmät, kevät 2005 Logiikan kertausta Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-27 p. 1/17 Luento2Luentomoniste

Lisätiedot

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa

Lisätiedot

MS-A0401 Diskreetin matematiikan perusteet

MS-A0401 Diskreetin matematiikan perusteet MS-A0401 Diskreetin matematiikan perusteet Osa 2: Relaatiot ja funktiot Riikka Kangaslampi Syksy 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta

Lisätiedot

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion. Vastaavuus puolestaan on erikoistapaus relaatiosta.

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13

2.4 Normaalimuoto, pohja ja laskentajärjestys 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 2.4. NORMAALIMUOTO, POHJA JA LASKENTAJÄRJESTYS 13 Toisinaan voi olla syytä kirjoittaa α- tai β-kirjain yhtäsuuruusmerkin yläpuolelle kertomaan, mitä muunnosta käytetään. Esimerkki 4 1. (λx.x)y β = y 2.

Lisätiedot

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters

Lisätiedot

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 014 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i

Lisätiedot

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko 3. Tekijälaskutoimitus, kokonaisluvut ja rationaaliluvut Tässä luvussa tutustumme kolmanteen tapaan muodostaa laskutoimitus joukkoon tunnettujen laskutoimitusten avulla. Tätä varten määrittelemme ensin

Lisätiedot

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

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

Lisätiedot

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

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Joukon määritelmä Joukko on alkioidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Näin ei tässä

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016 ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/

Lisätiedot

Kokonaislukuoptimointi

Kokonaislukuoptimointi Kokonaislukuoptimointi Algebrallisen geometrian sovelluksia Sisältö Taustaa algebrallisesta geometriasta Gröbnerin kanta Buchbergerin algoritmi Kokonaislukuoptimointi Käypyysongelma Algoritmi ratkaisun

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 1: Joukot 4.1 Joukot Matemaattisesti joukko on mikä tahansa hyvin määritelty kokoelma objekteja, joita kutsutaan joukon alkioiksi

Lisätiedot

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

Lisätiedot

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

Ei-yhteydettömät kielet [Sipser luku 2.3] Ei-yhteydettömät kielet [Sipser luku 2.3] Yhteydettömille kielille pätee samantapainen pumppauslemma kuin säännöllisille kielille. Siinä kuitenkin pumpataan kahta osamerkkijonoa samaan tahtiin. Lause 2.25

Lisätiedot

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

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014 Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan

Lisätiedot

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

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).

Lisätiedot

8. Kieliopit ja kielet

8. Kieliopit ja kielet 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

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla Johdatus diskreettiin matematiikkaan Harjoitus 2, 23.9.2015 1. Osoita että A on hyvin määritelty. Tee tämä osoittamalla a) että ei ole olemassa surjektiota f : {1,, n} {1,, m}, kun n < m. b) että a) kohdasta

Lisätiedot

Matematiikan tukikurssi, kurssikerta 2

Matematiikan tukikurssi, kurssikerta 2 Matematiikan tukikurssi kurssikerta 1 Relaatioista Oletetaan kaksi alkiota a ja b. Näistä kumpikin kuuluu johonkin tiettyyn joukkoon mahdollisesti ne kuuluvat eri joukkoihin; merkitään a A ja b B. Voidaan

Lisätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa

Lisätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Täydentäviä muistiinpanoja laskennan rajoista Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151 Vaasan yliopiston julkaisuja 151 8 KANNAT JA ORTOGONAALISUUS KantaOrthogon Sec:LinIndep 8.1 Lineaarinen riippumattomuus Lineaarinen riippumattomuus on oikeastaan jo määritelty, mutta kirjoitamme määritelmät

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PUURAKENTEET, BINÄÄRIPUU, TASAPAINOTETUT PUUT MIKÄ ON PUUTIETORAKENNE? Esim. Viereinen kuva esittää erästä puuta. Tietojenkäsittelytieteessä puut kasvavat alaspäin.

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. helmikuuta 2012 Sisällys t Sisällys t Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Merkintöjä 1 Matriisi on suorakulmainen lukukaavio.

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

1 Lineaariavaruus eli Vektoriavaruus

1 Lineaariavaruus eli Vektoriavaruus 1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. maaliskuuta 2011 Sisällys Sisällys Väitelauseet lause (tai virke), joka sanoo jonkin asian pitävän paikkaansa

Lisätiedot

8 Joukoista. 8.1 Määritelmiä

8 Joukoista. 8.1 Määritelmiä 1 8 Joukoista Joukko on alkoidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukkooppi aksiomaattisesti. Näin ei tässä tehdä

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. Pois kontekstittomuudesta TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino

Lisätiedot

a) Mitkä seuraavista ovat samassa ekvivalenssiluokassa kuin (3, 8), eli kuuluvat joukkoon

a) Mitkä seuraavista ovat samassa ekvivalenssiluokassa kuin (3, 8), eli kuuluvat joukkoon Matematiikan johdantokurssi, syksy 08 Harjoitus 3, ratkaisuista. Kokonaisluvut määriteltiin luonnollisten lukujen avulla ekvivalenssiluokkina [a, b], jotka määrää (jo demoissa ekvivalenssirelaatioksi osoitettu)

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

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

uv n, v 1, ja uv i w A kaikilla 2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko

Lisätiedot