loeng2

Seotud dokumendid
loeng7.key

PowerPointi esitlus

Tartu Ülikool

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

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

Operatsioonisüsteemide ehitus

PowerPointi esitlus

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Andmed arvuti mälus Bitid ja baidid

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Funktsionaalne Programmeerimine

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Andmeturve

Funktsionaalne Programmeerimine

E-arvete juhend

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta

PowerPointi esitlus

MTAT Operatsioonisüsteemid - Turvalisus

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

Microsoft Word - Referaat.docx

Pealkiri

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

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

Microsoft Word - RM_ _17lisa2.rtf

Automaadid, keeled, translaatorid

lvk04lah.dvi

Microsoft PowerPoint - loeng.ppt

MTAT Operatsioonisüsteemid - Turvalisus

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

PHP

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

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

Microsoft Word - TM70_SP-MG_kasutusjuhend.docx

Operatsioonisüsteemide ehitus

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut

(loeng3-ohtlikud_koodiloigud)

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

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

Automaadid, keeled, translaatorid

Microsoft Word - Vorm_TSD_Lisa_1_juhend_2015

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Control no:

my_lauluema

HWU_AccountingAdvanced_October2006_EST

Algoritmid ja andmestruktuurid

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

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

Microsoft Word - Lisa 27.rtf

Microsoft Word - installation-guide.doc

DVD_8_Klasteranalüüs

Sotsiaalministri 17. septembri a määrus nr 53 Tervise infosüsteemi edastatavate dokumentide andmekoosseisud ning nende säilitamise tingimused ja

Mining Meaningful Patterns

SQL

LISA KINNITATUD õppeprorektori korraldusega nr 134 MUUDETUD õppeprorektori korraldusega nr 76 Võõrkeeleoskuse tõendamise tingimu

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

kaubamärgikaitsmineEkke [Kirjutuskaitstud] [Ühilduvusrežiim]

Presentatsiooni pealkiri

B120_10 estonian.cdr

T A R T U Ü L I K O O L MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Tarkvarasüsteemide õppetool Natalia Tomassova Grammatika-põhine kon

1 Keskkonnamõju analüüs Koostajad: Koostamise aeg: metsaparandusspetsialist Jüri Koort algus: bioloogilise mitmekesisuse spetsialist Toomas

Microsoft Word - KodS-i menetlused EN lisa 2.rtf

Praks 1

Advanced AspectJ ja AspectJ 5.0 Aleksei Bogdanov 05. aprill 2006

Microsoft Word - requirements.doc

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

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

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

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs

VL1_praks6_2010k

Peafail3_2.dvi

MergedFile

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

Microsoft Word - EHR.docx


SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

ArcGIS rakendused välitöödeks Raido Valdmaa AlphaGIS

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

1 Keskkonnamõju analüüs Koostajad: Koostamise aeg: metsaparandusspetsialist Madi Nõmm algus: bioloogilise mitmekesisuse spetsialist Toomas

PowerPoint Presentation

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

Programmi AnimatorDV Simple+ lühike kasutajajuhend

PICANTO Hinnad ja varustused KIA PICANTO HINNAKIRI Mootor VARUSTUSTASE Käigukast CO₂ emissioon (g/km) Kombineeritud kütusekulu Hind Soodush

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

Automaatne programmeerimisülesannete kontrollija Tartu Ülikooli kursuse “Algoritmid ja andmestruktuurid” jaoks

Eesti Muusika- ja Teatriakadeemia diplomite, akadeemiliste õiendite ja tunnistuste väljaandmise kord I Üldsätted 1. Käesolev eeskiri sätestab Eesti Mu

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 - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

Tartu Ülikool Matemaatika-informaatikateaduskond Puhta Matemaatika Instituut Algebra õppetool Riivo Must Mõned katsed üldistada inversseid poolrühmi M

2006 aastal ilmus vene keeles kaks raamatut: KUNSTITERAAPIA ALBUM LASTELE ja KUNSTITERAAPIA ALBUM TÄISKASVANUTELE. Raamatu autorid on E. Vasina. Psühh

Materjalid koostas ja kursuse viib läbi Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm 6.1 Regulaaravaldis Eelnevates osad

Väljavõte:

Automaadid, keeled, translaatorid Kompilaatori struktuur Leksiline analüüs Regulaaravaldised

Leksiline analüüs Süntaks analüüs Semantiline analüüs Analüüs Masinkoodi genereerimine Teisendamine (opt, registrid) Vahekoodi genereerimine Süntees Kompileerimise faasid

