7 Kommentoitu johdanto XML:ään

Koko: px
Aloita esitys sivulta:

Download "7 Kommentoitu johdanto XML:ään"

Transkriptio

1 7 Kommentoitu johdanto XML:ään Kommentoitu johdanto XML:ään HTML:n ja DIV- ja SPAN-elementtien luonteva käyttöönotto dokumenttien rakenteen täsmentämisessä on merkki siitä, että itse keksityille elementeille on järkevää käyttöä Yhdessä tyylien käytön kanssa tämä tarjoaa elementtien identifioinnin ja luokittelun muodossa, paitsi mahdollisuuden dokumentin ulkoasun irrottamiseen sen sisällöstä, myös mahdollisuuden kokonaan uudentyyppisten rakenne-elementtien käyttöönottoon HTML:n sisällä - uudet elementit, joilla ei "HTML:n semanttista painolastia" - merkitys määräytyy käyttötarkoituksen tai ulkoasun määrittelyn perusteella Esimerkki: <DIV CLASS="userRecord" ID="147"> <DIV CLASS="nameField">John Doe</DIV> <DIV CLASS=" Field">john@doe.com</DIV> <DIV CLASS="ageField">34</DIV> <DIV CLASS="commentField">Nobody really knows him</div> <DIV CLASS="PIprintf>%s%s%d%s\n</DIV> <DIV> RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 124

2 Kuitenkin esim. elementtien DIV ja SPAN käyttö on kömpelöä ja rajoittuu vain HTML-kieleen Uusien elementtimääritysten lisääminen (HTML-dokumentti)kieleenkään ei auta; joku keksii aina tarpeellisen elementin, jota kielessä ei vielä ole joten ilmeisesti yhden ja (semanttisesti) yleispätevän merkintäkielen suunnittelu "GPML" (hypoteettinen "General Purpose Markup Language") ei ole tarkoituksenmukaista tai edes mahdollista Kuitenkin uudentyyppisiä rakenne-elementtejä käytännön sovelluksissa usein tarvitaan. Mikä ratkaisuksi? Vastaus: "staattisen ja valmiin merkintäkielen sijasta" tarjotaan suunnittelijoille mahdollisuus omien elementtien määrittelyyn ja käyttöönottoon jonkin yksittäistä merkintäkieltä yleisemmän kielen määrittelyjärjestelmän puitteissa Ratkaisu: XML (ja dokumenttien tyyppimäärittelyn eksplisiittinen käyttöönotto) Ratkaisun hyödyt: - kokonaan omannimiset elementit ja attribuutit joilla haluttu merkitys - mahdollisuus dokumenttien loogisen elementtirakenteen "oikeellisuuden" suoraviivaiseen tarkistamiseen RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 125

3 Oma merkintäkieli? Täysin uudentyyppisen (ei-triviaalin) merkintäkielen kehittäminen on työlästä, eikä työhön kannata ryhtyä ilman hyviä perusteluita! Käytännössä pelkän merkintäkielen lisäksi tarvitaan yleensä muutakin, esim. - editori, jolla dokumentteja voidaan tuottaa ja merkata - ohjelma, joka merkattuja dokumentteja osaa käsitellä - sovelluksia, joissa merkintäkielellä on käyttöä - yhteisö, joka ko. merkintäkielen suostuu ottamaan käyttöön Homma helpottuu huomattavasti, jos pyörää ei lähdetä keksimään uudestaan, vaan uusi merkintäkieli suunnitellaan jonkin standardoidun merkintäkielten kuvausjärjestelmän puitteissa Yleisessä tapauksessa kuvauskielten syntaksin ja tyyppimäärittelyjen sijaan puhutaan skeemoista ([schema]), joilla tarkoitetaan tiedon esitysrakenteiden abstrakteja malleja tai kuvausmenetelmiä (XML:n DTD-määrittelyitä voidaan pitää skeemojen erikoistapauksena - tähän palataan myöhemmin) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 126

4 Käytännössä "riittävän hyvän" dokumenttien merkintäkielen (tiedon kuvauskielen) kehittäminen onnistuu esim. SGML:n tai XML:n avulla Tällöin käytössä on jo "valmiina": - merkintäkielen perussyntaksi, jolla esim. elementtimerkkaus erotetaan muusta dokumentista (esim. tagit ja kommentit) - kuvauskieli, jolla dokumenttien rakenne, elementtien nimet ja ominaisuudet ilmoitetaan (esim. DTD-kuvauskieli) - ratkaisu perusmerkistön ja erikoismerkkien koodausongelmaan (esim. Unicode) - editoreita, ohjelmia, sovelluksia ja valmiiksi merkittyä dataa - muita käyttäjiä! Yhteisöllisen kytkennän kautta standardeihin pidättäytymisestä saadaan myös muuta hyötyä: - valmiita dokumenttien rakennemalleja - opetusta ja ohjeita työkalujen ja suunnittelumenetelmien käyttöön - esimerkkejä ja kokemuksia eri ratkaisujen toimivuudesta RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 127

