Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download ""

Transcript

1 Metaglwttistèc NÐkoc PapaspÔrou Ejnikì Metsìbio PoluteqneÐo Sqol Hlektrolìgwn Mhq. kai Mhq. Upologist n Ergast rio TeqnologÐac LogismikoÔ PoluteqneioÔpolh, Zwgr fou. N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

2 Eisagwg metaglwttist n: EÐdh AploÐ (decompilers) AntÐstrofoi (meta-compilers) Meta-metaglwttistèc peript seic metaglwttist n: Eidikèc (preprocessors) Proepexergastèc (assemblers) Sumbolometafrastèc programm twn Genn torec (i) UlopoÐhsh glwss n programmatismoô (program generators) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

3 Eisagwg ergaleða Sunaf (interpreters) DiermhneÐc bibliojhk n (library managers) Diaqeiristèc (linkers) Sundètec (loaders) Fortwtèc programm twn (program editors) Ekdìtec sfalm twn (debuggers) Entopistèc analutèc (profilers) StatistikoÐ (ii) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

4 apait seic: Basikèc leitourgeð swst Na Kataskeu metaglwttist (i) summorf netai me tic prodiagrafèc thc Na kai thc telik c gl ssac arqik c metaglwttðzei progr mmata Na megèjouc k je N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

5 apait seic: Epiprìsjetec par gei apodotikì k dika Na èqei mikrì qrìno metagl ttishc Na èqei mikrèc apait seic mn mhc kat th Na metagl ttish dðnei kal diagnwstik mhnômata Na suneqðzei Ôstera apì l jh Na eðnai metafèrsimoc Na Kataskeu metaglwttist (ii) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

6 F seic thc metagl ttishc Lektik an lush Suntaktik an lush Shmasiologik an lush Paragwg endi mesou k dika BeltistopoÐhsh Paragwg telikoô k dika N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

7 F seic kai pro ìnta αρχικό πρόγραµµα Λεκτική ανάλυση λεκτικές µονάδες Συντακτική Ανάλυση συντακτικό δέντρο Σηµασιολογική Ανάλυση συντακτικό δέντρο Πίνακας συµβόλων Παραγωγή ενδιάµεσου κώδικα ενδιάµεσος κώδικας Χειριστής σφαλµάτων Βελτιστοποίηση ενδιάµεσου κώδικα ενδιάµεσος κώδικας Παραγωγή τελικού κώδικα τελικός κώδικας Βελτιστοποίηση τελικού κώδικα τελικό πρόγραµµα N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

8 Jèmata ulopoðhshc diagnwstik n mhnum twn kai an nhyh EÐdh (internal) Eswterik (errors) Sf lmata mhnômata (warnings) Proeidopoihtik Org nwsh se per smata se emprìsjio kai opðsjio tm ma Org nwsh / back-end) (front-end 'Elegqoc orjìthtac Apl mhnômata (messages) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

9 EkkÐnhsh bootstrapping B ma 1: Metaglwttist c gia S A sthn T. B ma 2: Metaglwttist c gia thn A sthn S. B ma 3: Metaglwttist c gia thn A sthn A. A T A T A T A A T T S S T T T N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

10 se èna pèrasma Εµπρόσθιο τµήµα Org nwsh Συντακτικός αναλυτής Λεκτικός αναλυτής Σηµασιολογικός αναλυτής Γεννήτορας ενδιάµεσου κώδικα Βελτιστοποιητής ενδιάµεσου κώδικα Χειριστής σφαλµάτων Πίνακας συµβόλων Γεννήτορας τελικού κώδικα Βελτιστοποιητής τελικού κώδικα Οπίσθιο τµήµα N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

11 Tupikèc gl ssec Grammatik G =(T,N,P,S) : termatik sômbola T : mh termatik sômbola N : kanìnec paragwg c P : arqikì sômbolo S an α, β, γ, δ (T N) Paragwgèc: (α β) P kai γαδ γβδ tìte a A α β Gl ssa: L(G) ={ α T S + α } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

12 α β IerarqÐa Chomsky TÔpou 0: ìlec oi grammatikèc, 1: grammatikèc me sumfrazìmena TÔpou α β me α β (context-sensitive), 2: grammatikèc qwrðc sumfrazìmena TÔpou A β (context-free) 3: kanonikèc grammatikèc (regular) TÔpou A ab A a perðptwsh: gl ssec pou par goun thn Eidik sumboloseir ken N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

13 Anagnwristèc TÔpou 0: mhqan Turing TÔpou 1: grammik periorismènh mhqan Turing 2: autìmata stoðbac TÔpou automata) (push-down Qr sima sth suntaktik an lush 3: peperasmèna autìmata TÔpou automata) (finite Qr sima sth lektik an lush N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

14 Kanonikèc gl ssec SuntomografÐec: peritt n parenjèsewn apaloif ekfr seic (regular expressions) Kanonikèc sumboloseir : ɛ Ken sômbolo: a Σ K je dôo kanonik n ekfr sewn: Par jesh dôo kanonik n ekfr sewn: Di zeuxh ( stro) Kleene: (r ) KleÐsimo (rs) (r s) r + [a 1, a 2,...,a n ] r?. N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

15 Peperasmèna autìmata Katast seic kai metab seic (NPA), mh nteterministik Nteterministik kai MPA me kenèc metab seic (MPA-ɛ) (MPA) 0 0 A 1 1 B gl ssa twn sumboloseir n pou H apì 0 kai 1 kai perièqoun rtio apoteloôntai arijmì 1 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

16 kai isodunamðec Anagwgèc grammatik MPA-ɛ kanonik MPA-ɛ èkfrash kanonik MPA-ɛ MPA-ɛ kanonik grammatik MPA-ɛ kanonik èkfrash NPA ElaqistopoÐhsh NPA N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

17 Lektik an lush an qreiasteð opisjodromoôn èxodo pou qrhsimopoieðtai sth diajètoun Lektikèc mon dec (tokens) me peperasmèna autìmata AnagnwrÐzontai pou: endeqomènwc perissìterouc diab zoun qarakt rec suntaktik an lush Eidikìc sumbolismìc: diagr mmata met bashc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

18 (i) Diagr mmata met bashc Anagnwristik thc Pascal L 0 L 1 D L L όχι L/D * (T_id) D N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

19 (ii) 0 > 1 = 2 Diagr mmata met bashc Telestèc > kai >= όχι = * 2 (T_gt) 0 > 1 = 3 (T_ge) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

20 Kataskeu tou LA kai taxinìmhsh lektik n mon dwn Katagraf lektik n mon dwn KwdikopoÐhsh (i) kai taxinìmhsh qarakt rwn Katagraf mapping : (ASCII {EOF }) Σ AkoloujÐa qarakt rwn (lexeme) SqedÐash tou diagr mmatoc met bashc UlopoÐhsh tou lektikoô analut N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

21 jèmata Epimèrouc diaqwrismoô lektik n mon dwn Trìpoc Sqìlia pez n / kefalaðwn gramm twn Di krish mn mh (buffer) Endi mesh apì sf lmata An nhyh Kataskeu tou LA (ii) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

22 (iii) W Kataskeu tou LA SqedÐash sunolikoô 0. ; ( ) = + - EOF * (T_dot) (T_smcolon) (T_lparen) (T_rparen) (T_eq) (T_plus) (T_minus) (T_eof) : < > / * diagr mmatoc = = όχι = = met bashc όχι = όχι = = όχι = * όχι * * * * * * (T_assign) (T_colon) (T_le) (T_lt) (T_ge) (T_gt) (T_ne) (T_div) (T_power) (T_times) * L E 6 όχι L E D _ 45 L E D _ (T_id) D 7 όχι D. Ε. 8 όχι D Ε D E D 11 όχι D 46 * D Ε D D (T_const) { 12 } 0 όχι } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

23 Kataskeu tou LA trìpoi ulopoðhshc: EnallaktikoÐ Qeirwnaktik (iv) pðnaka metab sewn Me to metaergaleðo flex Me N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

24 sun rthsh yylex ulopoieð to LA H ton kwdikì thc lektik c mon dac Epistrèfei UlopoÐhsh LA me to flex (i) MetaergaleÐo flex: genn torac LA metaprìgramma pou perigr fei tic EÐsodoc: mon dec lektikèc 'Exodoc: prìgramma se C anagnwrðsthke, 0 sto tèloc thc pou eisìdou sumboloseir c sth metablht yytext thn TopojeteÐ akoloujða qarakt rwn (lexeme) antðstoiqh N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

25 UlopoÐhsh LA me to flex (ii) Dom tou metaprogr mmatoc A Mèroc %% B Mèroc %% Mèroc G Kai ta trða mèrh mporoôn na eðnai ken N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

26 ekfr sewn kanonik n arqik n katast sewn Dhl seic UlopoÐhsh LA me to flex (iii) A, perièqei Mèroc ìpwc sth C Sqìlia, C, mèsa se %{ kai %} K dika onìmata wc suntomografðec Mnhmonik N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