Lähtekood Leksilise analüüsi sisend

Lekseemide jada Süntaksanalüüsi sisend

Süntaksipuu Semantilise analüüsi sisend

Dekoreeritud puu Selle põhjal hakkame koodi genereerima

R1 := y R2 := 60 R3 := R1 * R2 R4 := x R5 := R3 + R4 x := R5 Vahekood Seda võib nüüd optimeerima hakkata

R1 := y R2 := 60 R1 := R1 * 60 R4 := x R1 := R1 + x x := R1 Optimeeritud vahekood Sellel kursusel me ei optimeeri. Me ei pea ka registrite pärast muretsema.

MOV R1, SP + $8 MULI R1, 60 ADD R1, $4000 MOV $4000, R1 Assemblerkood Olemegi valmis! (Ka linker/loaderi temaatika jääb siin käsitlemata)

Leksiline analüüs lähtetekst leksiline analüüs lekser = skanner (ingl. scanner) lekseemide jada ingl. tokens süntaksanalüüs süntaksipuu semantiline analüüs atrib. süntaksipuu

Regulaaravaldiste süntaks a

RE defineerib keele "" a "a" ""

Näited a b "a" "b" abba "abba" a b c d "ac" "ad" "bc" "bd" ab a "aa" "aba" "abba" "abbba" ab "" "ab" "abab" "ababab" a b "" "a" "b" "aa" "ab" "ba" "aaa" "aab" "aba" "baa" "abb" "bab" "bba" "bbb"

RE algebralised omadused (r s) t = r s t = r (s t) is associative. s t = t s s s = s is commutative. is idempotent. s? = s ε by definition. (rs)t = rst = r(st) sε = s = εs concatenation is associative. ε is a neutral element for concatenation. r(s t) = rs rt concatenation distributes over. (r s)t = rt st concatenation distributes over. (s ) = s is idempotent. s s = s 0ormoretwiceisstill0ormore. ss = s + = s s by definition.

Näiteid regulaarsetest kirjeldustest a za Z 0 9 + - 0 1 9. E

Regexite praktiline kasutus Perekonnanimi, Nimi Nimi Perekonnanimi

Capturing Groups Tihti on sõnes alamrühmitusi vaja kätte saada. Rühmitamine: Vene, Varmo ära tunda kui (Vene) 1, (Varmo) 2 Väljastamine: \2 \1 Kõik tähed enne koma Kõik tähed koma järel Näiteks: sed -E 's/(.*), (.*)/\2 \1/' Punkt on kõik tähestiku tähed

Word: Use Wildcards (Advanced Find & Replace )

Peaaegu Ma ei oska Wordile selgitada, et võtaks terve rida. Selleks on muidu operaatorid ^ ja $.

Proovime Javaga Java regexite teek on java.util.regex Nende funktsionaalsus on ka otse sõnede kaudu kättesaadavad. str.split(regex) = Pattern.compile(regex).split(str) str.split(, ) on aga kiirem. (fast-track lihtsate juhtumite jaoks)

public class Demo { public static void main(string[] args) throws IOException { Path path = Paths.get(args[0]); Files.lines(path).forEachOrdered(Demo::printline); } private static void printline(string line) { String edited = line.replaceall("(.*), (.*)", "$2 $1"); System.out.println(edited); } } Java kood line.replaceall("(.*), (.*)", "$2 $1")

Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { String match = matcher.group();... } Sisend (sõne) Tere, maailm! regex (string) a* b compile Pattern <puu esitus> matcher Matcher <pos, tulemus> Regex API Kohtadele (compile) valmis-olla (matcher) läks (find)

Maskeerimistähed!? (Escape characters / Maskierungszeichen) Regulaaravaldiste kompilaatori jaoks on tärn erilise tähendusega. Kui me lihtsalt tahame seda sümbolit regexis kasutada, siis peab kaldkriips ette panema. (Regex kompilaatori sisend "\d") Aga kaldkriips on ju eritähendusega ka Java jaoks, kui kirjutad sõnena Javas "\d", siis saame veatede.

System.out.println("??? ") Midagi tuleks kirjutada küsimärkide asemele, et ekraanile ilmuks järgmist kaks tähte: \d Sest selline peaks olema sisend regexi kompilaatorile!

IDE on abiks IntelliJ lubab lihtsalt teksti lõigata ja jutumärkide vahele kleepida, siis lisatakse automaatselt maskeerimistähti. Eclipse il seadistus Escape text when pasting into a string literal