Automaadid, keeled, translaatorid

Seotud dokumendid
Automaadid, keeled, translaatorid

loeng2

(loeng3-ohtlikud_koodiloigud)

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

loeng7.key

Funktsionaalne Programmeerimine

my_lauluema

untitled

Variant A

Andmed arvuti mälus Bitid ja baidid

PHP

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

ITI Loogika arvutiteaduses

4PET B_2016_02

Relatsiooniline andmebaaside teooria II. 6. Loeng

Paigaldusjuhend Daikin Altherma madalatemperatuurilise monoploki valikute plokk EK2CB07CAV3 Paigaldusjuhend Daikin Altherma madalatemperatuurilise mon

Xi5 juhtmevaba versioon

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Microsoft PowerPoint - BPP_MLHvaade_juuni2012 (2)

prakt8.dvi

Peafail3_2.dvi

Microsoft PowerPoint - IRZ0020_praktikum4.pptx

SQL

Microsoft Word - 23jaan07.doc

Võistlusülesanne Vastutuulelaev Finaal

01_ACO PIPE 2011.ai

Kliinilise keemia uuringud, südamemarkerite uuringud lapsed Kompleksanalüüsi nimetus Analüüsi nimetus Lühend Referentsväärtused Vanus Sugu

vv05lah.dvi

VRG 2, VRG 3

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri

Kerala State Haj Committee HAJ 2014 Flight Manifest FLIGHT NO. SV-5731 DATE: 14/09/2014 TIME: 16:35 RETURN FLIGHT NO: SV-5764 DATE: Cov No

Funktsionaalne Programmeerimine

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Kommunikatsiooniteenuste arendus (IRT0080) loeng 8/2014 Võrkude haldus Avo 1

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

Linux süsteemi administreerimine

Start time of charring of timber members protected with gypsum plasterboards

Microsoft Word - TM70_SP-MG_kasutusjuhend.docx

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

1. AKE Ajalise keerukuse empiiriline hindamine

PowerPoint Presentation

Microsoft PowerPoint - EMCS13

Rakenduste loomise ja programmeerimise alused

Slide 1

Slide 1

Maksu- ja Tolliamet MAKSUKOHUSTUSLANE Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsi

SQL

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

Tehniline andmeleht Sadulventiilid (PN 16) VRG 2 2-tee ventiil, väliskeermega VRG 3 3-tee ventiil, väliskeermega Kirjeldus Ventiilid on kasutatavad ko

Microsoft PowerPoint - loeng.ppt

ANOVA Ühefaktoriline dispersioonanalüüs Treeningu sagedus nädalas Kaal FAKTOR UURITAV TUNNUS Mitmemõõtmeline statistika Kairi Osula 2017/kevad

Pealkiri

+/- 7(chomsky???) Deduktiivne jama 1.Hulkade spetsifitseerimine. Hulk on samalaadsete objektide järjestamata kogum, mida käsitlet

(Microsoft Word - Matsalu Veev\344rk AS aktsion\344ride leping \(Lisa D\) Valemid )

Esitatud a. 1 PROJEKTEERIMISTINGIMUSTE TAOTLUS DETAILPLANEERINGU OLEMASOLUL 1. Füüsilisest isikust taotluse esitaja 2 eesnimi perekonnanim

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

Conseil UE Euroopa Liidu Nõukogu Brüssel, 30. november 2016 (OR. en) 14723/16 PROTOKOLLI KAVAND 1 Teema: LIMITE PUBLIC PV/CONS 61 EDUC 391 JEUN 103 CU

Side

7 KODEERIMISTEOORIA 7.1 Sissejuhatus Me vaatleme teadete edastamist läbi kanali, mis sisaldab müra ja võib seetõttu moonutada lähteteadet. Lähteteade

untitled

Word Pro - digiTUNDkaug.lwp

TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Karl Riis Bayesi isotoonilise kalibreerimise algoritm ja selle optimeerimine Bakalaureuset

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names /

2016. a võistluste kokkuvõte a võistlustest

Tartu Ülikool Loodus- ja täppisteaduste valdkond Arvutiteaduse instituut Sandra Puusepp CVE Referaat Tartu 2018

PowerPoint Presentation

28 29

Materjaliõpetuse ja keemia lõimimine õppetöös.

Andmebaasid, MTAT loeng Normaalkujud

untitled

HCB_hinnakiri2017_kodukale

Eesti Energia arenguplaanidest Raine Pajo

Microsoft PowerPoint - MKarelson_TA_ ppt

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

untitled

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

Osakogumite kitsendustega hinnang Kaja Sõstra 1 Eesti Statistikaamet Sissejuhatus Valikuuringute üheks oluliseks ülesandeks on osakogumite hindamine.