27 UlopoÐhsh LA me to flex (iv) A, par deigma Mèroc %{ #define T_eof 0 #define T_id 1... #define T_while 52 void ERROR (const char msg []); %} L [A-Za-z] /* letters */ D [0-9] /* digits */ W [ \t\n] /* white space */ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

28 LeitourgÐa: to makrôtero prìjema thc Diab zetai UlopoÐhsh LA me to flex (v) Mèroc B, perièqei kanìnec thc morf c enèrgeia enèrgeia eðnai mia entol thc C K je kanonik èkfrash eisìdou pou mporeð na sumboloseir c apì k poia kanonik èkfrash anagnwristeð EkteleÐtai h antðstoiqh enèrgeia N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

29 UlopoÐhsh LA me to flex (vi) Kanonikèc ekfr seic a O qarakt rac a.. Opoiosd pote qarakt rac ektìc thc allag c gramm c. \x An x èna apì ta a, b, f, n, r, t, v 0, tìte sth C, alli c o Ðdioc o qarakt rac x. ìpwc O qarakt rac \123 me oktadik tim 123. ASCII O qarakt rac \x3f me dekaexadik tim 3F. ASCII "abc" H sumboloseir abc. 'Enac touc a, apì qarakt rec c. touc qarakt rec èwc z. apì 'Enac apì touc qarakt rec 'Enac a, èwc f, s. [abc] b [a-z] a [ac-fs] c N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

30 kanonik èkfrash r. Oi parenjèseic qrhsimopoioôntai H gia omadopoðhsh. UlopoÐhsh LA me to flex (vii) Kanonikèc ekfr seic (sunèqeia) [^a-z] 'Enac apì touc qarakt rec ektìc ìswn an koun sthn perioq a èwc z. {name} H kanonik èkfrash me mnhmonikì ìnoma name. rs H par jesh twn r kai s. r s H di zeuxh twn r kai s. r/s H kanonik èkfrash r all mìno an (r) akoloujeð h kanonik èkfrash s. N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

31 UlopoÐhsh LA me to flex (viii) Kanonikèc ekfr seic (sunèqeia) r* H r epanalamb netai mhdèn perissìterec forèc. r+ H r epanalamb netai mia perissìterec forèc. r? H r eðnai proairetik (epanalamb netai H r{7} epanalamb netai akrib c r forèc. 7 H r{3,5} epanalamb netai apì r èwc 3 forèc. 5 H r{4,} epanalamb netai r perissìterec 4 mhdèn mia for ). ^r H r$ all mìno sto tèloc miac gramm c. r forèc. H r all mìno sthn arq miac gramm c. N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

32 UlopoÐhsh LA me to flex (ix) ekfr seic (sunèqeia) Kanonikèc H <S>r all mìno ìtan h trèqousa arqik r <*>r <<EOF>> kat stash eðnai h S. <S 1,S 2,S 3 >r H r, all mìno ìtan h trèqousa ar- kat stash eðnai mia apì tic S qik 1, S 2 S 3. H r se opoiad pote arqik kat stash. To tèloc tou arqeðou eisìdou. N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

33 UlopoÐhsh LA me to flex (x) B, par deigma Mèroc "and" { return T_and; }... "while" { return T_while; } ":=" { return T_assign; } ":" { return T_colon; } {L}({L} {D} _)* { return T_id; } {D}+(\.{D}*(e\-?{D}+)?)? { return T_const; } {W}+ { /* nothing */ } "(*"([^*]+ \*+[^*)])*\*+")" { /* nothing */ }. { ERROR("illegal token"); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

34 UlopoÐhsh LA me to flex (xi) Mèroc G, perièqei k dika C Par deigma void ERROR (const char msg []) { fprintf(stderr, "ERROR: %s\n", msg); exit(1); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

35 UlopoÐhsh LA me to flex (xii) (sunèqeia) Par deigma int main () { int token; do { token = yylex(); printf("token=%d, lexeme=\"%s\"\n", token, yytext); } while (token!= T_eof); } return 0; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

36 UlopoÐhsh LA me to flex (xiii) ArÐjmhsh gramm n Par deigma: int lineno = 1; [ \t]+ { /* nothing */ } \n { lineno++; } void ERROR (const char msg []) { fprintf(stderr, "ERROR, line %d: %s\n", lineno, msg); exit(1); } Prìblhma: L joc arðjmhsh se sqìlia N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

37 UlopoÐhsh LA me to flex (xiv) katast seic Arqikèc %s Koinèc: %x Apokleistikèc: EnergoÐ kanìnec se k poia kat stash Met bash metaxô katast sewn: BEGIN(s) kat stash kat thn ènarxh leitourgðac Arqik LA: INITIAL tou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

38 UlopoÐhsh LA me to flex (xv) ArÐjmhsh gramm n (diìrjwsh) Par deigma: %x COMMENT "(*" { BEGIN(COMMENT); } <COMMENT>"*)" { BEGIN(INITIAL); } <COMMENT>\n { lineno++; } <COMMENT>"*" { /* nothing */ } <COMMENT>[^*\n]+ { /* nothing */ } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

39 A α Gl ssec qwrðc sumfrazìmena Grammatikèc qwrðc sumfrazìmena: / dexiìterh paragwg Aristerìterh (leftmost / derivation) rightmost dèntra Suntaktik trees) (parse S S L aabc L aabbc L acsbbbc L acbbbc L acabbc L acabac S R aabc R aaac R aabac R acsbbac R acsabac R acabac a A B c A b a c S B ε a N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

40 grammatik eðnai diforoômenh (ambiguous) Mia up rqoun dôo perissìtera suntaktik ìtan diforoômenhc grammatik c: Par deigma if (dangling if) xekrèmasto DiforoÔmenec grammatikèc (i) dèntra gia thn Ðdia paragìmenh sumboloseir kai gl ssec eggen c diforoômenec Grammatikèc ambiguous) (inherently stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 if c1 if c2 s1 else s2 kai h sumboloseir : N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

41 (ii) stmt grammatikèc DiforoÔmenec if cond stmt c1 if cond stmt else stmt if c1 ( if c2 s1 else s2 ) c2 s1 s2 stmt if c1 ( if c2 s1 ) else s2 if cond stmt c1 if cond stmt else stmt s2 c2 s1 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

42 ::= stouc kanìnec SÔmbolo termatik sômbola se gwniakèc Mh sômbola se eisagwgik Termatik gia omadopoðhsh Parenjèseic gia proairetik tm mata AgkÔlec kai + gia epan lhyh SÔmbola BNF/EBNF Backus-Naur Form Sumbolismìc p.q. expr parenjèseic, gia di zeuxh SÔmbolo Extended Backus-Naur Form N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

43 Suntaktik an lush me dôo trìpouc: Kataskeu zetai p nw proc ta k tw (top-down) Apì Suntaktikì dèntro (parse tree) dhlad xekin ntac apì th rðza kai proqwr ntac proc ta fôlla Apì k tw proc ta p nw (bottom-up) dhlad xekin ntac apì ta fôlla kai proqwr ntac proc th rðza N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

44 Top-down kai bottom-up από πάνω προς τα κάτω (top-down) 1 S από κάτω προς τα πάνω (bottom-up) 12 S a A B c a A B c A b a 6 A b 7 9 a 5 6 c S 8 B 2 c 5 S B 4 7 ε 9 a ε a 3 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

45 Bohjhtikèc ènnoiec SÔnola FIRST (i) sumboloseir α (T N) 'Estw sônolo FIRST(α) (T {ɛ }) perièqei To termatik sômbola apì ta opoða ta oi sumboloseirèc pou par gontai arqðzoun thn α apì An α ɛ, tìte ɛ FIRST(α) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

46 paragwg c to A mporeð na eðnai to teleutaðo An Bohjhtikèc ènnoiec SÔnola FOLLOW mh termatikì sômbolo A 'Estw sônolo FOLLOW(A) (T {EOF }) To (ii) ta termatik sômbola pou mporoôn perièqei akoloujoôn to A sth di rkeia miac na se mia paragwg, tìte sômbolo EOF FOLLOW(A) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

47 Upologismìc FIRST (i) FIRST(ɛ) ={ ɛ } FIRST(aβ) ={ a } ɛ FIRST(A) an FIRST(Aβ) =FIRST(A) tìte ɛ FIRST(A) an FIRST(Aβ) =(FIRST(A) {ɛ }) tìte FIRST(β) k je kanìna A α, prèpei gia FIRST(α) FIRST(A) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

48 Upologismìc FIRST (ii) Par deigma FIRST(E) = { id, ( } FIRST(T) = { id, ( } FIRST(F) = { id, ( } FIRST(E ) = { +,ɛ} FIRST(T ) = { *,ɛ} E TE E ɛ E + TE T FT T ɛ T * FT F ( E ) F id N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

49 Upologismìc FOLLOW (i) EOF FOLLOW(S) k je kanìna A αbβ gia (FIRST(β) {ɛ }) FOLLOW(B) an tìte ɛ FIRST(β) FOLLOW(A) FOLLOW(B) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

50 Upologismìc FOLLOW (ii) Par deigma FOLLOW(E) = { ), EOF } FOLLOW(T) = { +, ), EOF } FOLLOW(F) = { *, +, ), EOF } FOLLOW(E ) = { ), EOF } FOLLOW(T ) = { +, ), EOF } FIRST(E ) FIRST(T ) = { +,ɛ} = { *,ɛ} E TE E ɛ E + TE T FT T ɛ T * FT F ( E ) F id N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

51 for, anazht : K je aristerìtero kìmbo tou dèntrou ton den èqei akìma kataskeuasteð pou ìla ta paidi tou èqoun kataskeuasteð en SA bottom-up (i) H suntaktik an lush xekin apì ta fôlla Epanalamb nei mèqri na kataskeuasteð h rðza (reducing): h epilog twn kìmbwn El ttwsh ja apotelèsoun ta paidi enìc nèou pou kìmbou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

52 SA bottom-up (ii) B B D D D D r a. b r a. b r a. b S S r B B B B D B, D B B D a b D D D D r a. b r a. b N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

53 olðsjhshs-el ttwshc (shift-reduce) SA mia (arqik ken ) stoðba QrhsimopoioÔn topojetoôn sômbola thc grammatik c ìpou (shift): metafor enìc sumbìlou OlÐsjhsh thn eðsodo sthn koruf thc stoðbac apì (reduce): afaðresh apì thn El ttwsh SA bottom-up (iii) thc stoðbac tou dexioô mèlouc enìc koruf kai prìsjesh tou aristeroô mèlouc kanìna h stoðba perièqei mìno to S kai EpituqÐa: sômbola thc eisìdou èqoun exantlhjeð ta N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