5 Mitä merkintäkieleltä halutaan? Perimmäisenä ideana on tallettaa tietoa ja tietoa tiedosta sopivan koodausjärjestelmän puitteissa sopivalla tarkkuudella esitettynä "Tiedolla" tarkoitetaan tässä yhteydessä niitä asioita, joita halutaan käsitellä dokumenttimuodossa. Tieto sinänsä on sopimuksenvarainen asia. "Tiedolla tiedosta" (tiedon kuvaus, metatieto tai metainformaatio) tarkoitetaan tässä "eksplisiittistä rautalankaselitystä siitä, mitä merkitystä tiedolla on tai mitä se tässä asiayhteydessä tarkoittaa". Huomaa, erityisesti että - eri sovelluksissa "samasta tiedosta" saatetaan tarvita hyvinkin erilaisia kuvausta (vrt. dokumentin tulostaminen vs. tiedon etsiminen) - tietokoneen näkökulmasta metatieto "vain" lokeroi ja numeroi tietoa sekä esittelee relaatioita eri tietoalkioiden välillä "Koodausjärjestelmä" on se menetelmä, jolla kaksi edellistä voidaan esittää esim. tietokoneessa (käytössä on toki yhtä aikaa useita eritasoisia koodauksia, mutta yleensä näistä eksplisiittisesti mainitaan vain merkkikoodaus) Lopulta "sopiva tarkkuus" löydetään sovelluskohtaisesti kokeilemalla RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 128

6 XML - mikä se on? XML = Extensible Markup Language, versio 1.0 on virallinen W3C suositus (W3C Recommendation 10-February-1998) XML määrittelee (teksti)dokumenttien loogisen ja fyysisen rakenteen sekä tarjoaa mahdollisuuden tietyn (rajoitetun) elementtirakenteen omaavien, tietyntyyppisten dokumenttiluokkien kuvaamiseen Oleellisesti XML 1.0 määrittelee XML-dokumenttiluokan, ts. sen, millaisia XMLdokumentit ovat (sekä sen, miten XML-dokumentteja tulee prosessoida) XML on SGML:n "aito osajoukko" (tästä seuraa ) XML-spesifikaatio kuvaa XML-dokumentin geneerisen rakenteen EBNFnotaation avulla (Extended Backus-Naur Form), mikä käytännössä tarkoittaa tuottosääntöinä annettua kontekstivapaan kielen kielioppimäärittelyä - karkeasti sanottuna "dokumentti on XML-dokumentti, mikäli se voidaan johtaa spesifikaation document-tuottosäännöstä" (+reunaehdot) - itse XML-dokumentit näyttävät lähinnä "erikoisilta HTML-dokumenteilta" (EBNF:ää ei käytetä yksittäisten dokumenttien merkkaamiseen!) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 129

7 Esimakua tulevasta: yksinkertainen XML-dokumentti <?xml version="1.0"?> <!DOCTYPE EXAMPLE SYSTEM "hellow.dtd"> <EXAMPLE> <TITLE>Hello World!</TITLE> <CONTENT>My very first XML-document</CONTENT> <AUTHOR>Nykänen</AUTHOR> <DATE/> </EXAMPLE> Esimerkki näyttää tutulta: - elementit ja entiteetit näyttävät samalta kuin ennenkin - tuttu sisäkkäinen elementtirakenne - esimerkin toisella rivillä kerrotaan dokumentin tyyppi (vrt. HTML) Uuttakin on mukana: - uudentyyppisiä (nimisiä) elementtejä (EXAMPLE ja DATE)? - uudennäköisiä koodeja ja uutta notaatiota ("?"-merkki ja "<DATE/>"-tagi)? RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 130

8 XML-spesifikaation suunnittelukriteerit XML:ää kehittäneet XML Working Group (vanha SGML Editorial Review Board) ja XML Special Interest Group (vanha SGML Working Group) asettivat XML:n kehitystyölle seuraavia tavoitteita: - suoraviivainen käyttö Internetin yli - laaja sovellusalue (ei esim. laite- tai ohjelmistoriippuvuutta) - yhteensopivuus SGML:n kanssa - XML:ää käsittelevien ohjelmien kirjoittamisen helppous - vähän valinnaisia ominaisuuksia - dokumenttien luettavuus ja selkeys (myös ihmisten näkökulmasta) - määrityksen tulee valmistua nopeasti (työ alkoi toukokuussa 1996) - määrityksen suunnittelun on oltava tarkkaa ja huolellista - dokumenttien tekemisen helppous - minimalistiseen merkkauksen ei pyritä (esim. pitkät nimet ovat sallittuja) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 131

9 Mihin XML:ää voi käyttää? Yksinkertaisimmillaan XML soveltuu HTML:n manttelinperijäksi, ts. kaikki, mitä HTML:llä voidaan tehdä, voidaan (periaatteessa) tehdä paremmin XML:llä (tai oikeastaan XML-standardiperheellä, kunhan selainten XML-tuki tulee kuntoon) XML ei kuitenkaan ole rajoittunut vain ja ainoastaan esitettäväksi tarkoitettujen dokumenttien merkkaamiseen, vaan XML-dokumentteja voi käyttää myös muuhun (melkeinpä mihin tahansa) Koska XML-dokumentit ovat unikoodattuja laite- ja ohjelmistoriippumattomia rakenteellisia tekstidokumentteja, soveltuu XML hyvin esim. - tiedon arkistointiin, erityisesti tietokantojen dokumenttiesityksen muodossa - tiedon siirtoon "XML-tekstimuodossa" eri ohjelmien välillä Abstraktin perusluonteensa ansiosta dokumentit voivat sisältää lähes mitä tahansa, esim: - tuttua tekstimuotoista rakenteellista tietoa - eksplisiittisesti esitettyjä relaatioita mv. tyyppisten tiedostojen välillä (esim. entiteettiviittausten avulla) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 132