Euroopa Liidu Nõukogu Brüssel, 14. juuni 2019 (OR. en) 10266/19 OJ CRP1 23 ESIALGNE PÄEVAKORD ALALISTE ESINDAJATE KOMITEE (COREPER I) Justus Lipsiuse

Share wave 5: 50+ in Europe - Coverscreenwizard version IF SKIP_INTROPAGE = 0 CoverscreenWizardIntroPage Järgnev sissejuhatus sisaldab üldküsimu

Võistlusporgrammeerimise õpik on loodud Tartu Ülikooli teaduskooli ja arvutiteaduse instituudi koostöös.. Õpiku loomine sai alguse soovist pakkuda kõi

Print\A4\QualifyReduced.pmt

Kodutöö Töö eesmärk: Antud töö eesmärgiks on analüüsida vabalt valitud andmestikust leiduvat infot ning luua antud teema kohta ülesandeid, mille lahen

Microsoft PowerPoint - Ettekanne_3Dprojekt_ESTGIS.ppt [Compatibility Mode]

Mining Meaningful Patterns

3D mänguarenduse kursus (MTAT ) Loeng 3 Jaanus Uri 2013

SOOJUSSÕLMEDE REGULEERIMINE JA KÜTTESÜSTEEMI TASAKAALUSTAMINE Maja küttesüsteemi tasakaalustamine ja ventilatsiooni vajalikkus Toomas Rähmonen Termopi

FTXP20M5V1B FTXP25M5V1B FTXP35M5V1B Eesti

Väljavõte:

Leksiline nluus