54 SA bottom-up (iv) 0 ɛ ra,b 2 ra,b D a 1 r, b 3 r D,b B D 4 r B,b shift/reduce conflict el ttwsh (ìqi me B) olðsjhsh me el ttwsh me el ttwsh S r 6 r B,b ɛ D b 5 r B, b 7 r B, D ɛ B B, D el ttwsh B D) (ìqi me 8 r B ɛ el ttwsh me S r B reduce/reduce 9 S anagn rish ɛ conflict N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

55 SA bottom-up (v) LR(k) συµβολοσειρά εισόδου LR(0) SLR(1) LALR(1) LR(1) s m x m... κορυφή a 1 a 2... a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

56 sun rthsh yyparse ulopoieð to SA H 0 an anagnwristeð h Epistrèfei UlopoÐhsh SA me to bison(i) MetaergaleÐo bison: genn torac SA LALR(1) metaprìgramma pou perigr fei th EÐsodoc: kai tic shmasiologikèc routðnec sôntaxh 'Exodoc: prìgramma se C eisìdou 1 se perðptwsh sumboloseir sf lmatoc suntaktikoô me to lektikì analut Sunerg zetai yylex) (sun rthsh N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

57 UlopoÐhsh SA me to bison(ii) Dom tou metaprogr mmatoc A Mèroc %% B Mèroc %% Mèroc G Kai ta trða mèrh mporoôn na eðnai ken N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

58 UlopoÐhsh SA me to bison(iii) A, perièqei Mèroc ìpwc sth C Sqìlia, C, mèsa se %{ kai %} K dika lektik n mon dwn Dhl seic telest n thc arqik c gl ssac Dhl seic prosetairistikìthta) (proteraiìthta, tou sunìlou shmasiologik n tim n D lwsh YYSTYPE me qr sh tou %union) (tôpoc tou D lwsh thc shmasiologik c tim c k je tôpou sumbìlou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

59 UlopoÐhsh SA me to bison(iv) A, par deigma Mèroc %{ void ERROR (const char msg []); %} %token T_program "program" %token T_div T_mod %token T_if T_then T_else %nonassoc = < > %left + - %left * / T_div T_mod N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

60 UlopoÐhsh SA me to bison(v) A, par deigma (sunèqeia) Mèroc %union{ int i; double f; char str[80]; } %token<str> T_id %token<i> T_int_const %token<f> T_float_const %type<f> expression N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

61 UlopoÐhsh SA me to bison(vi) B, perièqei: Mèroc kanìnec paragwg c se morf BNF touc routðnec pou ekteloôntai shmasiologikèc th suntaktik an lush kat kanìnec èqoun th morf : Oi A : x 1 1 x x 1 m 1 x 2 1 x x2 m 2... x n 1 x n 2... x n m n ; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

62 lektikoô analut tou suntaktikoô analut tou pðnaka sumbìlwn tou shmasiologikoô analut tou UlopoÐhsh SA me to bison(vii) Mèroc G, perièqei k dika C metaprìgramma tou bison analamb nei ton To èlegqo tou metaglwttist pou kentrikì me th sunergasða twn epitugq netai parak tw: tou genn tora endi mesou k dika N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

63 program : { count=0; } block_list { printf("counted %d block(s)\n", count); } ; UlopoÐhsh SA me to bison(viii) Mèroc B, par deigma block_list : /* nothing */ block_list block { count++; } ; block : "begin" block_list "end" ; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

64 UlopoÐhsh SA me to bison(ix) Mèroc G, par deigma void yyerror (const char * msg) { fprintf(stderr, "syntax error in line %d: %s\n", linecount, msg); exit(1); } int main () { return yyparse(); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

65 UlopoÐhsh SA me to bison(x) me shmasiologikèc timèc Par deigma E T E E + T T F T T * F F ( E ) F num na kataskeuasteð SA pou na ZhtoÔmeno: thn tim miac arijmhtik c èkfrashc upologðzei N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

66 UlopoÐhsh SA me to bison(xi) (sunèqeia) Par deigma %{ typedef int YYSTYPE; %} %token T_num %% program : expression { printf("value: %d\n", $1); } ; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

67 UlopoÐhsh SA me to bison(xii) (sunèqeia) Par deigma expression : term { $$ = $1; } expression + term { $$ = $1 + $3; } ; term : factor { $$ = $1; } term * factor { $$ = $1 * $3; } ; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

68 UlopoÐhsh SA me to bison(xiii) (sunèqeia) Par deigma factor : ( expression ) { $$ = $2; } T_num { $$ = $1; } ; %% ParaleÐpontai sto Mèroc G: sun rthsh yylex (pijan c se xeqwristì h an qrhsimopoihjeð to flex) arqeðo, oi sunart seic yyerror kai main N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

69 UlopoÐhsh SA me to bison(xiv) UlopoÐhsh LA qeirwnaktik Par deigma int yylex () { int c; while (isspace(c = fgetc(stdin))); if (isdigit(c)) { yylval = c - 0 ; while (isdigit(c = fgetc(stdin))) yylval = yylval * 10 + c - 0 ; ungetc(c, stdin); return T_num; Sto mèroc G } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

70 UlopoÐhsh SA me to bison(xv) (sunèqeia) Par deigma if (strchr("+*()", c)) return c; if (c!= EOF) fprintf(stderr, "Illegal character: %c\n", c); return 0; } mytest1: mytest1.y bison mytest1.y gcc -o mytest1 mytest1.tab.c Makefile AutomatopoÐhsh thc metagl ttishc tou SA N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

71 UlopoÐhsh SA me to bison(xvi) UlopoÐhsh LA me to flex Par deigma %{ #include "mytest2.tab.h" %} %% [0-9]+ { yylval = atoi(yytext); return T_num; } \( \) \+ \* { return yytext[0]; } [ \t\n]+ { /* nothing */ }. { yyerror("illegal character"); } %% mytest2.l N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

72 UlopoÐhsh SA me to bison(xvii) AutomatopoÐhsh thc metagl ttishc LA kai SA mytest2: mytest2.l mytest2.y bison -d mytest2.y Makefile flex -s mytest2.l gcc -o mytest2 mytest2.tab.c lex.yy.c \ -lfl EpÐlush sugkroôsewn sto bison shift-reduce: p nta reduce reduce-reduce: o pr toc kanìnac N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

73 for, anazht : K je mh termatikì sômbolo pou ja to SA top-down (i) H suntaktik an lush xekin apì th rðza antikatastajeð sun jwc epilègetai to aristerìtero kanìna paragwg c pou ja efarmosteð ton b sei twn epìmenwn lektik n mon dwn k sth sumboloseir eisìdou: LL(k) mèqri na exantlhjoôn ta mh Epanalamb netai termatik N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

74 proôpojèseic: AparaÐthtec arister c anadrom c ( meshc ApousÐa èmmeshc) koinoô projèmatoc se ApousÐa Grammatikèc LL(1) enallaktikoôc kanìnec forèc eðnai dunatìc o Merikèc miac grammatik c se metasqhmatismìc LL(1) isodônamh apaloif arister c anadrom c arister paragontopoðhsh N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

75 Metasqhmatismìc se LL(1) Antikat stash α A 1... α n B β 1 Aβ 2 A α 1... α n B β 1 α 1 β 2... β 1 α n β 2 Arister paragontopoðhsh αβ A 1... αβ n αb A β B 1... β n meshc arister c anadrom c Apaloif Aα A 1... Aα n β 1... β m β A 1... β B m B α B 1... α B n ɛ B N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

76 α 1... α n SA anadromik c kat bashc A metatrèpetai se k dika thc morf c: token FIRST(α an 1 tìte ) gia thn anagn rish thc α k dikac 1... alli c an token FIRST(α n ) tìte k dikac gia thn anagn rish thc α n alli c an ɛ FIRST(α 1 )... FIRST(α n ) tìte suntaktikì sf lma alli c an token FOLLOW(A) tìte suntaktikì sf lma tèloc an N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

77 for exet zetai h koruf thc stoðbac: K je eðnai termatikì sômbolo kai eðnai to Ðdio An SA LL(1) (i) mia stoðba ìpou topojetoôn QrhsimopoioÔn thc grammatik c arqik mìno to S sômbola to epìmeno thc sumboloseir c eisìdou, me afairoôntai kai ta dôo tìte eðnai mh termatikì sômbolo, tìte An me to epìmeno thc sumboloseir c an loga eisìdou efarmìzetai k poioc kanìnac h stoðba kai h sumboloseir eisìdou EpituqÐa: deiec eðnai N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

78 SA LL(1) (ii) συµβολοσειρά εισόδου algìrijmoc O tou kataskeu c M orðzei pðnaka oikogèneia thn a 1 a 2... a n EOF επόµενο σύµβολο glwss n twn LL(1) x m... κορυφή Πίνακας M συντακτικής ανάλυσης LL(1) x 2 x 1 στοίβα Συντακτικός Αναλυτής LL(1) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

79 E TE E + TE ɛ T FT T * FT ɛ F ( E ) id FIRST(E) = FIRST(T) = FIRST(F) = { id, ( } FIRST(E ) = { +,ɛ} FIRST(T ) = { *,ɛ} FOLLOW(E) = FOLLOW(E ) = { ), EOF } FOLLOW(T) = FOLLOW(T ) = { +, ), EOF } FOLLOW(F) = { *, +, ), EOF } Kataskeu SA LL(1) id + * ( ) EOF E E TE E TE E E +TE E ɛ E ɛ T T FT T FT T T ɛ T *FT T ɛ T ɛ F F id F (E) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

80 SA LeitourgÐa anagn rish LL(1) 0 E id + id * id EOF E TE 1 E T id + id * id EOF T FT 2 E T F id + id * id EOF F id 3 E T id id + id * id EOF 4 E T +id*ideof T ɛ 5 E +id*ideof E + TE 6 E T + + id * id EOF 7 E T id * id EOF T FT 8 E T F id * id EOF F id 9 E T id id * id EOF 10 E T *ideof T * FT 11 E T F * * id EOF 12 E T F id EOF F id 13 E T id id EOF 14 E T EOF T ɛ 15 E EOF E ɛ 16 ɛ EOF N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

81 k je kìmbou paidi n kathgor mata: oi timèc KlhronomoÔmena Kathgorikèc grammatikèc (i) grammatik (attribute grammar): Kathgorik qwrðc sumfrazìmena ìpou k je grammatik sômbolo fèrei èna sônolo kathgorhm twn timèc twn kathgorhm twn upologðzontai Oi tou suntaktikoô dèntrou: b sei kathgor mata: oi timèc touc Sunjetik mìno apì kathgor mata twn exart ntai exart ntai mìno apì kathgor mata touc fipatèrafl kai twn fiadelf nfl k je kìmbou tou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

82 (ii) E E + T { E 1.val := E 2.val + T.val } grammatikèc Kathgorikèc E T { E.val := T.val } T T * F { T 1.val := T 2.val F.val } T F { T.val := F.val } F ( E ) { F.val := E.val } F num { F.val := num.val } ShmasiologikoÐ kanìnec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

83 PÐnakac sumbìlwn eðnai: Onìmata prìgramma to metablhtèc oi upoprogr mmata (diadikasðec, sunart seic) ta par metroi twn upoprogramm twn oi etikèttec entol n oi stajerèc oi tôpoi dedomènwn oi plhroforðec gia ta onìmata pou Sugkentr nei sto arqikì prìgramma emfanðzontai N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

84 Qarakthristik onom twn apoj keushc (storage class) KathgorÐa metablhtèc (global variables) Kajolikèc stoðbac (stack variables) Metablhtèc metablhtèc (static variables) Statikèc Embèleia (scope) Oratìthta (visibility) Di rkeia zw c (lifetime) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

85 Perieqìmena pðnaka sumbìlwn Embèleia (èmmesa) Oratìthta (èmmesa) Di rkeia zw c TÔpoc Jèsh (dieôjunsh mn mhc, kataqwrht c,...) Arijmìc paramètrwn upoprogr mmatoc TÔpoc paramètrwn upoprogr mmatoc Trìpoc per smatoc paramètrwn upoprogr mmatoc TÔpoc apotelèsmatoc sun rthshc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

86 Org nwsh pðnaka sumbìlwn leitourgðec Basikèc onìmatoc Prosj kh onìmatoc Anaz thsh onìmatoc om dac onom twn Diagraf prosj khc anaz thshc an loga me Kìstoc ulopoðhsh: thn O(n) lðsta grammik dèntro anaz thshc O(log n) duadikì katakermatismoô O(n/k) pðnakac N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

87 UlopoÐhsh me PK b 0 c εµβέλεια 3 1 x 2... k 2 a aa y c b εµβέλεια 2 εµβέλεια k 1 a 1 πίνακας κατακερµατισµού στοίβα αποθήκευσης στοίβα εµβελειών N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

88 SÔntaxh kai shmasiologða thc metagl ttishc di rkeia shmasiologða: apìdosh ermhneðac Dunamik morf kai dom twn kal c SÔntaxh: programm twn sqhmatismènwn ermhneða twn kal c ShmasiologÐa: programm twn sqhmatismènwn shmasiologða: entopismìc Statik sfalm twn kat th shmasiologik n sta progr mmata kat thn ektèles touc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

89 Statik shmasiologða (i) tôpwn Perib llonta Γ 1 = { i integer, x real } antistoðqishc tôpwn Sqèsh Γ E : τ tôpwn Kanìnec Γ E 1 : integer Γ E 2 : integer Γ E 1 +E 2 : integer N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

90 Statik shmasiologða (ii) Γ 1 i : integer Γ 1 1 : integer Γ 1 i+1 : integer Γ 1 (i+1)*x : real Γ 1 x : real Paragwgèc tôpwn antistoðqish tôpwn me kanìnec tôpwn H se ìla ta tm mata progr mmatoc epekteðnetai Γ E : boolean Γ S : stmt Γ while E do S : stmt N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

91 Dunamik shmasiologða (i) shmasiologða (operational semantics) Leitourgik akoloujða upologistik n bhm twn shmasiologða (denotational semantics) Dhlwtik majhmatik sun rthsh apì to pedðo twn eisìdou sto pedðo twn dedomènwn apotelesm twn shmasiologða (axiomatic semantics) Axiwmatik h ermhneða kajorðzetai èmmesa mèsw prot sewn pou perigr foun logik n tou progr mmatoc idiìthtec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

92 (ii) Dunamik shmasiologða H entol an jeshc I=E shmasiologða Leitourgik E,σ v I=E,σ σ[i v] shmasiologða Dhlwtik C[[ I=E ]](s) = s[i E[[ E ]](s)] shmasiologða Axiwmatik { P [I E] } I=E { P } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

93 Shmasiologikìc èlegqoc 'Elegqoc tôpwn 'Elegqoc ro c 'Elegqoc Ôparxhc onom twn 'Elegqoc monadikìthtac 'Elegqoc sunèpeiac N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

94 SÔsthma tôpwn tôpoi SÔnjetoi (arrays) PÐnakec (products) kai plei dec (tuples) ZeÔgh (records) Eggrafèc (pointers) DeÐktec (functions) Sunart seic (i) BasikoÐ tôpoi (integer, boolean, real, char,...) TÔpoi pr thc t xhc (first class) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

95 SÔsthma tôpwn (ii) Metatropèc tôpwn (type casting) Uperfìrtwsh telest n (operator overloading) PolumorfikoÐ telestèc (polymorphic operators) UposÔnola tôpwn kai upo-tôpoi (subtypes) sust mata tôpwn Polumorfik (polymorphictypesystems) kai dunamik antistoðqish tôpwn Statik binding) (type Exagwg tôpwn (type inference) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

96 Dunamikìc èlegqoc tôpwn ìtan up rqei Epib lletai antistoðqish tôpwn dunamik forèc ìmwc apaiteðtai kai se Pollèc antistoðqish tôpwn, p.q. èlegqoc statik orðwn se arrays thc Pascal: a[i] := 42 an i 0 kai i 100 tìte k dikac gia thn an jesh tou 42 sto a[i] alli c ektèleshc sf lma an tèloc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

97 'Elegqoc kai exagwg tôpwn tôpwn (type checking) 'Elegqoc Γ, E, τ DÐnontai: h paragwg Γ E : τ ZhteÐtai: gðnetai an den up rqei? TÐ tôpwn (type inference) Exagwg Γ, E DÐnontai: τ kai h paragwg Γ E : τ ZhteÐtai: gðnetai an den up rqoun? TÐ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

98 Exagwg tôpwn (i) metasqhmatismìc tou probl matoc Idèa: Γ :?se èna sônolo exis sewn E autì èqei lôsh, brðskoume èna τ tètoio ste An Γ E : τ den up rqei τ tètoio ste Diaforetik Γ E : τ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

99 Exagwg tôpwn (ii) twn tôpwn me metablhtèc tôpwn Epèktash τ ::= int bool τ τ α tôpwn (type substitution): Antikat stash metablht n tôpwn se tôpouc apeikìnish σ = [α int,β bool α] antikat stashc tôpwn: tautìqrona Efarmog mða for kai σ(α) = int σ(β) = bool α σ(β γ) = (bool α) γ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

100 Exagwg tôpwn (iii) antikatast sewn σ SÔnjesh 1 σ 2 ste ètsi (σ 1 σ 2 )(τ) =σ 1 (σ 2 (τ)) paraleðpontai oi tôpoi sto arqikì 'Opou sumplhr noume me frèskec prìgramma, metablhtèc let f g x = g x (x + 1) and m a b = a * b gðnetai: let f (g (x = g x (x + 1) and m (a (b = a * b N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

101 Exagwg tôpwn (iv) prìblhma Γ E :?an getai sthn eôresh To antikat stashc σ kai enìc tôpou τ ste miac σ(γ) σ(e) :τ Par deigma let f (g (x = g x (x + 1) and m (a (b = a * b in f m 6 Perib llon gia ìlh thn èkfrash: Γ= Perib llon gia to s ma f m 6: Γ b = @6 } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

102 Exagwg tôpwn (v) (sunèqeia) Par deigma let f (g (x = g x (x + 1) and m (a (b = a * b in f m 6 lôsh (h monadik ) Mia σ = int int int ] τ = int oi lôseic den eðnai monadikèc! Genik let f (x = x N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

103 Exagwg tôpwn (vi) P c brðsketai h lôsh? Periorismìc (constraint): exðswsh tôpwn τ 1 = τ 2 1: eôresh sunìlou periorism n C Prìblhma let f (g (x = g x (x + 1) and m (a (b = a * b in f m 6 sto sônolo periorism n: odhgeð C = @2 = = = = @2 = int } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

104 Exagwg tôpwn (vii) tôpwn me periorismoôc Paragwg Γ E : τ C Prìblhma 2: epðlush sunìlou periorism n antikat stash σ lègetai enopoiht c Mia gia ton periorismì τ (unifier) 1 = τ 2 oi tôpoi an σ(τ 1 kai ) σ(τ 2 tautðzontai ) σ(τ 1 ) σ(τ 2 ) gia to prìblhma thc exagwg c tôpwn: LÔsh enopoiht c σ gia k je periorismì tou C ènac o tôpoc τ = σ(τ ) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

105 Exagwg tôpwn (viii) unify( ) =σ 0 unify({ τ 1 = τ 2 } C) = {h ken antikat stash} EnopoÐhsh: epðlush sunìlou periorism n τ an 1 τ 2 tìte unify(c) an τ alli c 1 kai den emfanðzetai sto α τ 2 tìte unify([α τ 2 ]C) [α τ 2 ] an τ alli c 2 kai den emfanðzetai sto α τ 1 tìte unify([α τ 1 ]C) [α τ 1 ] an τ alli c 1 τ 11 τ 12 τ kai 2 τ 21 τ 22 tìte unify(c {τ 11 = τ 21,τ 12 = τ 22 }) alli c h enopoðhsh apotugq nei N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

106 Endi mesoc k dikac Ôparxhc Lìgoi to èrgo thc met frashc DieukolÔnei th beltistopoðhsh DieukolÔnei thn kat tmhsh se emprìsjio DieukolÔnei (i) kai opðsjio tm ma N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

107 Endi mesoc k dikac (ii) odhgoômenh apì th sôntaxh Met frash translation) (syntax-directed k je dom thc gl ssac prosdiorðzetai Gia antðstoiqoc endi mesoc k dikac o o suntaktikìc analut c me DieurÔnetai routðnec pou par goun shmasiologikèc endi meso k dika Sqèdio paragwg c endi mesou k dika idiot twn (attributes) gia k je Metablhtèc thc grammatik c sômbolo N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

108 Endi mesh gl ssa (i) (quadruples) Tetr dec n: op, x, y, z Par deigma: 1:, b, b, $1 2:, 4, a, $2 3:, $2, c, $3 4:, $1, $3, $4 b*b-4*a*c N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

109 Endi mesh gl ssa (ii) (triples) Tri dec n: op, x, y Par deigma: 1:, b, b 2:, 4, a 3:, (2), c 4:, (1), (3) b*b-4*a*c N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

110 Endi mesh gl ssa (iii) suntaktik dèntra Afhrhmèna (abstract trees) syntax Par deigma: b*b-4*a*c * * b b * c 4 a N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

111 Endi mesh gl ssa (iv) kai epijematikìc k dikac Projematikìc code) (prefix/postfix Par deigma: bb 4ac bb 4a c b*b-4*a*c projematikìc epijematikìc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

112 Endi mesh gl ssa (v) akuklikoð gr foi Kateujunìmenoi (directed graphs) acyclic Par deigma: b+(a+1)*(a+1)+c-(a+1)*(a+1)+2/(a+1) + + / / + * c + + a 1 + c b * a 1 a 1 b * a 1 a 1 a 1 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

113 Gl ssa tetr dwn ìpou: etikèta tetr dac (fusikìc arijmìc) n: tetr dac: Morf n: op, x, y, z op: telest c x, y, z: teloômena me to eðdoc tou telest, k poia An loga endeqomènwc paraleðpontai teloômena N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

114 TeloÔmena Stajer pragmatik, logik akèraia, 'Onoma paramètroc, upoprìgramma metablht, (i) qarakt rac, sumboloseir, nil Proswrin metablht : $n Apodeiktodìthsh: [x] DieÔjunsh: {x} x aplì teloômeno x aplì teloômeno Apotèlesma sun rthshc: $$ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

115 TeloÔmena Etikèta sto arqikì prìgramma entol c (ii) tetr dac per smatoc Trìpoc : kat' axða V : kat' anafor R : jèsh apotelèsmatoc sun rthshc RET Kenì : Proswrin kenì : * (gia backpatching) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

116 (i) unit, I,, Telestèc endu, I,, arq kai tèloc domik c mon dac op, x, y, z op {+, -, *, /, %} z := x op y :=, x,, z z := x array, x, y, z z := h dieôjunsh tou stoiqeðou x[y] N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

117 Telestèc (ii) op, x, y, z op {=, <>, >, <, >=, <=} an x op y tìte p gaine sthn tetr da z ifb, x,, z h logik tim x eðnai alhj c tìte p gaine an tetr da z sthn jump,,, z p gaine sthn tetr da z label, I,, jumpl,,, I orismìc etikètac kai lma proc aut n N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

118 (iii) call,,, I Telestèc k lese th domik mon da I par, x, m, thn pragmatik par metro x me trìpo pèrase m per smatoc ret,,, epistrof apì thn trèqousa domik mon da N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

119 : lðsta apì etikètec tetr dwn pou NEXT lmata sthn epìmenh entol perièqoun ektelesteð an mia sunj kh eðnai alhj c na yeud c idiot twn PLACE Metablhtèc jèsh ìpou brðsketai apojhkeumènh h : miac l-value miac r-value tim TYPE : tôpoc miac l-value miac r-value, TRUE : lðstec apì etikètec tetr dwn FALSE perièqoun lmata ston k dika pou prèpei pou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

120 (i) NEXTQUAD() Bohjhtikèc uporoutðnec ton arijmì thc epìmenhc tetr dac Epistrèfei GENQUAD(op, x, y, z) thn epìmenh tetr da op, x, y, z Genn NEWTEMP(t) mia nèa proswrin metablht DhmiourgeÐ t tôpou EMPTYLIST() DhmiourgeÐ mia ken lðsta etiket n tetr dwn N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

121 (ii) MAKELIST(x) Bohjhtikèc uporoutðnec mia lðsta etiket n tetr dwn pou DhmiourgeÐ mìno to stoiqeðo x perièqei MERGE(l 1,...,l n ) twn list n etiket n tetr dwn Sunènwsh l 1...l n BACKPATCH(l, z) se ìlec tic tetr dec pou Antikajist sthn l thn gnwsth etikèta perièqontai tetr dac me th z (backpatching) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

122 Arijmhtikèc ekfr seic Akèraiec stajerèc r-value ::= integer-const {P 1 } P 1 : { r-value.place = integer-const ; } Telestèc me dôo teloômena r-value ::= expr binop expr {P 14 } P 14 : { W =NEWTEMP( r-value.type); GENQUAD( binop.name, expr 1.PLACE, expr 2.PLACE, W ); r-value.place = W ; } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

123 (i) <cond>... jump,,, jump,,, jump,,, jump,,, jump,,, Logikèc ekfr seic <cond>.false <cond>.true N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

124 Logikèc ekfr seic (ii) ekfr seic se sumbolismì 0/1 Logikèc cond ::= expr <cond> <expr> ifb, <expr>.place,, * ju mp,,, * FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

125 Logikèc ekfr seic (iii) ekfr seic se sumbolismì 0/1 Logikèc cond ::= expr {P 21 } P 21 : { cond.true = MAKELIST(NEXTQUAD()); GENQUAD(ifb, expr.place,, ); cond.false = MAKELIST(NEXTQUAD()); GENQUAD(jump,,, ); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

126 Logikèc ekfr seic (iv) Telestèc sôgkrishc cond ::= expr 1 relop expr 2 <cond> <expr> 1 <expr> 2 relop, <expr> 1.PLAC E, <expr> 2.PLAC E, * ju mp,,, * FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

127 Logikèc ekfr seic (v) Telestèc sôgkrishc cond ::= expr 1 relop expr 2 { P 23 } P 23 : { cond.true = MAKELIST(NEXTQUAD()); GENQUAD( relop.name, expr 1.PLACE, expr 2.PLACE, ); cond.false = MAKELIST(NEXTQUAD()); GENQUAD(jump,,, ); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

128 Logikèc ekfr seic (vi) 'Arnhsh cond ::= not cond <cond> TRUE <cond> FALSE FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

129 Logikèc ekfr seic (vii) SÔzeuxh cond ::= cond 1 and cond 2 <cond> FALSE <cond> 1 TRUE FALSE <cond> 2 TRUE FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

130 Logikèc ekfr seic (viii) SÔzeuxh cond ::= cond 1 and { P 25 } cond 2 { P 26 } P 25 : { BACKPATCH( cond 1.TRUE, NEXTQUAD()); } P 26 : { cond.false =MERGE( cond 1.FALSE, cond 2.FALSE ); cond.true = cond 2.TRUE; } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

131 Aplèc entolèc Ken entol stmt ::= ɛ { P 29 } P 29 : { stmt.next =EMPTYLIST(); } Entol an jeshc stmt ::= l-value := expr {P 30 } P 30 : { GENQUAD( :=, expr.place,, l-value.place ); stmt.next = EMPTYLIST(); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

132 (i) stmt ::= block SÔnjeth entol block ::= begin stmt ( ; stmt ) end <block> <stmt> 1 NEXT <stmt> 2 NEXT NEXT N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

133 (ii) stmt ::= block {P 34 } SÔnjeth entol P 34 : { stmt.next = block.next ; } block ::= begin stmt 1 { P 35 } ( ; { P 36 } stmt 2 { P 37 } ) end { P 38 } P 35 : { L = stmt 1.NEXT ; } P 36 : { BACKPATCH(L, NEXTQUAD()); } P 37 : { L = stmt 2.NEXT ; } P 38 : { block.next = L; } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

134 Entol if (i) stmt ::= if cond then stmt [ else stmt ] <stmt> FALSE <cond> TRUE <stmt> TRUE <cond> FALSE <stmt> 1 jump,,, * NEXT <stmt> 1 NEXT <stmt> 2 NEXT NEXT NEXT N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

135 Entol if (ii) stmt ::= if cond {P 39 } then stmt 1 [ else { P 40 } stmt 2 { P 41 } ] { P 42 } P 39 : { BACKPATCH( cond.true, NEXTQUAD()); L 1 = cond.false ; L 2 = EMPTYLIST(); } P 40 : { L 1 = MAKELIST(NEXTQUAD()); GENQUAD(jump,,, ); BACKPATCH( cond.false, NEXTQUAD()); } P 41 : { L 2 = stmt 2.NEXT ; } P 42 : { stmt.next =MERGE(L 1, stmt 1.NEXT, L 2 ); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

136 Entol while (i) stmt ::= while cond do stmt <stmt> FALSE <cond> TRUE <stmt> 1 ju mp,,, * NEXT NEXT N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

137 Entol while (ii) stmt ::= while { P 43 } cond do { P 44 } stmt 1 { P 45 } P 43 : { Q = NEXTQUAD(); } P 44 : { BACKPATCH( cond.true, NEXTQUAD()); } P 45 : { BACKPATCH( stmt 1.NEXT, Q); GENQUAD(jump,,, Q); stmt.next = cond.false ; } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

138 (i) call ::= id ( [ expr (, expr ) ] ) upoprogramm twn Kl sh r-value ::= call stmt ::= call Pèrasma paramètrwn me tetr dec par jèshc apotelèsmatoc me tetr da par Pèrasma prìkeitai gia sun rthsh an Kl sh me tetr da call N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

139 (ii) call ::= id ( { P Kl sh upoprogramm twn 46 } [ expr 1 { P 47 } (, expr 2 { P 48 } ) ] ) { P 49 } P 46 : { N =1; } P 47 : { GENQUAD( par, expr 1.PLACE, PARAMMODE( id, N ), ); N = N +1; } P 48 : { GENQUAD( par, expr 2.PLACE, PARAMMODE( id, N ), ); N = N +1; } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

140 (iii) call ::= id ( { P Kl sh upoprogramm twn 46 } [ expr 1 { P 47 } (, expr 2 { P 48 } ) ] ) { P 49 } (sunèqeia) P 49 : { if (ISFUNCTION( id )) { W = NEWTEMP(FUNCRESULT( id )); GENQUAD(par, RET, W, ); call.place = W ; } GENQUAD(call,,, id ); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

141 Kl sh upoprogramm twn (iv) Kl sh sun rthshc r-value ::= call {P 50 } P 50 : { r-value.place = call.place; } Kl sh diadikasðac stmt ::= call {P 51 } P 51 : { stmt.next =EMPTYLIST(); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

142 Kl sh upoprogramm twn (v) Epistrof apì upoprìgramma stmt ::= return [ expr {P 52 } ] { P 53 } P 52 : { GENQUAD(retv, expr.place,, ); } P 53 : { GENQUAD(ret,,, ); } D lwsh upoprogr mmatoc body ::= ( local ) { P 56 } block ; { P 57 } P 56 : { GENQUAD(unit, I,, ); } P 57 : { BACKPATCH( block.next, NEXTQUAD()); GENQUAD(endu, I,, ); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

143 telikoô k dika: Morfèc mhqan c se apìluth morf (absolute) Gl ssa gl ssa (assembly) Sumbolik gl ssa qamhloô epipèdou 'Allh Telikìc k dikac (i) jewrhtik c poyhc, to prìblhma thc Apì bèltistou telikoô k dika den èqei kataskeu c lôsh (undecidable) mhqan c se epanatopojet simh kai Gl ssa morf (relocatable, linkable) diasundèsimh N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

144 Telikìc k dikac probl mata: Epimèrouc entol n Epilog entol n thc mn mhc sto qrìno ektèleshc DiaqeÐrish (ii) P c metafr zetai k je entol tou k dika endi mesou P c metafr zontai akoloujðec tètoiwn PoÔ apojhkeôontai ta dedomèna P c gðnetai h epikoinwnða an mesa stic domikèc mon dec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

145 Qarakthristik : Intel 8086 Epexergast c: Telikìc upologist c (i) sôsthma: MS-DOS Leitourgikì mn mhc: COM / tiny Montèlo Sunolik mn mh 64 K Org nwsh se èna segment Arqik dieôjunsh tou progr mmatoc h 100h gl ssa: sumbat me to Sumbolik MASM (Microsoft sumbolometafrast assembler) macro N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

146 (ii) Telikìc upologist c Kataqwrhtèc, megèjouc 16 bit Genik c fôshc: ax, bx, cx, dx se zeôgh twn 8 bit: ah, al, k.lp. deðktec: sp (deðkthc stoðbac) Kataqwrhtèc bp (deðkthc b shc) kai anafor c: si kai di Kataqwrhtèc tmhm twn: cs (code), ds Kataqwrhtèc ss (stack) kai es (extra) (data), kataqwrhtèc: ip (instruction EidikoÐ pointer) kai kataqwrht c shmai n (flags) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

147 Telikìc upologist c (iii) DieujÔnseic: address = segment 16 + offset Morf entol c: [ label ] opname [ operand 1 [, operand 2 ]] N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

148 Telikìc upologist c (iv) Entolèc: mov, lea Metafor c: pr xewn: add, sub, neg, imul, Arijmhtik n cmp, cwd idiv, pr xewn: and, or, xor, not, test Logik n jmp, jz, jnz, jl, jle, jg, jge 'Almatoc: stoðbac: push, pop DiaqeÐrishc call, ret Upoprogramm twn: Pr xewn kinht c upodiastol c (x87 FPU) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

149 metafor c mov destination, source Entolèc mov ax, 42 mov ax, bx mov ax, [1000h] mov ax, [si] mov ax, [si + 6] mov ax, [bp + 6] mov ax, [si + bp + 6] lea destination, source (move) (load effective address) megèjouc dedomènwn Kajorismìc mov ax, word ptr [bp + 6] mov al, byte ptr [bp + 6] N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

150 pr xeic add op Arijmhtikèc 1, op 2 op 1 := op 1 + op 2 sub op 1, op 2 op 1 := op 1 op 2 neg op imul op idiv op cwd op := op (dx, ax) :=ax op ax := (dx, ax) div op dx := (dx, ax) mod op cmp op 1, op 2 sôgkrine ta op 1 kai op 2 epèktash pros mou tou ax ston dx enhmèrwse tic shmaðec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

151 pr xeic and op Logikèc 1, op 2 op 1 := op 1 and op 2 or op 1, op 2 op 1 := op 1 or op 2 not op op := not op xor op 1, op 2 op 1 := op 1 xor op 2 test op 1, op 2 op 1 and op 2 enhmèrwse tic shmaðec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

152 lmatoc jmp address Entolèc jz address je address jnz address jne address jl address jle address jg address jge address / Ðso mhdèn mhdèn / di foro ìqi mikrìtero Ðso mikrìtero megalôtero qwrðc sunj kh megalôtero Ðso N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

153 stoðbac push op Entolèc sth stoðba prìsjesh sp := sp 2, [sp] :=op pop op afaðresh apì th stoðba op := [sp], sp := sp +2 H stoðba aux nei proc ta k tw, dhlad proc mikrìterec dieujônseic N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

154 call address Entolèc upoprogramm twn sp := sp 2, [sp] :=ip, ip := address kl sh ret epistrof ip := [sp], sp := sp +2 H tim tou ip pou topojeteðtai sth stoðba apì call eðnai h dieôjunsh thc entol c pou thn thn call akoloujeð N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

155 Entolèc x87 FPU (i) Eidik stoðba 8 kataqwrht n: ST(0),... ST(7) fld source fld tbyte fild source fild word ptr [bp 2] fstp destination fld tbyte ptr [bp 10] fistp destination (load real & push) (load integer & push) (pop & store real) (pop & store integer) fild word ptr [bp 2] N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

156 Entolèc x87 FPU (ii) faddp ST(1), ST(0) fsubp ST(1), ST(0) fmulp ST(1), ST(0) fdivp ST(1), ST(0) fchs fcompp fstsw destination fstsw ax fstsw word ptr [bp 2] ST(1) :=ST(1) +ST(0) &pop ST(1) :=ST(1) ST(0) &pop ST(1) :=ST(1) ST(0) &pop ST(1) :=ST(1)/ST(0) &pop ST(0) := ST(0) ST(1) ST(0) &popboth (store x87 FPU flags) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

157 DiaqeÐrish mn mhc enot twn (block structure) Dom topik dedomèna Mh Par metroi Apotèlesma kat stashc mhqan c PlhroforÐec metablhtèc Topikèc (i) drasthriopoðhshc (activation Eggr fhma record) Proswrinèc metablhtèc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

158 (ii)... bp+8 Παράµετρος 1 DiaqeÐrish mn mhc Παράµετρος 2... Παράµετρος n Παράµετρος 1 Παράµετρος 2... Παράµετρος n Παράµετροι αρχή bp+6 ιεύθυνση αποτελέσµατος ιεύθυνση αποτελέσµατος bp+4 bp+2 bp bp-2 bp-4... Σύνδεσµος προσπέλασης ιεύθυνση επιστροφής Προηγούµενο bp Τοπική µεταβλητή 1 Τοπική µεταβλητή 2... Τοπική µεταβλητή m ιεύθυνση επιστροφής Προηγούµενο display Προηγούµενο bp Τοπική µεταβλητή 1 Τοπική µεταβλητή 2... Τοπική µεταβλητή m Σταθερό Τµήµα Τοπικές µεταβλητές βάση Προσωρινή µεταβλητή 1 Προσωρινή µεταβλητή 2... Προσωρινή µεταβλητή k Προσωρινή µεταβλητή 1 Προσωρινή µεταβλητή 2... Προσωρινή µεταβλητή k Προσωρινές µεταβλητές τέλος α) Σύνδεσµοι προσπέλασης β) Πίνακας δεικτών N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

159 (iii) Ε κύριου προγράµµατος Ε υποπρογράµµατος 1... Ε υποπρογράµµατος m DiaqeÐrish mn mhc στοίβα εκτέλεσης ελεύθερη µνήµη δυναµικό δεδοµένο k... σωρός δυναµικό δεδοµένο 1 µνήµη για αποθήκευση δεδοµένων συνολική διαθέσιµη µνήµη 64Κ µεταφρασµένος κώδικας µνήµη για αποθήκευση του κώδικα του προγράµµατος 0Κ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

160 drasthriopoðhshc ìpou ta eggraf matoc eðnai topik dedomèna prìblhma an getai ston entopismì tou To eggraf matoc drasthriopoðhshc antðstoiqou pou basðzontai sto b joc fwli smatoc: LÔseic prospèlashc (access links) SÔndesmoi onom twn Prospèlash [bp + offset] Topik : Mh topik : [si + offset] o si prèpei na deðqnei sth b sh tou PÐnakec deikt n (link tables / displays) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

161 leitourgðac Arq ìti h domik mon da p brðsketai 'Estw SÔndesmoi prospèlashc (i) fwliasmènh mèsa sth domik mon da q Sto ED thc p topojeteðtai èna sôndesmoc th b sh tou ED thc pio prìsfathc proc thc q kl shc thn kl sh upoprogramm twn, apaiteðtai Kat k dikac gia thn enhmèrwsh twn telikìc sundèsmwn prospèlashc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

162 qr shc Trìpoc ìti zhteðtai to dedomèno a pou eðnai 'Estw SÔndesmoi prospèlashc (ii) se mia domik mon da me b joc topikì n fwli smatoc a ìti briskìmaste se mia domik 'Estw p me b joc fwli smatoc n mon da p n a AkoloujoÔme n p n a sundèsmouc prospèlashc thn prospèlash onom twn, apaiteðtai Kat k dikac gia thn ulopoðhsh twn parap nw telikìc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

163 Pèrasma paramètrwn kat' axða Kl sh kat' anafor Kl sh kat' ìnoma Kl sh kat' an gkh Kl sh (call by value) (call reference) by (call name) by (call need) by kat' axða kai apotèlesma Kl sh (call value-result) by Trìpoc ulopoðhshc kajenìc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

164 Dèsmeush kataqwrht n (i) 1: epilog teloumènwn pou ja Prìblhma se kataqwrhtèc apojhkeutoôn 2: epilog kataqwrht n ìpou ja Prìblhma ta teloômena apojhkeutoôn prìblhma thc bèltisthc qr shc To eðnai NP-complete, akìma kai kataqwrht n qwrðc eidikoôc periorismoôc lôsh tou an getai sthn kataskeu tou H allhlepidr sewn metaxô twn gr fou kai sto qrwmatismì autoô me tìsa metablht n ìsoi oi kataqwrhtèc qr mata N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

165 Dèsmeush kataqwrht n Par deigma: 1:, b, b, $1 2:, 4, a, $2 3:, $2, c, $3 4:, $1, $3, $4 5: :=, $4,, d $1 (ii) d := b*b-4*a*c $2 ax $3 $4 bx N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

166 prosèggish: plakìstrwsh (tiling) KalÔterh tou endi mesou k dika se temaqismìc tm mata tm ma antistoiqeð se mia entol k je Epilog entol n (i) all kak prosèggish: eniaðo sq ma Apl telikoô k dika gia k je dom tou paragwg c endi mesou k dika all qronobìra prosèggish: Bèltisth programmatismìc (dynamic dunamikìc programming) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

167 Epilog entol n (ii) d := b*b-4*a*c := Par deigma: mem := + * * d bp offset d mem * mem * * + 4 mem + b b * c bp offset b + bp offset c 4 a bp offset a N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

(i) morf (relocatable, linkable)

(i) morf (relocatable, linkable) telikoô k dika: Morfèc mhqan c se apìluth morf (absolute) Gl ssa gl ssa (assembly) Sumbolik gl ssa qamhloô epipèdou 'Allh Telikìc k dikac (i) jewrhtik c poyhc, to prìblhma thc Apì bèltistou telikoô k dika

Διαβάστε περισσότερα

Υλοποίηση ΣΑ με το bison

Υλοποίηση ΣΑ με το bison (i) 69 / 216 Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει

Διαβάστε περισσότερα

(i) (ii) (interpreters) (linkers) (loaders) (decompilers) (meta-compilers) (preprocessors) (assemblers) (program generators)

(i) (ii) (interpreters) (linkers) (loaders) (decompilers) (meta-compilers) (preprocessors) (assemblers) (program generators) apait seic: Basikèc leitourgeð swst Na summorf netai me tic prodiagrafèc thc Na kai thc telik c gl ssac arqik c metaglwttðzei progr mmata Na megèjouc k je metaglwttist n: EÐdh AploÐ (decompilers) AntÐstrofoi

Διαβάστε περισσότερα

Υλοποίηση ΣΑ με το bison

Υλοποίηση ΣΑ με το bison (i) Μεταεργαλείο bison: γεννήτορας ΣΑ LALR(1) Είσοδος: μεταπρόγραμμα που περιγράφει τη σύνταξη και τις σημασιολογικές ρουτίνες Έξοδος: πρόγραμμα σε C Η συνάρτηση yyparse υλοποιεί το ΣΑ Επιστρέφει 0 αν

Διαβάστε περισσότερα

Υλοποίηση ΛΑ με το flex

Υλοποίηση ΛΑ με το flex (i) Μεταεργαλείο flex: γεννήτορας ΛΑ Είσοδος: μεταπρόγραμμα που περιγράφει τις λεκτικές μονάδες Έξοδος: πρόγραμμα σε C Η συνάρτηση yylex υλοποιεί το ΛΑ Επιστρέφει τον κωδικό της λεκτικής μονάδας που αναγνωρίστηκε,

Διαβάστε περισσότερα

JewrÐa UpologismoÔ. Grammatikèc QwrÐc Sumfrazìmena kai Autìmata StoÐbac

JewrÐa UpologismoÔ. Grammatikèc QwrÐc Sumfrazìmena kai Autìmata StoÐbac M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 1 apì 33 JewrÐa UpologismoÔ Grammatikèc QwrÐc Sumfrazìmena kai Autìmata StoÐbac M. G. Lagoudˆkhc Τμημα ΗΜΜΥ, Πολυτεχνειο Κρητης SelÐda 2 apì 33 Epanˆlhyh

Διαβάστε περισσότερα

Στοιχεία από Assembly Γιώργος Μανής

Στοιχεία από Assembly Γιώργος Μανής Στοιχεία από Assembly 8086 Γιώργος Μανής Καταχωρητές καταχωρητές γενικής φύσης καταχωρητές δείκτες καταχωρητές αναφοράς καταχωρητές τµηµάτων ειδικοί καταχωρητές Καταχωρητές γενικής φύσης 16 bit ax, bx,

Διαβάστε περισσότερα

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou)

Diakritˆ Majhmatikˆ I. Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) Diakritˆ Majhmatikˆ I Leutèrhc KuroÔshc (EÔh Papaðwˆnnou) PlhroforÐec... Tetˆrth, 09.00-11.00, Paraskeu, 18.00-20.00 SÔggramma 1: Λ. Κυρούσης, Χ. Μπούρας, Π. Σπυράκης. Διακριτά Μαθηματικά: Τα Μαθηματικά

Διαβάστε περισσότερα

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS DEUTERHS KAI ANWTERHS TAXHS 1. Grammikèc diaforikèc exis seic deôterhc kai an terhc tˆxhc

Διαβάστε περισσότερα

25 OktwbrÐou 2012 (5 h ebdomˆda) S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc

25 OktwbrÐou 2012 (5 h ebdomˆda) S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc Mˆjhma 9 0 25 OktwbrÐou 2012 (5 h ebdomˆda) Diaforikèc Exis seic TÔpoi Diaforik n exis sewn H pio apl diaforik exðswsh y = f (x) Diaforikèc Exis seic TÔpoi Diaforik n exis sewn H pio apl diaforik exðswsh

Διαβάστε περισσότερα

SUNARTHSEIS POLLWN METABLHTWN. 5h Seirˆ Ask sewn. Allag metablht n sto diplì olokl rwma

SUNARTHSEIS POLLWN METABLHTWN. 5h Seirˆ Ask sewn. Allag metablht n sto diplì olokl rwma PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II SUNARTHSEIS POLLWN METABLHTWN 5h Seirˆ Ask sewn Allag metablht n sto diplì olokl rwma Jèma. Qrhsimopoi ntac

Διαβάστε περισσότερα

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS.

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS. PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS 6h Seirˆ Ask sewn OmogeneÐc grammikèc diaforikèc exis seic me stajeroôc suntelestèc Jèma

Διαβάστε περισσότερα

Τίτλος Μαθήματος: Γραμμική Άλγεβρα Ι

Τίτλος Μαθήματος: Γραμμική Άλγεβρα Ι Τίτλος Μαθήματος: Γραμμική Άλγεβρα Ι Ενότητα: Θέματα Εξετάσεων Όνομα Καθηγητή : Ανδρέας Αρβανιτογεώργος Τμήμα: Μαθηματικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Κεφάλαιο 2: Τυπικές γλώσσες

Κεφάλαιο 2: Τυπικές γλώσσες Κεφάλαιο 2: Τυπικές γλώσσες (μέρος 2ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 47 / 216 Γλώσσες χωρίς συμφραζόμενα (i) Γραμματικές χωρίς συμφραζόμενα: Σε κάθε παραγωγή ένα μη τερματικό

Διαβάστε περισσότερα

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216 Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών

Διαβάστε περισσότερα

Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac

Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac Kbantik Perigraf tou Kìsmou mac KwnstantÐnoc Sfètsoc Kajhght c Fusik c Genikì Tm ma, Panepist mio Patr n Jerinì SqoleÐo Fusik c sthn EkpaÐdeush 28 IounÐou - 1 IoulÐou 2010 EstÐa Episthm n Pˆtrac Ti ennooôme

Διαβάστε περισσότερα

Ανάλυση ις. συστήματα

Ανάλυση ις. συστήματα Σήματα Συστήματα Ανάλυση ourier για σήματα και συνεχούς χρόνου Λυμένες ασκήσει ις Κνσταντίνος Κοτρόπουλος Τμήμα Πληροφορικής συστήματα Θεσσαλονίκη, Ιούνιος 3 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

9. α 2 + β 2 ±2αβ. 10. α 2 ± αβ + β (1 + α) ν > 1+να, 1 <α 0, ν 2. log α. 14. log α x = ln x. 19. x 1 <x 2 ln x 1 < ln x 2

9. α 2 + β 2 ±2αβ. 10. α 2 ± αβ + β (1 + α) ν > 1+να, 1 <α 0, ν 2. log α. 14. log α x = ln x. 19. x 1 <x 2 ln x 1 < ln x 2 UpenjumÐseic gia thn Jetik kai Teqnologik KateÔjunsh Kajhght c: N.S. Maurogi nnhc 1 Tautìthtec - Anisìthtec 1. (α ± ) = α ± α +. (α ± ) 3 = α 3 ± 3α +3α ± 3 3. α 3 ± 3 =(α ± ) ( α α + ) 4. (α + + γ) =

Διαβάστε περισσότερα

Diˆsthma empistosônhc thc mèshc tim c µ. Statistik gia Hlektrolìgouc MhqanikoÔc EKTIMHSH EKTIMHSH PARAMETRWN - 2. Dhm trhc Kougioumtz c.

Diˆsthma empistosônhc thc mèshc tim c µ. Statistik gia Hlektrolìgouc MhqanikoÔc EKTIMHSH EKTIMHSH PARAMETRWN - 2. Dhm trhc Kougioumtz c. Statistik gia Hlektrolìgouc MhqanikoÔc EKTIMHSH PARAMETRWN - 2 6 Maòou 2010 EktÐmhsh Diast matoc empistosônhc Melet same thn ektim tria ˆθ paramètrou θ: An gnwrðzoume thn katanom thc X kai eðnai F X (x;

Διαβάστε περισσότερα

ISTORIKH KATASKEUH PRAGMATIKWN ARIJMWN BIBLIOGRAFIA

ISTORIKH KATASKEUH PRAGMATIKWN ARIJMWN BIBLIOGRAFIA ΛΟΓΙΣΜΟΣ CALCULUS Διαφορικός Λογισμός, Απειροστικός Λογισμός 1670 1740 Ουράνια Μηχανική Isaac Newton 1648-1727 Gottfried Wilhelm Leibniz 1646-1716 απειροστάπολύ μικρά μεγέθη, άπειροπάρα πολύ μεγάλο, όριο

Διαβάστε περισσότερα

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc

11 OktwbrÐou 2012. S. Malefˆkh Genikì Tm ma Majhmatikˆ gia QhmikoÔc Mˆjhma 7 0 11 OktwbrÐou 2012 Orismìc sunart sewn mèsw orismènwn oloklhrwmˆtwn To orismèno olokl rwma prosfèrei ènan nèo trìpo orismoô sunˆrthshc afoô to orismèno olokl rwma mia suneqoôc sunˆrthshc f (t),

Διαβάστε περισσότερα

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μεταγλωττιστές Ενδιάμεσος Κώδικας Νίκος Παπασπύου, Κωστής Σαγώνας

Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μεταγλωττιστές Ενδιάμεσος Κώδικας Νίκος Παπασπύου, Κωστής Σαγώνας Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μεταγλωττιστές Νίκος Παπασπύου, Κωστής Σαγώνας Ενδιάμεσος Κώδικας Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο BISON Γλώσσες Προγραμματισμού Μεταγλωττιστές Συντακτική Ανάλυση με το Εργαλείο BISON Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γεννήτριες Συντακτικών Αναλυτών Bison/yacc

Διαβάστε περισσότερα

Eisagwg sthn KosmologÐa

Eisagwg sthn KosmologÐa Eisagwg sthn KosmologÐa BasileÐou S. Gerogiˆnnh Kajhght Tm matoc Fusik c PanepisthmÐou Patr n Patra 2009 Kefˆlaio 1 Eisagwgikˆ 1.1 Gwniakì mègejoc, parsèk, ètoc fwtìc O parathrht c tou Sq matoc 1.1 parathreð

Διαβάστε περισσότερα

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

Διαβάστε περισσότερα

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα

Διαβάστε περισσότερα

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης

Διαβάστε περισσότερα

Ãëþóóá ôåôñüäùí. ÌïñöÞ ôåôñüäáò: n: op, x, y, z üðïõ:

Ãëþóóá ôåôñüäùí. ÌïñöÞ ôåôñüäáò: n: op, x, y, z üðïõ: Ãëþóóá ôåôñüäùí ÌïñöÞ ôåôñüäáò: n: op, x, y, z üðïõ: n: åôéêýôá ôåôñüäáò (öõóéêüò áñéèìüò) op: ôåëåóôþò x, y, z: ôåëïýìåíá ÁíÜëïãá ìå ôï åßäïò ôïõ ôåëåóôþ, êüðïéá ôåëïýìåíá åíäå ïìýíùò ðáñáëåßðïíôáé Íßêïò

Διαβάστε περισσότερα

Statistik gia PolitikoÔc MhqanikoÔc EKTIMHSH PAR

Statistik gia PolitikoÔc MhqanikoÔc EKTIMHSH PAR Statistik gia PolitikoÔc MhqanikoÔc EKTIMHSH PARAMETRWN - 2 8 DekembrÐou 202 t.m. X me mèsh tim µ t.m. X 2 me mèsh tim µ 2 Diaforˆ µ µ 2? [X kai X 2 anexˆrthtec] DeÐgma {x, x 2,..., x n } x DeÐgma {x 2,

Διαβάστε περισσότερα

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS.

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS. PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II DIAFORIKES EXISWSEIS h Seirˆ Ask sewn Diaforikèc eis seic > diaforikèc

Διαβάστε περισσότερα

JEMATA EXETASEWN Pragmatik Anˆlush I

JEMATA EXETASEWN Pragmatik Anˆlush I JEMATA EXETASEWN Pragmatik Anˆlush I JEMA 1o. A)(M. 1.5) Na qarakthrðsete (me aitiolìghsh) tic protˆseic pou akoloujoôn me thn èndeixh Swstì Lˆjoc: (i) 'Estw x 0 tètoio ste x < ε, gia kˆje ε > 0. Tìte

Διαβάστε περισσότερα

Statistik gia PolitikoÔc MhqanikoÔc ELEGQOS UPOJ

Statistik gia PolitikoÔc MhqanikoÔc ELEGQOS UPOJ Statistik gia PolitikoÔc MhqanikoÔc ELEGQOS UPOJESEWN 18 DekembrÐou 2012 'Elegqoc Upojèsewn 1 Statistik upìjesh 2 Statistik elègqou kai perioq apìrriyhc 3 Apìfash elègqou Statistik upìjesh mhdenik upìjesh

Διαβάστε περισσότερα

Anaplhrwt c Kajhght c : Dr. Pappˆc G. Alèxandroc PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA I

Anaplhrwt c Kajhght c : Dr. Pappˆc G. Alèxandroc PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA I PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA I. Aìristo Olokl rwma 2. Orismèno Olokl rwma 3. Diaforetik èkfrash tou aìristou oloklhr matoc H Sunˆrthsh F ()

Διαβάστε περισσότερα

Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ

Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ Ενότητα: Διγραμμικές και Τετραγωνικές μορφές Όνομα Καθηγητή: Ανδρέας Αρβανιτογεώργος Τμήμα: Μαθηματικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Start Condition Μόλις βρεί τα (quotation mark), αφαιρεί όλα τα text μέχρι να βρεί το

Διαβάστε περισσότερα

Statistik gia QhmikoÔc MhqanikoÔc EKTIMHSH PARA

Statistik gia QhmikoÔc MhqanikoÔc EKTIMHSH PARA Statistik gia QhmikoÔc MhqanikoÔc EKTIMHSH PARAMETRWN - 2 20 Maòou 200 t.m. X me mèsh tim µ t.m. X 2 me mèsh tim µ 2 Diaforˆ µ µ 2? [X kai X 2 anexˆrthtec] DeÐgma {x, x 2,..., x n } x DeÐgma {x 2, x 22,...,

Διαβάστε περισσότερα

Εισαγωγή. Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή

Εισαγωγή. Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή (i) Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα και ιστορική αναδρομή Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 2 / 216 (i) Γλώσσες προγραμματισμού Μεταγλωττιστές Αναγκαιότητα

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά για Μηχανικούς

Εφαρμοσμένα Μαθηματικά για Μηχανικούς ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Εφαρμοσμένα Μαθηματικά για Μηχανικούς Σημειώσεις: Δειγματοληψία Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Kefˆlaio 5 DeigmatolhyÐa 'Estw èna sônolo periodikˆ

Διαβάστε περισσότερα

Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ

Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ Ενότητα: Ο δυϊκός χώρος Όνομα Καθηγητή: Ανδρέας Αρβανιτογεώργος Τμήμα: Μαθηματικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Στατιστική για Χημικούς Μηχανικούς

Στατιστική για Χημικούς Μηχανικούς ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Στατιστική για Χημικούς Μηχανικούς Ενότητα 3: Έλεγχος Υποθέσεων Κουγιουμτζής Δημήτρης Τμήμα Χημικών Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

1 η Σειρά Ασκήσεων Θεόδωρος Αλεξόπουλος. Αναγνώριση Προτύπων και Νευρωνικά Δίκτυα

1 η Σειρά Ασκήσεων Θεόδωρος Αλεξόπουλος. Αναγνώριση Προτύπων και Νευρωνικά Δίκτυα Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Αναγνώριση Προτύπων και Νευρωνικά Δίκτυα η Σειρά Ασκήσεων Θεόδωρος Αλεξόπουλος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Μηχανική Μάθηση. Ενότητα 10: Θεωρία Βελτιστοποίησης. Ιωάννης Τσαμαρδίνος Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Μηχανική Μάθηση. Ενότητα 10: Θεωρία Βελτιστοποίησης. Ιωάννης Τσαμαρδίνος Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Μηχανική Μάθηση Ενότητα 10: Θεωρία Βελτιστοποίησης Ιωάννης Τσαμαρδίνος Τμήμα Επιστήμης Υπολογιστών To genikì prìblhma, na broôme to mègisto elˆqisto miac sunˆrthshc

Διαβάστε περισσότερα

Παρουσίαση του εργαλείου BISON

Παρουσίαση του εργαλείου BISON Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unixyacc. Σχετικά εύκολο

Διαβάστε περισσότερα

Ergasthriak 'Askhsh 2

Ergasthriak 'Askhsh 2 Kefˆlaio 2 Ergasthriak 'Askhsh 2 Οπου θα δούμε πώς μπορούμε να ορίζουμε δικές μας διαδικασίες και θα παρουσιάσουμε τις primitive διαδικασίες χειρισμού λιστών, τις μεταβλητές και τα side effects. 2.1 P

Διαβάστε περισσότερα

Pragmatik Anˆlush ( ) TopologÐa metrik n q rwn Ask seic

Pragmatik Anˆlush ( ) TopologÐa metrik n q rwn Ask seic Pragmatik Anˆlush (2010 11) TopologÐa metrik n q rwn Ask seic Omˆda A' 1. 'Estw (X, ρ) metrikìc q roc kai F, G uposônola tou X. An to F eðnai kleistì kai to G eðnai anoiktì, deðxte ìti to F \ G eðnai kleistì

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά για Μηχανικούς

Εφαρμοσμένα Μαθηματικά για Μηχανικούς ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Εφαρμοσμένα Μαθηματικά για Μηχανικούς Σημειώσεις: Μετασχηματισμός Z Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Kefˆlaio 7 Metasqhmatismìc Z 7. Orismìc tou metasqhmatismoô

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά για Μηχανικούς

Εφαρμοσμένα Μαθηματικά για Μηχανικούς ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Εφαρμοσμένα Μαθηματικά για Μηχανικούς Σημειώσεις: Μετασχηματισμός Laplace Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών Kefˆlaio 8 Metasqhmatismìc Laplace 8. Orismìc

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Εξετάσεις Ιουνίου 2002

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Εξετάσεις Ιουνίου 2002 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΛΙΚΩΝ Εξετάσεις Ιουνίου (α) Αναπτύξτε την µέθοδο του τραπεζίου για τον αριθµητικό υπολογισµό του ολοκληρώµατος: b I( f ) = f ( x) a όπου f (x) συνεχής και ολοκληρώσιµη

Διαβάστε περισσότερα

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II SUNARTHSEIS POLLWN METABLHTWN.

PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II SUNARTHSEIS POLLWN METABLHTWN. PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA II SUNARTHSEIS POLLWN METABLHTWN h Seirˆ Ask sewn Akrìtata pragmatik n sunart sewn 1. Na brejoôn ta topikˆ akrìtata

Διαβάστε περισσότερα

Θεωρία Πιθανοτήτων και Στατιστική

Θεωρία Πιθανοτήτων και Στατιστική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Θεωρία Πιθανοτήτων και Στατιστική Ενότητα 3: Συσχέτιση & Γραμμική Παλινδρόμηση Κουγιουμτζής Δημήτρης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών

Διαβάστε περισσότερα

5. (12 i)(3+4i) 6. (1 + i)(2+i) 7. (4 + 6i)(7 3i) 8. (1 i)(2 i)(3 i)

5. (12 i)(3+4i) 6. (1 + i)(2+i) 7. (4 + 6i)(7 3i) 8. (1 i)(2 i)(3 i) Peiramatiko Lukeio Euaggelikhc Sqolhc Smurnhc Taxh G, Majhmatika Jetikhc kai Teqnologikhc Kateujunshc, Askhseic Kajhght c: Oi shmei seic autèc eðnai gia sqolik qr sh. MporoÔn na anaparaqjoôn kai na dianemhjoôn

Διαβάστε περισσότερα

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Συντακτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Συντακτική Ανάλυση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Συντακτική Ανάλυση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Συντακτική Ανάλυση Το συντακτικό μιας γλώσσας καθορίζει ποιες συμβολοσειρές

Διαβάστε περισσότερα

Anagn rish ProtÔpwn & Neurwnikˆ DÐktua Probl mata 2

Anagn rish ProtÔpwn & Neurwnikˆ DÐktua Probl mata 2 Jeìdwroc Alexìpouloc, Anaplhrwt c Kajhght c Theodoros Alexopoulos, Associate Professor EJNIKO METSOBIO POLUTEQNEIO NATIONAL TECHNICAL UNIVERSITY SQOLH EFARMOSMENWN MAJHMATIKWN KAI DEPARTMENT OF PHYSICS

Διαβάστε περισσότερα

Ανάλυση ασκήσεις. συστήματα

Ανάλυση ασκήσεις. συστήματα Σήματα Συστήματα Ανάλυση Fourier για σήματα και διακριτού χρόνου Λυμένες ασκήσεις Κωνσταντίνος Κοτρόουλος Τμήμα Πληροφορικής συστήματα Θεσσαλονίκη, Ιούνιος 3 Άδειες Χρήσης Το αρόν εκαιδευτικό υλικό υόκειται

Διαβάστε περισσότερα

Συντακτική ανάλυση. Μεταγλωττιστές. (μέρος 1ον) Νίκος Παπασπύου, Κωστής Σαγώνας

Συντακτική ανάλυση. Μεταγλωττιστές. (μέρος 1ον) Νίκος Παπασπύου, Κωστής Σαγώνας Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μεταγλωττιστές Νίκος Παπασπύου, Κωστής Σαγώνας Συντακτική ανάλυση (μέρος 1ον) Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

2 PerÐlhyh Se aut n thn ergasða, parousi zoume tic basikìterec klassikèc proseggðseic epðlushc Polu-antikeimenik n Problhm twn BeltistopoÐhshs(PPB) ka

2 PerÐlhyh Se aut n thn ergasða, parousi zoume tic basikìterec klassikèc proseggðseic epðlushc Polu-antikeimenik n Problhm twn BeltistopoÐhshs(PPB) ka MejodologÐec sthn Polu-Antikeimenik BeltistopoÐhsh apì Antwnèlou E. GewrgÐa Diplwmatik ErgasÐa Sqol Jetik n Episthm n Tm ma Majhmatik n Panepist mio Patr n Epiblèpousa: EpÐk.Kajhg tria J. N. Gr ya P tra,

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Ψηφιακή Επεξεργασία Φωνής Άσκηση 2η Στυλιανού Ιωάννης Τμήμα Επιστήμης Υπολογιστών HU578: 2 η Seirˆ Ask sewn AporÐec: yannis@csd.uoc.gr 1. (aþ) Sac dðdetai o anadromikìc

Διαβάστε περισσότερα

EJNIKO METSOBIO POLUTEQNEIO SQOLH HLEKTROLOGWN MHQANIKWN KAI MHQANIKWN UPOLOGISTWN TOMEAS TEQNOLOGIAS PLHROFORIKHS KAI UPOLOGISTWN ERGASTHRIO UPOLOGISTIKWN SUSTHMATWN Enopoihmènh efarmog metasqhmatism

Διαβάστε περισσότερα

Mègisth ro - elˆqisth tom

Mègisth ro - elˆqisth tom 15 DekembrÐou 2009 DÐnetai grˆfoc (N, A) me ìria ro c x ij [b ij, c ij ] gia kˆje akm (i, j) kai dôo epilegmènouc kìmbouc s kai t. Jèloume na upologðsoume th ro sto grˆfo, ste na megistopoieðtai h apìklish

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση Γλώσσες Προγραμματισμού Μεταγλωττιστές Σημασιολογική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Σημασιολογικής Ανάλυσης Στατική και Δυναμική Σημασιολογία Σημασιολογικοί

Διαβάστε περισσότερα

APEIROSTIKOS LOGISMOS I

APEIROSTIKOS LOGISMOS I 1 OktwbrÐou 2012 Kwdikìc Maj matoc: 101 (U) 'Etoc didaskalðac: 2012-2013, Qeimerinì Exˆmhno Hmèrec didaskalðac: Deut. - Tet. - Par., 11:00-13:00 Didˆskontec Tm ma 1 o (AM pou l gei se 0,1,2) Amf 21, BasÐleioc

Διαβάστε περισσότερα

στο Αριστοτέλειο υλικού.

στο Αριστοτέλειο υλικού. Σήματα Συστήματα Μετασχηματισμός aplace Λυμένες ασκήσεις Κωνσταντίνος Κοτρόπουλος Τμήμα Πληροφορικής Θεσσαλονίκη, Ιούνιος 03 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Τελικές Εξετάσεις Απαντήστε όλα τα θέματα του Μέρους Α και ένα θέμα από

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού»

ΚΕΦΑΛΑΙΟ 6: Γλώσσες. 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας. Κεφάλαιο 6: «Γλώσσες Προγραµµατισµού» ΚΕΦΑΛΑΙΟ 6: Γλώσσες Προγραµµατισµού 6.1 Ιστορική εξέλιξη 6.4 Υλοποίηση γλώσσας 1 6.1 Γενιές γλωσσών προγραµµατισµού 2 Δεύτερη γενιά: γλώσσα assembly Ένα µνηµονικό σύστηµα για την αναπαράσταση προγραµµάτων

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Παραγωγή Ενδιάμεσου Κώδικα Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Παραγωγή ενδιάμεσου κώδικα. Ενδιάμεσες γλώσσες. Αφηρημένα

Διαβάστε περισσότερα

Κλασσική Ηλεκτροδυναμική II

Κλασσική Ηλεκτροδυναμική II ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Κλασσική Ηλεκτροδυναμική II Πεδία Σημειακών Φορτίων Διδάσκων : Καθ. Κ. Ταμβάκης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Λογισμικό Συστήματος. Κλειώ Σγουροπούλου Λογισμικό Συστήματος Κλειώ Σγουροπούλου Λογισμικό συστήματος Λειτουργικό σύστημα Μεταφραστές γλώσσας (translators) Διερμηνείς (interpreters) Μεταγλωττιστές (compilers) Εκδότες (editors) Φορτωτές (loaders)

Διαβάστε περισσότερα

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του

Διαβάστε περισσότερα

Σύγχρονα ακολουθιακά κυκλώματα. URL:

Σύγχρονα ακολουθιακά κυκλώματα.   URL: DeÔtero Ex mhno FoÐthshc Σύγχρονα ακολουθιακά κυκλώματα Ge rgioc. Alexandrìpouloc Lèktorac P.D. 47/8 e-mail: alexandg@uop.gr URL: http://users.iit.demokritos.gr/~alexandg Tm ma Epist mhc kai TeqnologÐac

Διαβάστε περισσότερα

Autìmath Exagwg Peril yewn kai h Axiolìghs touc

Autìmath Exagwg Peril yewn kai h Axiolìghs touc Autìmath Exagwg Peril yewn kai h Axiolìghs touc Ge rgioc Giannakìpouloc 1 ggianna@iit.demokritos.gr 1 Tm ma Mhqanik n Plhroforiak n kai Epikoinwniak n Susthmˆtwn Panepist mio AigaÐou se sunergasða me to

Διαβάστε περισσότερα

GENIKEUMENA OLOKLHRWMATA

GENIKEUMENA OLOKLHRWMATA PANEPISTHMIO DUTIKHS ATTIKHS SQOLH MHQANIKWN TMHMA POLITIKWN MHQANIKWN ANWTERA MAJHMATIKA I GENIKEUMENA OLOKLHRWMATA Anplhrwt c Kjhght c: Dr. Pppˆc G. Alèndroc GENIKEUMENA OLOKLHRWMATA H ènnoi tou orismènou

Διαβάστε περισσότερα

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 9 Σημασιολογική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Σύνταξη και Σημασιολογία Σε οποιαδήποτε γλώσσα (προγραμματισμού ή μη) υπάρχουν δύο βασικές

Διαβάστε περισσότερα

Ανάλυση. σήματα και συστήματα

Ανάλυση. σήματα και συστήματα Σήματα Συστήματα Ανάλυση ourier διακριτού χρόνου Κωνσταντίνος Κοτρόπουλος Τμήμα Πληροφορικής για σήματα και συστήματα Θεσσαλονίκη, Ιούνιος 23 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ. Α.Μ 2009018 pcst0918@uop.gr

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ. Α.Μ 2009018 pcst0918@uop.gr ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Εµµανουήλ Ζαφείριος Μπόζης Α.Μ 2009018 pcst0918@uop.gr «Μεταγλωττιστής από minibasic σε Jackal 3.0» Εργασία στο µάθηµα «Προηγµένα Θέµατα

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 2: Καταχωρητές, HelloWorld σε 8086, emu8086 emulator Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 3: Σύνταξη Γλωσσών Προγραμματισμού Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εισαγωγή Οι διαφορές των ΓΠ στις

Διαβάστε περισσότερα

Θα χρησιμοποιήσουμε το bison, μια βελτιωμένη έκδοση του yacc. Φροντιστήριο 2ο Εισαγωγή στο YACC. Yacc. Δομή Προγράμματος Yacc

Θα χρησιμοποιήσουμε το bison, μια βελτιωμένη έκδοση του yacc. Φροντιστήριο 2ο Εισαγωγή στο YACC. Yacc. Δομή Προγράμματος Yacc HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide

Διαβάστε περισσότερα

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών Θ. Ζαχαριάδης Αν. Καθηγητής Λ. Σαράκης Καθ. Εφαρμογών CMP REG, memory memory, REG REG, REG memory, immediate REG, immediate Compare. operand1 - operand2 result is not stored anywhere, flags are set (OF,

Διαβάστε περισσότερα

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται

Διαβάστε περισσότερα

Παραγωγή Ενδιάµεσου Κώδικα. Γιώργος Μανής

Παραγωγή Ενδιάµεσου Κώδικα. Γιώργος Μανής Παραγωγή Ενδιάµεσου Κώδικα Γιώργος Μανής Παραγωγή Ενδιάµεσου Κώδικα Κώδικας σε αρχική γλώσσα Κώδικας σε ενδιάµεση γλώσσα Κώδικας σε γλώσσα µηχανής (assembly) Παραγωγή Ενδιάµεσου Κώδικα Συντακτικό δέντρο

Διαβάστε περισσότερα

Παραγωγή Ενδιάµεσου Κώδικα

Παραγωγή Ενδιάµεσου Κώδικα Παραγωγή Ενδιάµεσου Κώδικα Παραγωγή Ενδιάµεσου Κώδικα Κώδικας σε αρχική γλώσσα Γιώργος Μανής Κώδικας σε ενδιάµεση γλώσσα Κώδικας σε γλώσσα µηχανής (assembly) Παραγωγή Ενδιάµεσου Κώδικα Ενδιάµεση Γλώσσα

Διαβάστε περισσότερα

Εισαγωγή στο Flex. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο Flex. Μεταγλωττιστές, Χειμερινό εξάμηνο Εισαγωγή στο Flex Μεταγλωττιστές, Χειμερινό εξάμηνο 2014-2015 Ημερομηνίες Διαδικαστικά Παρουσίαση Flex 7 Νοεμβρίου 15:00 17:00 Παρουσίαση Bison 28 Νοεμβρίου 15:00 17:00 Στοιχεία επικοινωνίας Λίστα μαθήματος

Διαβάστε περισσότερα

HY340, 2010 Α. Σαββίδης. Slide 3 / 43. Slide 4 / 43

HY340, 2010 Α. Σαββίδης. Slide 3 / 43. Slide 4 / 43 HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 2ο Εισαγωγή στο YACC Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide

Διαβάστε περισσότερα

10/2013. Mod: 02D-EK/BT. Production code: CTT920BE

10/2013. Mod: 02D-EK/BT. Production code: CTT920BE 10/2013 Mod: 02D-EK/BT Production code: CTT920BE GR ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΚΑΙ ΣΥΝΤΗΡΗΣΗΣ σελ. 1 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΚΕΦ 1 ΕΙΣΑΓΩΓΗ... 3 ΚΕΦ 2 ΕΓΚΑΤΑΣΤΑΣΗ... 3 2.1 ΜΕΤΑΚΙΝΗΣΗ ΚΑΙ ΑΠΟΣΥΣΚΕΥΑΣΙΑ...3 2.2 ΗΛΕΚΤΡΙΚΗ

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 6: Διαδικασίες, Σωρός, Διαφανείς συναρτήσεις Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Εργαστήριο 08 Εισαγωγή στo Yacc

Εργαστήριο 08 Εισαγωγή στo Yacc Εργαστήριο 08 Εισαγωγή στo Yacc Θεωρία Σκοπός: Το μάθημα αυτό αναφέρεται: Στο εργαλείο κατασκευής συντακτικών αναλυτών, Yacc, στις δομές και συναρτήσεις που προσφέρει. Στη σύνταξη των αρχείων περιγραφής

Διαβάστε περισσότερα

AM = 1 ( ) AB + AΓ BΓ+ AE = AΔ+ BE. + γ =2 β + γ β + γ tìte α// β. OΓ+ OA + OB MA+ MB + M Γ+ MΔ =4 MO. OM =(1 λ) OA + λ OB

AM = 1 ( ) AB + AΓ BΓ+ AE = AΔ+ BE. + γ =2 β + γ β + γ tìte α// β. OΓ+ OA + OB MA+ MB + M Γ+ MΔ =4 MO. OM =(1 λ) OA + λ OB Peiramatiko Lukeio Euaggelikhc Sqolhc Smurnhc Taxh B, Majhmatika Jetikhc kai Teqnologikhc Kateujunshc, Askhseic Kajhght c: Shmei seic gia sqolik qr sh. MporoÔn na anaparaqjoôn kai na dianemhjoôn eleôjera

Διαβάστε περισσότερα

Top Down Bottom Up. Συντακτική Ανάλυση. Συντακτική Ανάλυση για Γραµµατικές χωρίς Συµφραζόµενα (top-down - Earley)

Top Down Bottom Up. Συντακτική Ανάλυση. Συντακτική Ανάλυση για Γραµµατικές χωρίς Συµφραζόµενα (top-down - Earley) Top Down Bottom Up Συντακτική Ανάλυση Γιώργος Μανής δεοµένης της παραγωγής X αβ, ο συµβολισµός X α β αναπαριστά µία κατάσταση στη οποία το α έχει ήδη αναγνωριστεί και το β προσδοκάται να αναγνωριστεί.

Διαβάστε περισσότερα

Παρουσίαση του εργαλείου BISON

Παρουσίαση του εργαλείου BISON Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unix yacc. Σχετικά εύκολο

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση Γλώσσες Προγραμματισμού Μεταγλωττιστές Λεκτική Ανάλυση Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Λεκτική Ανάλυση Τυπικές Γλώσσες Κανονικές Εκφράσεις Υλοποίηση Λεκτικών

Διαβάστε περισσότερα

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Runtime Checking (1/3) Η γλώσσα alpha είναι μια dynamic typing γλώσσα (ο τύπος μιας μεταβλητής αλλάζει ακολουθώντας τον τύπο της τιμής που κάθε φορά αποθηκεύεται

Διαβάστε περισσότερα

Upologistik Fusik Exetastik PerÐodoc IanouarÐou 2013

Upologistik Fusik Exetastik PerÐodoc IanouarÐou 2013 Upologistik Fusik Exetastik PerÐodoc IanouarÐou 03 Patra, 6 Ianouariou 03 Jèma A. Na exhg sete grafikˆ thn mèjodo thc diqotìmhshc. B. Na exhg sete grafikˆ thn mèjodo Runge Kutta. Jèma. DiatÔpwsh Oi migadikèc

Διαβάστε περισσότερα

Στατιστική για Χημικούς Μηχανικούς

Στατιστική για Χημικούς Μηχανικούς ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Στατιστική για Χημικούς Μηχανικούς Ενότητα 4: Συσχέτιση & Γραμμική Παλινδρόμηση Κουγιουμτζής Δημήτρης Τμήμα Χημικών Μηχανικών Άδειες Χρήσης

Διαβάστε περισσότερα

Τι είναι το yacc. Δομή ενός αρχείου yacc. Πρόλογος. ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο. Ο yacc είναι ένας γενικού σκοπού parser generator.

Τι είναι το yacc. Δομή ενός αρχείου yacc. Πρόλογος. ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο. Ο yacc είναι ένας γενικού σκοπού parser generator. ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Yacc slide 1/52 Τι είναι το yacc Ο yacc είναι ένας γενικού σκοπού parser generator. μετατρέπει την περιγραφή ργρ φήμίας contt- free γραμματικής σε C/C++ πρόγραμμα.

Διαβάστε περισσότερα

Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού

Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού Κεφάλαιο 3 : Σύνταξη Γλωσσών Προγραμματισμού Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών ΤΜΗΥΠ Πανεπιστήμιο Πατρών Εισαγωγή Οι διαφορές των ΓΠ στις συντακτικές δομές τους, είναι πολύ μεγαλύτερες από

Διαβάστε περισσότερα

1, 3, 5, 7, 9,... 2, 4, 6, 8, 10,... 1, 4, 7, 10, 13,... 2, 5, 8, 11, 14,... 3, 6, 9, 12, 15,...

1, 3, 5, 7, 9,... 2, 4, 6, 8, 10,... 1, 4, 7, 10, 13,... 2, 5, 8, 11, 14,... 3, 6, 9, 12, 15,... To Je rhma tou Dirichlet Dèspoina NÐka IoÔlioc 999 Majhmatikì Tm ma Panepist mio Kr thc 2 Prìlogoc Oi pr toi arijmoð, 2, 3, 5, 7,,..., eðnai ekeðnoi oi fusikoð arijmoð oi opoðoi èqoun akrib c dôo diairètec,

Διαβάστε περισσότερα

f(x) =x x 2 = x x 2 x =0 x(x 1) = 0,

f(x) =x x 2 = x x 2 x =0 x(x 1) = 0, NÐkoc E. AggourÐdhc To Je rhma tou Sarkovskii Panepist mio Kr thc Tm ma Majhmatik n 2 Thn kritik epitrop apotèlesan oi Ajanasìpouloc KwnstantÐnoc Katsoprin khc Emmanou l Kwst khc Ge rgioc (epiblèpwn) touc

Διαβάστε περισσότερα

Μεταγλωττιστές. Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Εργαστήριο 7. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Μεταγλωττιστές. Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Εργαστήριο 7. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 7 Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Πίνακας Συμβόλων Συγκεντρώνει πληροφορίες για τα ονόματα

Διαβάστε περισσότερα

2+sin^2(x+2)+cos^2(x+2) Δ ν =[1 1 2 ν 1, ν ) ( ( π (x α) ημ β α π ) ) +1 + a 2

2+sin^2(x+2)+cos^2(x+2) Δ ν =[1 1 2 ν 1, ν ) ( ( π (x α) ημ β α π ) ) +1 + a 2 Parathr seic sta Jèmata Jetik c kai Teqnologik c KateÔjunshc tou ètouc 7 Peiramatikì LÔkeio Euaggelik c Sqol c SmÔrnhc 1 IounÐou 7 PerÐlhyh Oi shmei seic autèc anafèrontai sta jèmata Majhmatik n Jetik

Διαβάστε περισσότερα