10 Koska XML tarjoaa eksplisiittisen mahdollisuuden myös dokumenttien tyypittämiseen, soveltuu XML myös esim. - tiedon esitysmuodon standardointiin (skeemojen määritys) - robustiin dokumenttien kirjoittamisen perustaksi (dokumenttirakenteen muotovirheiden tunnistaminen) XML-ohjelmien ja XML-prosessorirajapintojen ansiosta XML tarjoaa myös esimerkiksi: - mahdollisuuden XML-pohjaisten "toisen tason" metakielten määrittelyyn - valmiita mekanismeja (monimutkaisten) dokumenttien "helppoon" käyttöönottoon ohjelmankehityksen näkökulmasta On erittäin tärkeää huomata, että toisin kuin esim. HTML-dokumentilla, XMLdokumentilla ei ole selkeää oletussemantiikkaa tai ulkoasua XML-dokumentti "sellaisenaan" ei tarkoita mitään eikä näytä sen enemmältä kuin se on: jonkin tyyppimäärityksen puitteissa merkattu tekstidokumentti johon mahdollisesti liitetään ulkoisia entiteettejä RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 133

11 XML-dokumentin "johonkin järkevään käyttämisen" vaihtoehtoja on kaksi: - XML-dokumentti "esitetään" jonkin tyylikielen avulla - XML-dokumentti "tulkitaan" jonkin prosessoriohjelman avulla Ilmeisesti näistäkin ensimmäinen on "vain" toisen erikoistapaus (joskin merkittävä sellainen) Kaiken kaikkiaan XML on tavallaan samantyyppinen työkalu kuin jokin ohjelmointikieli; siinä missä ohjelmointikieli tarjoaa eväät tietorakenteiden kuvaamiseen algoritmien kehittämisen näkökulmasta, tarjoaa XML mahdollisuuden tietorakenteiden kuvaamiseen dokumenttijärjestelmien kehittämisen näkökulmasta;...se mitä tietokoneohjelma tai XML-dokumentti "tarkoittaa", riippuu viime kädestä ohjelmaa tai dokumenttia käsittelevästä järjestelmästä (tulkki, prosessori tai muu lukija, viime kädessä ihminen) - vrt. "mitä tarkoittaa:" person.name = "John"; person.address = "LA"; Entäpä "mitä tarkoittaa": <PERSON><NAME>John</NAME><ADDRESS>LA</ADDRESS></PERSON> RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 134

12 Mihin XML:ää ei pidä käyttää? Kuten mitä tahansa muutakaan teknistä ratkaisua tai järjestelmää, ei XML:kään kannata ottaa väkisin käyttöön, "koska XML on hieno teknologia" - ehjää ei tarvitse korjata! XML toki tarjoaa hyviä ominaisuuksia tiedon esittämiseen, mutta ei suinkaan ole ainoa vaihtoehto, onhan olemassa - "oikeita" tietokantoja - muita sovellusspesifejä kuvauskieliä -...ja lukemattomia sovelluksia sekä tonneittain tietoa näissä muodoissa XML ei myöskään ole "paras" ratkaisu, jos esim. - pyritään mahdollisimman tiiviiseen dokumenttiformaattiin - tieto halutaan salakirjoittaa - tietoa on luontevinta käsitellä jossain muussa kuin tekstimuodossa RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 135

13 Kuitenkin näissäkin tapauksissa XML voi tarjota luontevan tavan nimetä ja kehystää tietoa esim. tiedonsiirrossa tarvittavalla metatiedolla Perus-XML:ään liittyy myös omia puutteitaan: - elementtien rakennemäärittelyt ovat yksinkertaisia, eikä attribuuttimalleja ole oikeastaan lainkaan (tätä on mahdoton kiertää) - elementtien sisältö on käytännössä tyypitöntä tekstiä (tämän kiertäminen on erittäin työlästä) - jos käsiteltävä tieto sisältää "hankalia merkkijonoja" (esim. tiheästi sikin sokin merkkijonoja "<" ja "]]>"), dokumenteista tulee erittäin vaikealukuisia - ohjelmointiin tai DHTML:ään tottuneille XML on kaiken kaikkiaan varsin karu kieli (tämä on tietenkin myös XML:n voima) Osa näistä ratkeaa ottamalla XML:n rinnalle käyttöön muita XMLstandardiperheen määrityksiä (joista osa on vielä kehitteillä) XML:n suurin ongelma on se, että monelta osin käytännön teknologia on vielä "tulossa"-asteella - tämä aiheuttaa päänvaivaa erityisesti pienkehittäjille Lopuksi on syytä vielä kerrata, että tämän kurssimateriaalin kirjoitushetkellä XML:stä ei vielä reaalisesti ole HTML:n korvaajaksi RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 136

14 Mitä XML:n käyttämiseen tarvitaan? XML 1.0 on pohjimmiltaan varsin abstrakti ja yleiskäyttöinen määritys, joka kertoo, millaisia XML-dokumentit ovat;...joten minimissään XML:n hyötykäyttöön ei tarvita mitään ylimääräistä, vaan spesifikaatioita voidaan käyttää samaan tapaan kuin esim. kirjaa "näin kirjoitan helppolukuisia ja yksikäsitteisiä tekstidokumentteja": - XML 1.0 = ohje tietynmuotoisten dokumenttien kirjoittamisesta - standardi ja valmiiksi mietitty tapa merkitä dokumentteja Kuitenkin käytännössä XML:stä saadaan suurin hyöty irti, kun valitun tekstinkäsittelytyökalun rinnalla käytetään (validoivaa) XML-parseria: - XML-dokumenttien perussyntaksin automatisoitu tarkistaminen (dokumentti on hyvin muodostettu ([well-formed])) - XML-dokumenttien (rakenteen) automatisoitu validoiminen (dokumentin vahvistaminen tiettyyn dokumenttiluokkaan kuuluvaksi) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 137