Leksiline nluus Leksiline nluus kontrolli progrmmi s~onde (literlsumolite) vstvust leksilistele reeglitele ning teisend progrmmi sumolite (tokens) jdks: { eemld tuhisumolid j kommentrid; { identitseeri v~otmes~ond, identiktorid j konstndid; { konstrueeri sumolite teli; { lei sumolite re- j veerunumrid; { tevit vjdusel leksilistest vigdest. Leksilist nluusi kutsutkse skneerimiseks (scnning) ning vstvt nlustorit nimettkse sknneriks (scnner). nlüüs süntees lähtetekst leksiline nlüüs lekseemide jd süntksnlüüs süntksipuu semntiline nlüüs tri. süntksipuu vhekoodi gen. vhekood optimeerimine vhekood koodi genereerimine lõppkood 2 / 26

Ksitsi kodeeritud sknner Nide: v~otmes~on if rtundmine: c = redchr(); if (c!= i ) error(); else { c = redchr(); if (c!= f ) error(); else return IF_TOKEN; } 3 / 26

Ksitsi kodeeritud sknner Nide: if on v~otmes~on, kuid if0 identiktor: c = redchr(); if (c!= i ) { /* teised lekseemid : : : */ } else { c = redchr(); if (c!= f ) { /* teised lekseemid : : : */ } else { c = redchr(); if (c not lph-numeric) { putck(c); return IF_TOKEN; } while (c lph-numeric) { /* ehitd identifiktor */ } } } 4 / 26

Proleemid: Ksitsi kodeeritud sknner Vj komineerid erinvt liiki lekseemide sknnereid { Fikseeritud s~ond j mrgijdd (v~otmes~ond, opertorid) { Reeglite il deneeritud lekseemid (identiktorid, rvud) Lekseemid v~oivd kttud { if vs. if0 { = vs. == 5 / 26

Leksiline nluus lhtetekst Sknner lekseemide jd telid v~oi kood spetsiktsioon Sknnerite genertor Kun ksitsi kodeerimine on tuliks j vigde ldis, siis tvliselt genereeritkse utomtselt sknnerite genertori il. Progrmmi s~onde leksilised reeglid esittkse tvliselt regulrvldiste il. 6 / 26

Regulrvldised Regulrvldised ule (l~opliku) thestiku E ::= j j (E E) j (E j E) j E? kus 2. Regulrvldis E deneeri keele L(E)? L() = fg L() = fg L(E 1 E 2 ) = fvw j v 2 L(E 1 ); w 2 L(E 2 )g L(E 1 j E 2 ) = L(E 1 ) [ L(E 2 ) L(E? ) = fg [ fvw j v 2 L(E); w 2 L(E? )g 7 / 26

Regulrvldised Niteid: Regulrvldis Deneeritv keel j f; g fg? f; ; ; ; : : :g ()? f; ; ; ; : : :g ( j )? f; ; ; ; ; ; : : :g 8 / 26

Regulrvldised Regulrvldistes esinevte sulgude vhendmiseks on opertoritele mrtud prioriteedid: { sulundiopertor ( )? seo k~oige tugevmlt; { vlikuopertor ( j ) seo k~oige n~orgemlt. Luhendvid thistusi regulrvldiste esitmiseks: { mittetuhi sulund: E + = EE? ; { optsioon: E? = j E; { mrgihulgd: [c] = j j c; { mrgivhemikud: [ z] = j : : : j z. 9 / 26

Regulrvldised Regulrne kirjeldus thestikus on reeglite hulk d 1! E 1 d 2! E 2 : : : d n! E n kus d i on (uniklne) nimi j E i on regulrvldis thestikus [ fd 1 ; : : : ; d i 1 g. 10 / 26

Regulrvldised Niteid regulrsetest kirjeldustest: Identiktorid: Arvkonstndid: Letter! [ z A Z] Digit! [0 9] Identier! Letter (Letter j Digit)? Sign! (+ j -)? Integer! 0 j Sign [1 9] Digit? Deciml! Integer. Digit + Rel! (Integer j Deciml) E Integer 11 / 26

L~oplikud utomdid L~oplik utomt on viisik A = hq; ; ; q 0 ; F i, kus { Q on l~oplik olekute hulk; { on l~oplik thestik; { Q ( [ ) Q on uleminekureltsioon; { q 0 2 Q on lgolek; { F Q on l~oppolekute hulk. L~oplik utomt on determineeritud (DFA), kui uleminekureltsioon on funktsioon : Q! Q. Vstsel korrl on l~oplik utomt mittedetermineeritud (NFA). 12 / 26

L~oplikud utomdid L~oplike utomte esittkse tihti uleminekudigrmmiden: q0 q1 q2 L~oplik utomt A = hq; ; ; q 0 ; F i ktsepteeri keele L(A) = fw 2? j (q 0 ; w; q f ) 2? ; q f 2 F g kus? Q? Q on uleminekureltsiooni reeksiivne trnsitiivne sulund. Teoreem: L~oplike utomtide poolt ktsepteeritvte keelte klss lnge kokku regulrsete keelteg. 13 / 26

L~oplikud utomdid Determineeritud l~opliku utomdi simuleerimine: Chr := next chrcter ; Stte := q 0 ; while Chr 6= EOF do Stte := (Stte; Chr); Chr := next chrcter ; end if (Stte 2 F ) then return(success); else return(filure); 14 / 26

L~oplikud utomdid Determineeritud l~opliku utomdi simuleerimine: Chr := next chrcter ; Stte := q 0 ; while Chr 6= EOF do Stte := (Stte; Chr); Chr := next chrcter ; end if (Stte 2 F ) then return(success); else return(filure); q0 q1 q2 x q 0 q 1 Error Error q 1 q 2 q 1 Error q 2 Error Error Error 14 / 26

Regulrvldise teisendmine utomdiks Thompsoni konstruktsioon regulrvldise teisendmiseks (mittedetermineeritud) l~oplikuks utomdiks: regulrvldisele E seme vstvusse utomdi: q0 teisendme utomti jrgmiste reeglite il, kuni k~oik uleminekud on ks v~oi uksikud thed: E q f q E1 E2 p E1 E2 q q1 p E1 q E1 j E2 p q p E2 E q E? p q q1 q2 p 15 / 26

Regulrvldise teisendmine utomdiks Nide: ( j )? q0 q ( j )? f q0 q1 q f j q0 q1 q2 q3 q f q0 q1 q2 q3 q f 16 / 26

Regulrvldise teisendmine utomdiks Nide: ( j )? q0 q ( j )? f q0 q1 q f j q0 q1 q2 q3 q f q0 q1 q2 q3 q f 16 / 26

Regulrvldise teisendmine utomdiks Nide: ( j )? q0 q ( j )? f q0 q1 q f j q0 q1 q2 q3 q f q0 q1 q2 q3 q f 16 / 26

Regulrvldise teisendmine utomdiks Nide: ( j )? q0 q ( j )? f q0 q1 q f j q0 q1 q2 q3 q f q0 q1 q2 q3 q f 16 / 26

Determineeritud l~opliku utomdi koostmine Mittedetermineeritud l~opliku utomdig A = hq; ; ; q 0 ; F i ekvivlentse determineeritud l~opliku utomdi A 0 = hq 0 ; ; 0 ; q 0 0 ; F 0 i konstrueerimine oshulkde moodustmise il. Aifuntsioonid: { tuhikigusulundi funktsioon -closure : 2 Q! 2 Q -closure(s) = fp j q 2 S; (q; ; p) 2? g { uhe smmu funktsioon move : 2 Q! 2 Q move(s; ) = fp j q 2 S; (q; ; p) 2 g 17 / 26

Determineeritud l~opliku utomdi koostmine Algoritm: Q 0 := ;; F 0 := ;; 0 := ;; q 0 0 := -closure(fq 0g); U := fq 0 0 g; while 9S 2 U do U := U n S; Q 0 := Q 0 [ fsg; forech 2 do T := -closure(move(s; )); if T 62 U [ Q 0 then U := U [ ft g; 0 := 0 [ f(s; ) 7! T g; end end F 0 := fs 2 Q 0 j S \ F 6= ;g; 18 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f 19 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f q 0 0 19 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f q0 0 q1 0 19 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f q0 0 q1 0 q2 0 19 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f q0 0 q1 0 q2 0 19 / 26

Determineeritud l~opliku utomdi koostmine Nide: q0 q1 q2 q3 q f q0 0 q1 0 q2 0 19 / 26

Determineeritud l~opliku utomdi minimiseerimine Regulrvldisest ( j )? konstrueeritud determineeritud l~oplik utomt: q0 q1 q2 Temg ekvivlentne, vhem olekute rvug, utomt: q0 q1 20 / 26

Determineeritud l~opliku utomdi minimiseerimine Determineeritud l~oplik utomt on minimlne, kui ei leidu temg ekvivlentset, vhemte olekute rvug, determineeritud l~oplikku utomti. Ig determineeritud l~opliku utomdi A = hq; ; ; q 0 ; F i korrl leidu (uniklne) temg ekvivlentne minimlne determineeritud l~oplik utomt A 0 = hq 0 ; ; 0 ; q 0 0 ; F 0 i. Idee: tukeldme olekute hulg ekvivlentsiklssideks. { Olekud p; q 2 Q on ekvivlentsed ehk eristmtud, kui ig s~on w 2? korrl utomt, lustdes neist olekutest, m~oleml juhul ks ~onnestu v~oi e~onnestu. { Ig theg uleminek vii ekvivlentsed olekud ekvivlentseteks olekuteks. 21 / 26

Determineeritud l~opliku utomdi minimiseerimine Minimiseerimise lgoritm: Eemdme k~oik lgolekust q 0 kttesmtud olekud. Jrelejnud olekute hulgl leime suurim tukelduse ekvivlentsiklssideks. Konstrueerime uue utomdi A 0 = hq 0 ; ; 0 ; q 0 0 ; F 0 i, kus { olekutehulk Q 0 = ; { lgolek q 0 0 = P 0, kus P 0 2 j q 0 2 P 0 ; { l~oppolekute hulk F 0 = fp 2 j P \ F 6= ;g; { uleminekufunktsioon 0 = f(p i ; ) 7! P j j P j 2 move(p i ; )g. 22 / 26

Determineeritud l~opliku utomdi minimiseerimine Niivne lgoritm tukelduse leidmiseks: P := ff; Q n F g; do := P ; P := ;; forech S 2 do forech 2 do U := ft 2 j T \ move(s; ) 6= ;g; V := fs \ move 1 (T ) j T 2 Ug; P := P [ V ; end end until = P ; 23 / 26

Determineeritud l~opliku utomdi minimiseerimine Toodud lgoritm proovi igs itertsioonis peenendd k~oiki tukke. { Hlviml juhul ruutkeerukuseg. { Piis, kui vdeld inult neid tukke, millest on v~oimlik liikud m~ond l~ohenenud tukki. Hopcroft'i lgoritm tukelduse leidmiseks: { ksut toolisti veel li vtmt peenenenud tukkide hoidmiseks; { kui m~oni vljspool toolisti olev tukk l~ohene, siis piguttkse inult uks (viksem) lmtukk toolisti. 24 / 26

Determineeritud l~opliku utomdi minimiseerimine Hopcroft'i lgoritm: := ff; Q n F g; W := ; while 9S 2 W do W := W n S; forech 2 do P := move 1 (S); forech R 2 ft 2 j T \ P 6= ;; T 6 P g do R 1 := R \ P ; R 2 := R n R 1 ; := ( n R) [ fr 1 ; R 2 g; if R 2 W then W := (W n R) [ fr 1 ; R 2 g; else if jr 1 j jr 2 j then W := W [ fr 1 g; else W := W [ fr 2 g; end end end 25 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 q2 26 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 q2 26 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 q2 26 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 q2 26 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 q2 26 / 26

Determineeritud l~opliku utomdi minimiseerimine Nide { regulrvldisele ( j )? vstv DFA minimiseerimine: q0 q1 q3 q4 26 / 26