15 Tekstinkäsittelytyökalu ja parseri voidaan myös yhdistää, tällöin XMLdokumenttien kirjoitustyö helpottuu huomattavasti (ominaisuudet tietenkin vaihtelevat eri ohjelmien välillä); "yleensä" käyttöön saadaan kuitenkin vielä: - graafinen esitys dokumentin puurakenteesta - XML-merkkauksen syntaksiväritys - elementtien menupohjainen valintatyökalu - tyylieditori ja dokumentin esikatselu - yms. Em. toimintojen lisäksi XML-editoriin voi tietenkin integroida myös muuta, esim. - tyyppimäärityskirjastoja - tuki muille XML-standardiperheen ominaisuuksille - yhteys tietokantajärjestelmään - yhteys (yrityksen tai organisaation) muihin operatiivisiin järjestelmiin - objektieditoreita, sovelluskohtaisia apuohjelmia ja opastetoimintoja, yms RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 138

16 Edellä kuvattiin lähinnä XML:ää kehittäjän näkökulmasta - loppukäyttäjän näkökulmasta XML on kuin mikä tahansa dokumenttistandardi: - XML-dokumenttien käyttäminen "kulissien takana" - taas yksi uusi "tiedostotyyppi" jolle integroitu ohjelmistotuki Suurin käytännön hyöty XML-dokumenteista saadaan, kun niiden editointi voidaan suorittaa tutuilla tai sovelluskohtaisilla editoreilla - "XML-tekstinkäsittely" - lomakepohjaiset työkalut - XML-wizardit, yms. Rajatuissa sovelluksissa XML-syntaksi on käytännössä tarkoituksenmukaista piilottaa loppukäyttäjiltä (vrt. HTML!) Mitä loppukäyttäjät sitten loppujen lopuksi tarvitsevat? - XML:ää hyödyntävän sovellusohjelman - mahdollisesti erikseen asennettavia ohjelmakomponentteja (esim. XMLparseri, XML-katseluohjelma, jne.) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 139

17 Kontekstivapaista formaalisista kielistä 8 Kontekstivapaista formaalisista kielistä Teknisessä XML-spesifikaatiossa XML-dokumentin syntaksi on esitetty käyttäen ns. Extended Backus-Naur Form (EBNF) -notaatiota EBNF on yleinen "tietokonekielten" syntaksin määrittämiseen käytetty merkintätapa (peräisin jo vuodelta 1960) - kompakti - "yksikäsitteinen" verrattuna siihen, että kielioppi annettaisiin esim. "sanallisesti" (huomaa, että 1-käsitteisyys saavutetaan kielen laillisten sanojen suhteen, ei kuitenkaan välttämättä niiden johtamisen suhteen) - "helppo" lukea ja toteuttaa tietokoneilla (Kieliopin) Backus-Naur Form (BNF) on erikoistapaus ns. kontekstivapaita kieliä (CF-kielet) määrittävistä formaaleista kieliopeista Idea: dokumentti tai ohjelma vastaa BNF-konstruktion avulla ilmoitetun kielen L sanaa silloin kun sen on syntaktisesti oikein kirjoitettu RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 140

18 Kontekstivapaista formaalisista kielistä EBNF ei riitä kuvattavan kielen semantiikan määrittämiseen, vaan semantiikka on annettava esim. esimerkkien ja kommenttien avulla (tilanne toistuu "käytännössä kaikkien" formaalisten kielten tapauksessa) Oleellisesti EBNF kuvaa kielen L sanat esittelemällä 1) kielen (lopullisten) symbolien joukon 2) sanojen muodostamiseen käytettävät tuottosäännöt ja 3) työhön tarvittavan (väliaikaisten) symbolien joukon. Esimerkki: Operation ::= Integer Symbol Integer Integer ::= [1-9]+ Symbol ::= '+' '-' '*' Notaation merkitys kohtuullisen selvä ohjelmointia tunteville: - syntaksi annetaan tuottosääntöinä ("::=" vastaa tuttua symbolia " ") - ensimmäinen tuottosääntö (ellei toisin mainita) ilmoittaa alkusanan, josta muiden sanojen johtaminen aloitetaan ("Operation") - merkkiluokat ([1-9]) - säännöllisten lausekkeiden kertojat ("+") - vaihtoehtoisten sääntöjen ryhmittely (" ") RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 141

19 Kontekstivapaista formaalisista kielistä Formaalinen kieli Pyrittäessä syntaktisesti yksikäsitteisiin kieliin päädytään ns. formaalisten kielten (formaalien kielten) käsitteisiin; tavoitteena on tällöin lähinnä (objektikieleen liittyvän) kielenkäytön ja päättelyn täsmentäminen Formaalinen kieli on jokin mv. sanojen joukko L (valitussa aakkostossa Σ) Sana w on äärellinen jono kielen aakkoston kirjaimia (merkkejä, symboleita, aakkosia, termejä) Aakkosto Σ on äärellinen kirjainten joukko (esim. kirjaimet a-ö, numerot 1-9, bitit 1 ja 0, jne.) Sanan w pituus w on siinä olevien kirjainten lukumäärä. Tyhjän sanan λ, sanan jossa ei ole lainkaan kirjaimia, pituus on 0 Sanoille v ja w määritellään tuttuja perusoperaatioita: - katenaatio (esim. vw) - (katenaatio)potenssi (esim. v 3 = vvv) - jne RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 142

20 Kontekstivapaista formaalisista kielistä Kieli voi olla äärellinen tai ääretön: - äärelliset kielet voidaan ilmoittaa aina luettelemalla kaikki kielen sanat L = {w 1,w 2,, w n } - äärettömille kielille tämä ei onnistu; kielen sanat pitää ilmoittaa sääntöjen avulla (esim. kieliopin avulla tai muodossa L = { w: P(w) }) - (sovelluksissa puhutaan yleensä potentiaalisesta äärettömyydestä) Myös kielille L ja M määritellään perusoperaatioita: - katenaatio LM = { vw v L ja w M} - (katenaatio)potenssi L n = {v 1,v 2 v n v 1,v 2,,v n L}, jne. Koska kielet ovat sanojen joukkoja, käytetään sanoille ja kielille tuttuja joukkoopin merkintöjä ja operaatioita (sisältyminen, yhdiste, leikkaus, komplementti, ) Äärettömän formaalisen kielen L ilmoittaminen voidaan tehdä usein eri tavoin: - esim. säännöllisen lausekkeen avulla (jos L säännöllinen) - yleisessä tapauksessa kielen ilmoittaminen on usein tarkoituksenmukaista tehdä kielen sanat tuottavan kieliopin avulla RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 143

21 Kontekstivapaista formaalisista kielistä Generatiiviset kieliopit Muodollisesti määritettynä (generatiivinen) kielioppi on nelikkö G = (Σ N,Σ T,X 0,P), missä aakkosto Σ jaetaan välisymbolien aakkostoon Σ N ja loppusymbolien aakkostoon Σ T. X 0 Σ N on kieliopin aksioma (alkusana, siemen) ja tuottosääntöjen joukko P muodostuu produktioista p i q i, missä p i :ssä on ainakin yksi välisymboli Kieliopin G "sisältämä" (indusoima) uudelleenkirjoitusjärjestelmä R=(Σ,P) mahdollistaa uusien sanojen johtamisen alkusanasta X 0 : 1) valitaan alkusana X i = X 0 2) yritetään soveltaa sanaan jotakin (yhtä) uudelleenkirjoitusjärjestelmän produktiota; jos onnistuu, saadaan uusi sana X i+1 3) jos sana X I+1 sisältää yhdenkin välisymbolin, jatketaan kohdasta 2 (asetetaan X i = X I+1 ) jos tällöin kohdan 2 yritys epäonnistuu, lopetetaan ja todetaan, että johto "epäonnistui" (ei tuottanut kielen sanaa) 4) JOS algoritmi pysähtyy JA tuottaa sanan, joka sisältää vain loppusymboleita, valitaan johdettu sana X I+1 kieleen L(G) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 144

22 Kontekstivapaista formaalisista kielistä Kielioppi G tuottaa kielen L(G) sanat; sanotaan, että G määrittää kielen L(G) Jos uudelleenkirjoitusjärjestelmä R tuottaa sanasta v sanan w, merkitään v * R w. Alaindeksi R voidaan jättää merkitsemättä jos se selviää asiayhteydestä. Jos johtoon käytetään vain yhtä produktiota jätetään tähti pois Kielen L(G) sanojen johtoon X 0 * w voidaan liittää ns. jäsennyspuu ([parse tree]) Jäsennyspuu on juurellinen puu, joka saadaan, kun sanan w johtamisen yhteydessä jokaisella produktioaskeleella "täydennetään aksiomasta alkavaa graafia", esim. S D + D 1 2 Esimerkin jäsennyspuuta vastaa ilmeisesti johto S D+D 1+2 (huomaa, että puusta ei näy, missä järjestyksessä 1 ja 2 on tuotu sanaan) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 145

23 Kontekstivapaista formaalisista kielistä Kielioppeja on tapana luokitella niiden tuottosääntöjen (tuottaminen kielten) perusteella, kielioppi G voi esim. olla 1) lineaarinen (produktioiden oikealla puolella enintään yksi välisymboli), 2) yhteydetön eli kontekstivapaa (produktioiden vasemmalla puolella vain välisymboleita) tai 3) yhteydellinen (ei rajoitusta 2) Kielioppi liittyy läheisesti automaatin ideaan: - automaatin sanotaan tunnistavan kielen, jos se hyväksyy tarkalleen kaikki kielen sanat - kieliopit ja automaatit ovat tavallaan erilaisia tapoja esittää "samoja asioita"; "yleensä" toimitaan siten, että kieliopeilla määritellään kieliä ja automaateilla tunnistetaan niitä (jako on lähinnä käytännöllinen) Kielioppien ja automaattien välinen yhteys on merkittävä: - lineaaristen kielioppien generoimat kielet ovat säännöllisiä joten niiden tunnistaminen onnistuu ns. äärellisillä automaateilla - yhteydettömät kieliopit generoivat yhteydettömiä kieliä (CF-kielet) joiden tunnistaminen onnistuu ns. pinoautomaateilla - yhteydelliset kieliopit generoivat yhteydellisiä kieliä (CS-kielet) joiden tunnistaminen onnistuu ns. lineaarisesti rajoitetuilla automaateilla RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 146

24 Kontekstivapaista formaalisista kielistä Kontekstivapaat kieliopit Kontekstivapaat kieliopit määrittävät siis kontekstivapaita kieliä; kielen sanojen jäsennyspuiden näkökulmasta tämä tarkoittaa sitä, että puun "haaroja voidaan kasvattaa" riippumatta valitun pisteen "kontekstista" Tietokonekielten tapauksessa usein on tarkoituksenmukaista piirtää (kirjoittaa) kielen L sanan w jäsennyspuu rivimuodossa, esim. S D + D 1 2 Tällöin puuhun yleensä liitetään hiljainen oletus puun "lukemisesta" - ylhäältä alas (vasemmalta oikealle) - tämä ei kuitenkaan tee sanan jäsennyspuusta yksikäsitteistä Kuten kielille yleensäkin, yksi ja sama CF-kieli voidaan tuottaa useilla eri menetelmillä, useilla eri kieliopeilla ja useilla eri CF-kieliopeilla RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 147

25 Kontekstivapaista formaalisista kielistä Jokainen kontekstivapaa kieli on kuitenkin mahdollista määritellä sellaisen kontekstivapaan kieliopin avulla, joka on ns. Chomskyn normaalimuodossa: - produktiot muotoa X YZ tai X a - poikkeuksena produktio X 0 λ (mikäli X 0 ei esiinny yhdenkään produktion oikealla puolella) Kontekstivapaiden kielten ja rakenteellisten dokumenttien välinen yhteys on selvä: - kielioppi L on dokumenttiluokan määrittävä "tyyppikuvaus" - ko. dokumenttiluokan dokumentteja vastaavat kielen L sanat Käytännössä pelkkä CF-kielioppi ei käytännön sovelluksissa aina "riitä": kielten (dokumenttiluokkien) rakennetta rajoitetaan vielä erilaisin (usein toisessa kielessä annetuin) rajoittein Esim. XML-dokumentin määrittäville EBNF-produktioille annetaan seuraavantyyppisiä rajoitteita: - well-formedness constraint (esim. elementtien tyypit täsmäävät) - validity constraint (esim. elementtirakenne täsmää) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 148

26 Kontekstivapaista formaalisista kielistä EBNF Generatiiviset kieliopit ovat "yleensä" riittävän vahvoja formaalisten kielten määrittelyyn käytettäviä konstruktioita, kuitenkin "tavanomaiset" sovellukset johtavat varsin suureen produktioiden määrään Ottamalla käyttöön "loogisia" sievennysmerkintöjä, voidaan sääntöjä kirjoittaa luettavammassa muodossa: käytännössä homma helpottuu huomattavasti ottamalla käyttöön säännöllisistä lausekkeista tutut merkinnät produktioiden sieventämiseen Extended Backus Naur Form (EBNF) esittää CF-kielen kieliopin käyttäen hyväksi produktioiden ryhmittelyä, operaattoreita, merkkiluokkia ja kertojia - ensimmäisenä esiteltävä produktio sovitaan aksiomaksi - kielen lopullisten symbolien joukko (aakkosto) "selviää sovelluksesta" (BNF ehdottaa välisymboleita kirjoitettavan esim. isolla alkukirjaimella) Esimerkki: Operation ::= Integer Symbol Integer Integer ::= [ ]+ Symbol ::= '+' '-' '*' RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 149

27 Kontekstivapaista formaalisista kielistä CF-kieliopin ilmiasu perustuu literaaliviittauksiin, sulkujen käyttöön, operaattoreihin ja kertojiin Merkki ja merkkijonoviittaukset: - #xn (N on halutun merkin indeksi merkkikoodauksen ISO/IEC mukaan) - [a-za-z],[#xn-#xm] (lueteltu merkkiluokan merkki) - [^abc], [^#xn#xm] (jokin muu merkki kuin lueteltu) - "string", 'string' (vakiomerkkijono) Sulkujen käyttö: - (lauseke) (lausekkeiden ryhmittely esim. kertojien vaikutusalueen asettamiseksi) Operaattorit: - A B (B seuraa A:ta) - A B (A tai B muttei molemmat) - A - B (A muttei B:tä) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 150

28 Kontekstivapaista formaalisista kielistä Kertojat: - A? (A esiintyy kerran tai ei ollenkaan) - A+ (A esiintyy yhden tai useamman kerran) - A* (A esiintyy yhden tai useamman kerran tai ei ollenkaan) Loput säännöllisistä lausekkeista tutut operaattorit ja kertojat voidaan konstruoida näistä Esimerkiksi A{3,4} on sama kuin A A A A A A A XML-spesifikaatio esittelee lisäksi muutakin kielen määrittelyyn liittyvää notaatiota: - /* */ (komentti) - [ wfc: ] (well-formedness constraint) - [ vc: ] (validity constraint) RAKENTEISET DOKUMENTIT (kevät 2002) luentorunko ON 151

Median valinta. Median Esimerkki: ulkoisen tyylitiedoston valinta median mukaan: tai vaihtoehtoisesti, esim:

Median valinta. Median Esimerkki: ulkoisen tyylitiedoston valinta median mukaan: tai vaihtoehtoisesti, esim: CSS2 6 CSS2 CSS2 laajentaa CSS1:stä tuoden muassaan ratkaisun osaan edellisistä ongelmista, CSS2:n uusia piirteitä ovat esim: - media-valitsin (aural, braille, embossed, handheld, print, projection, screen,

Lisätiedot

Esimerkki: ulkoisen tyylitiedoston valinta median mukaan CSS2:n @importkomennolla:

Esimerkki: ulkoisen tyylitiedoston valinta median mukaan CSS2:n @importkomennolla: CSS2 6 CSS2 CSS2 laajentaa CSS1:stä tuoden muassaan ratkaisun osaan edellisistä ongelmista, CSS2:n uusia piirteitä ovat esim: - media-valitsin (aural, braille, embossed, handheld, print, projection, screen,

Lisätiedot

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta. 3 HTML ja XHTML Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

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 rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

5 Merkkaus: XML protokollana

5 Merkkaus: XML protokollana 5 Merkkaus: XML protokollana XML on siis ns. metakieli, joka käytännössä voidaan tulkita tavaksi merkitä ja tyypittää rakenteisia dokumentteja. XML on kuitenkin ennen kaikkea standardimuotoinen tietorakenne

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

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

12 Dokumenttiluokan toteuttamisesta

12 Dokumenttiluokan toteuttamisesta 12 Dokumenttiluokan toteuttamisesta Tyypillisiä XML-sovellutuksia ovat esimerkiksi: - annettuun käyttötarkoitukseen räätälöity dokumenttityyppi (esim. painotalon ABC malli käsikirjoituksen rakenteelle)

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

5 Merkkaus: XML protokollana

5 Merkkaus: XML protokollana 5 Merkkaus: XML protokollana XML on siis ns. metakieli, joka käytännössä voidaan tulkita tavaksi merkitä ja tyypittää rakenteisia dokumentteja. Kuten tunnettua, se tarjoaa puitteet esim. XHTML-kielen määrittelylle

Lisätiedot

4 Johdanto XML-maailmaan

4 Johdanto XML-maailmaan 4 Johdanto XML-maailmaan Rakenteisia dokumentteja ei voi "ymmärtää" osamaatta niiden perustekniikkaa. Niinpä seuraavaksi kohdistamme huomion tekniikoihin. Rakenteisten dokumenttien yleisiin menetelmiin

Lisätiedot

3 Verkkosaavutettavuuden tekniset perusteet

3 Verkkosaavutettavuuden tekniset perusteet 3 Verkkosaavutettavuuden tekniset perusteet Saavutettavuuden toteuttaminen edellyttää lähtökohtaisesti tietoa laitteista ja sovelluksista, käyttäjistä ja käyttötavoista, sekä tekniikasta. Tekniikasta on

Lisätiedot

9 XML perusteet

9 XML perusteet 9 XML 1.0 - perusteet XML jakaa dokumenttien käsittelyn kaksitasoiseksi prosessiksi, jossa XMLprosessori ([processor]) lukee XML-tiedoston ja välittää tämän parsittuna sovellukselle ([application]). Käytännössä":

Lisätiedot

Säännöllisten kielten sulkeumaominaisuudet

Säännöllisten kielten sulkeumaominaisuudet Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,

Lisätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn hierarkia ja yhteysherkät kieliopit Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien

Lisätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit (Unrestricted Grammars) Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli

Lisätiedot

Automaatit. Muodolliset kielet

Automaatit. Muodolliset kielet Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten

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

S BAB ABA A aas bba B bbs c

S BAB ABA A aas bba B bbs c T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon etsiminen syotteesta (johdatteleva esimerkki) Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux

Lisätiedot

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

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama

Lisätiedot

8. Kieliopit ja kielet 1 / 22

8. Kieliopit ja kielet 1 / 22 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ää

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

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

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut T-79.1001 Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut Lemma (Säännöllisten kielten pumppauslemma). Olkoon A säännöllinen kieli. Tällöin on olemassa n 1

Lisätiedot

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen. Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,

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

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

Kertausta 1. kurssikokeeseen

Kertausta 1. kurssikokeeseen Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.

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

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

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M := ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Alue ja aiheet: Orposen prujun

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Alue ja aiheet: Orposen

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

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

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

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

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

Luento 12: XML ja metatieto

Luento 12: XML ja metatieto Luento 12: XML ja metatieto AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XML ja metatieto Metatieto rakenne sanasto Resource Description Framework graafikuvaus XML Semanttinen Web agentit 2 1 Metatieto

Lisätiedot

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15 Ctl160 490160-0 Nicholas Volk Yleisen kielitieteen laitos, Helsingin yliopisto Ctl160 490160-0 p.1/15 Lisää säännöllisistä lausekkeista Aikaisemmin esityt * ja + yrittävät osua mahdollisimman pitkään merkkijonoon

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

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

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

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

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3 T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava

Lisätiedot

4 Johdanto XML-maailmaan

4 Johdanto XML-maailmaan Johdanto XML-maailmaan 4 Johdanto XML-maailmaan Rakenteisia dokumentteja ei voi "ymmärtää" osamaatta niiden perustekniikkaa. Niinpä seuraavaksi kohdistamme huomion tekniikoihin. Rakenteisten dokumenttien

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

10 Tiedostot, dokumentit, tieto (&h-media)

10 Tiedostot, dokumentit, tieto (&h-media) 10 Tiedostot, dokumentit, tieto (&h-media) Tietokoneet käsittelevät tietoa tiedostojen muodossa Tietokoneiden yhteydessä dokumentilla tarkoitetaan tiedosto(je)n avulla esitettävää asiakokonaisuutta, joka

Lisätiedot

M. Merikanto 2012 XML. Merkkauskieli, osa 2

M. Merikanto 2012 XML. Merkkauskieli, osa 2 XML Merkkauskieli, osa 2 Esimerkki: XML-dokumentti resepti maitokaakao

Lisätiedot

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000

Lisätiedot

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

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää

Lisätiedot

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

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys. Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen

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

13 Tiedostot, dokumentit, tieto (&h-media)

13 Tiedostot, dokumentit, tieto (&h-media) 13 Tiedostot, dokumentit, tieto (&h-media) Esimerkki: HTML-dokumentti Tietokoneet käsittelevät tietoa tiedostojen muodossa Tietokoneiden yhteydessä dokumentilla tarkoitetaan tiedosto(je)n avulla esitettävää

Lisätiedot

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002 , XHTML ja CSS T-111.361 Hypermediadokumentin laatiminen 2002 XHTML CSS XSL Sisältö EXtensible Markup Language W3C Recommendation helmikuu 1998 SGML:n osajoukko Standard Generalized Markup Language Kevyempi

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

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

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen Projektiryhmä StanForD-XML Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen Rahoittajat Koskitukki Oy, Metsähallitus, Metsäliitto Osuuskunta, Pölkky Oy, Stora Enso Oyj, UPM- Kymmene Oyj, Vapo Timber Oy, Yksityismetsätalouden

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

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

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

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

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS LUONNOLLISEN KIELEN KÄSITTELY (NATURAL LANGUAGE PROCESSING, NLP) TEKOÄLYSOVELLUKSET, JOTKA LIITTYVÄT IHMISTEN KANSSA (TAI IHMISTEN VÄLISEEN) KOMMUNIKAATIOON, OVAT TEKEMISISSÄ

Lisätiedot

Muodolliset kieliopit

Muodolliset kieliopit Muodolliset kieliopit Luonnollisen kielen lauseenmuodostuksessa esiintyy luonnollisia säännönmukaisuuksia. Esimerkiksi, on jokseenkin mielekästä väittää, että luonnollisen kielen lauseet koostuvat nk.

Lisätiedot

1. Universaaleja laskennan malleja

1. Universaaleja laskennan malleja 1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä

Lisätiedot

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus Laajuus 5 op Luennot: 12 x 2t 11.3.2014 29.4.2014 Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus Lähiopetuksen jäkeen harjoitustyö ja tentti Aulikki Hyrskykari

Lisätiedot

9 XML perusteet

9 XML perusteet 9 XML 1.0 - perusteet XML jakaa dokumenttien käsittelyn kaksitasoiseksi prosessiksi, jossa XMLprosessori ([processor]) lukee XML-dokumentin ja välittää tämän jäsennettynä sovellukselle ([application]).

Lisätiedot

9 XML perusteet

9 XML perusteet 9 XML 1.0 - perusteet XML jakaa dokumenttien käsittelyn kaksitasoiseksi prosessiksi, jossa XMLprosessori ([processor]) lukee XML-dokumentin ja välittää tämän jäsennettynä sovellukselle ([application]).

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa XML-kielen perusteet Teoria ja ohjelmointitehtävät XML-kielen perusteet 3 Sisältö YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 7 YLEISKATSAUS KURSSIN SISÄLTÖIHIN...

Lisätiedot

Rajoittamattomat kieliopit

Rajoittamattomat kieliopit Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet

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

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

Säännöllisen kielen tunnistavat Turingin koneet

Säännöllisen kielen tunnistavat Turingin koneet 186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

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

8.5. Jäsennyspuu 1 / 23

8.5. Jäsennyspuu 1 / 23 8.5. Jäsennyspuu 1 / 23 Kääntäminen ja BNF Ohjelmointikielten kuten Java, C++, Pascal, Fortran jne. syntaksi määritellään tyypillisesti BNF-muotoisilla säännöillä. Sääntöjä on usein satoja. Ohjelman kääntämisessä

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

Rekursiiviset palautukset [HMU 9.3.1]

Rekursiiviset palautukset [HMU 9.3.1] Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle

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

Luento 1: Johdanto merkintäkieliin

Luento 1: Johdanto merkintäkieliin Luento 1: Johdanto merkintäkieliin AS-0.110 XML-kuvauskielten perusteet Janne Kalliola Johdanto merkintäkieliin Merkintäkieliä SGML HTML XML XML:n peruspiirteet XML-dokumentin rakenne XML:n käyttö XML-pohjaisia

Lisätiedot

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016 Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 4. lokakuuta 2016 1 simerkki arleyn algoritmin soveltamisesta Tämä esimerkki on laadittu

Lisätiedot

Paikkatiedot ja Web-standardit

Paikkatiedot ja Web-standardit Paikkatiedot ja Web-standardit Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: World Wide

Lisätiedot

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

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.

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

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli. HTML & CSS Antti Koivisto HTML (HyperText Markup Language)! HTML on sivujen kuvauskieli.! Se ei ole ohjelmointikieli.! HTML on merkintäkieli, joka koostuu monista merkintä tägeistä ().! Voidaan

Lisätiedot

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

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone

Lisätiedot

Rakenteiset dokumentit Mitä hyötyä niistä on?

Rakenteiset dokumentit Mitä hyötyä niistä on? Rakenteiset dokumentit Mitä hyötyä niistä on? AIPA-hankeseminaari Helsinki 28.1.2011 Airi Salminen Jyväskylän yliopisto http://users.jyu.fi/~airi/ Airi Salminen, Rakenteiset dokumentit. Mitä hyötyä? 28-01-2011

Lisätiedot

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke Rakenteisuus kahdella tasolla Oppimisaihiot ( Learning Objects

Lisätiedot

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

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen

Lisätiedot

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja 582206 Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja Tehtävän 1 tarkasti Juha Kärkkäinen, tehtävän 2 Jyrki Kivinen ja tehtävän 3 Esa Junttila. 1. (a) (b) S 0S1 UV U 1U ε V 0V ε Tehtävässä on sallittu

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013 TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 III Ohjelmointikielten syntaksi ja semantiikka Sisältö 1. Syntaksi ja semantiikan käsitteet 2. BNF-kielioppi 3. Syntaksikaaviot 4. Jäsentäjät 5. Semantiikka

Lisätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,

Lisätiedot

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin Ossi Nykänen Tampereen teknillinen yliopisto, Hypermedialaboratorio, W3C Suomen toimisto Terveyden

Lisätiedot

Johdatus matemaattiseen päättelyyn

Johdatus matemaattiseen päättelyyn Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä 2 Todistamisesta 2 3 Joukko-oppia Tässä luvussa tarkastellaan joukko-opin

Lisätiedot

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

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on rekursiivisesti numeroituva, mutta ei rekursiivinen. 6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti

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