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

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

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

Transcript

1 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 (meta-compilers) Meta-metaglwttistèc peript seic metaglwttist n: Eidikèc (preprocessors) Proepexergastèc (assemblers) Sumbolometafrastèc programm twn Genn torec 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 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Ð thc metagl ttishc F seic an lush Lektik Eisagwg Eisagwg UlopoÐhsh glwss n programmatismoô Metaglwttistèc PapaspÔrou NÐkoc nickie@softlab.ntua.gr Ejnikì Metsìbio PoluteqneÐo Sqol Hlektrolìgwn Mhq. kai Mhq. Upologist n Ergast rio TeqnologÐac LogismikoÔ PoluteqneioÔpolh, Zwgr fou. (program generators) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Kataskeu metaglwttist Kataskeu metaglwttist 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

2 ulopoðhshc Jèmata se per smata Org nwsh diagnwstik n mhnum twn kai an nhyh EÐdh (internal) Eswterik (errors) Sf lmata mhnômata (warnings) Proeidopoihtik perðptwsh: gl ssec pou par goun thn Eidik sumboloseir ken EkkÐnhsh bootstrapping αρχικό πρόγραµµα Λεκτική ανάλυση F seic kai pro ìnta λεκτικές µονάδες B ma 1: Metaglwttist c gia S A sthn T. συντακτικό δέντρο se emprìsjio kai opðsjio tm ma Org nwsh / back-end) (front-end Συντακτική Ανάλυση B ma 2: Metaglwttist c gia thn A sthn S. Σηµασιολογική Ανάλυση B ma 3: Metaglwttist c gia thn A sthn A. συντακτικό δέντρο Πίνακας συµβόλων Παραγωγή ενδιάµεσου κώδικα Χειριστής σφαλµάτων A T A T 'Elegqoc orjìthtac ενδιάµεσος κώδικας Βελτιστοποίηση ενδιάµεσου κώδικα A T A A T T ενδιάµεσος κώδικας Παραγωγή τελικού κώδικα S S T T τελικός κώδικας Βελτιστοποίηση τελικού κώδικα T τελικό πρόγραµµα Apl mhnômata (messages) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Εµπρόσθιο τµήµα Λεκτικός αναλυτής Org nwsh se èna pèrasma Συντακτικός αναλυτής Σηµασιολογικός αναλυτής Γεννήτορας ενδιάµεσου κώδικα Βελτιστοποιητής ενδιάµεσου κώδικα Χειριστής σφαλµάτων gl ssec Tupikèc G =(T,N,P,S) Grammatik : termatik sômbola T : mh termatik sômbola N : kanìnec paragwg c P : arqikì sômbolo S a A α β 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) IerarqÐa Chomsky Πίνακας συµβόλων Γεννήτορας τελικού κώδικα Βελτιστοποιητής τελικού κώδικα an α, β, γ, δ (T N) Paragwgèc: (α β) P kai γαδ γβδ tìte 3: kanonikèc grammatikèc (regular) TÔpou A ab A a Οπίσθιο τµήµα Gl ssa: L(G) ={ α T S α } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

3 gl ssec Kanonikèc ekfr seic (regular expressions) Kanonikèc SuntomografÐec: peritt n parenjèsewn apaloif an lush Lektik mon dec (tokens) Lektikèc me peperasmèna autìmata AnagnwrÐzontai pou: endeqomènwc perissìterouc diab zoun qarakt rec an qreiasteð opisjodromoôn èxodo pou qrhsimopoieðtai sth diajètoun autìmata Peperasmèna kai metab seic Katast seic (NPA), mh nteterministik Nteterministik kai MPA me kenèc metab seic (MPA-ɛ) (MPA) gl ssa twn sumboloseir n pou H apì 0 kai 1 kai perièqoun rtio apoteloôntai Anagnwristèc 0: mhqan Turing TÔpou 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 sumboloseir : ɛ Ken sômbolo: a Σ K je dôo kanonik n ekfr sewn: Par jesh dôo kanonik n ekfr sewn: Di zeuxh KleÐsimo ( stro) Kleene: (r ) r [a 1, a 2,,a n ] r?. (rs) (r s) A B arijmì 1 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 kai isodunamðec Anagwgèc grammatik MPA-ɛ kanonik MPA-ɛ kanonik grammatik Diagr mmata met bashc Anagnwristik thc Pascal L èkfrash kanonik MPA-ɛ MPA-ɛ kanonik èkfrash 0 L 1 D MPA-ɛ NPA suntaktik an lush L L όχι L/D (T_id) ElaqistopoÐhsh NPA Eidikìc sumbolismìc: diagr mmata met bashc D N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

4 SqedÐash sunolikoô kai taxinìmhsh lektik n mon dwn Katagraf lektik n mon dwn KwdikopoÐhsh trìpoi ulopoðhshc: EnallaktikoÐ Qeirwnaktik 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 metaprìgramma pou perigr fei tic EÐsodoc: mon dec lektikèc sun rthsh yylex ulopoieð to LA H ton kwdikì thc lektik c mon dac Epistrèfei anagnwrðsthke, 0 sto tèloc thc pou eisìdou sumboloseir c sth metablht yytext thn TopojeteÐ akoloujða qarakt rwn (lexeme) antðstoiqh Diagr mmata met bashc Telestèc > kai >= Kataskeu tou LA Kataskeu tou LA 0 > 1 = 2 kai taxinìmhsh qarakt rwn Katagraf mapping : (ASCII {EOF }) Σ όχι = 2 (T_gt) AkoloujÐa qarakt rwn (lexeme) 0 > 1 SqedÐash tou diagr mmatoc met bashc UlopoÐhsh tou lektikoô analut = 3 (T_ge) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 (iii) (iv) UlopoÐhsh LA me to flex W Kataskeu tou LA Kataskeu tou LA 0. ; ( ) = - EOF (T_dot) (T_smcolon) (T_lparen) (T_rparen) (T_eq) (T_plus) (T_minus) (T_eof) MetaergaleÐo flex: genn torac LA : < > / diagr mmatoc = = όχι = = met bashc όχι = όχι = = όχι = όχι pðnaka metab sewn Me to metaergaleðo flex Me 'Exodoc: prìgramma se C (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. Ε όχι D Ε D D 7. 8 E D 11 όχι D 46 D Ε D D (T_const) { 12 } 0 όχι } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

5 LeitourgÐa: to makrôtero prìjema thc Diab zetai eisìdou pou mporeð na sumboloseir c apì k poia kanonik èkfrash anagnwristeð ekfr sewn kanonik n arqik n katast sewn Dhl seic kanonik èkfrash r. Oi parenjèseic qrhsimopoioôntai H gia omadopoðhsh. UlopoÐhsh LA me to flex UlopoÐhsh LA me to flex (iii) UlopoÐhsh LA me to flex (iv) 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 A, perièqei Mèroc ìpwc sth C Sqìlia, C, mèsa se %{ kai %} K dika onìmata wc suntomografðec Mnhmonik 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 UlopoÐhsh LA me to flex (v) UlopoÐhsh LA me to flex (vi) UlopoÐhsh LA me to flex (vii) Mèroc B, perièqei kanìnec thc morf c èkfrash enèrgeia kanonik enèrgeia eðnai mia entol thc C K je EkteleÐtai h antðstoiqh enèrgeia 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 alli c Ðdioc qarakt rac ìpwc o x. o C, O oktadik tim 123. qarakt rac me O me dekaexadik tim qarakt rac 3F. H sumboloseir abc. 'Enac c. apì touc qarakt rec a, 'Enac èwc z. apì touc qarakt rec touc qarakt rec a, èwc 'Enac f, s. apì \123 ASCII \x3f ASCII "abc" [abc] b [a-z] a [ac-fs] c 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

6 UlopoÐhsh LA me to flex (viii) UlopoÐhsh LA me to flex (ix) UlopoÐhsh LA me to flex (x) 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 mia for ). mhdèn 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 forèc. H ^r all mìno sthn arq miac gramm c. r H r$ all mìno sto tèloc miac gramm c. r 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. r se opoiad pote arqik kat stash. H tèloc tou arqeðou eisìdou. To 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 UlopoÐhsh LA me to flex (xi) UlopoÐhsh LA me to flex (xii) UlopoÐhsh LA me to flex (xiii) Par deigma void ERROR (const char msg []) { fprintf(stderr, "ERROR: %s\n", msg); exit(1); } (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; 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); } Mèroc G, perièqei k dika C Prìblhma: L joc arðjmhsh se sqìlia N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

7 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 ::= 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 UlopoÐhsh LA me to flex 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) (xiv) kat stash kat thn ènarxh leitourgðac Arqik LA: INITIAL tou UlopoÐhsh LA me to flex ArÐjmhsh gramm n (diìrjwsh) Par deigma: %x COMMENT "(" { BEGIN(COMMENT); } <COMMENT>")" { BEGIN(INITIAL); } <COMMENT>\n { lineno; } <COMMENT>"" { / nothing / } <COMMENT>[^\n] { / nothing / } (xv) qwrðc sumfrazìmena Gl ssec qwrðc sumfrazìmena: A α Grammatikèc / dexiìterh paragwg Aristerìterh (leftmost / derivation) rightmost dèntra Suntaktik trees) (parse 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 S a A B c c A S ε B a b a N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 DiforoÔmenec grammatikèc grammatikèc DiforoÔmenec stmt BNF/EBNF Sumbolismìc Backus-Naur Form dèntra gia thn Ðdia paragìmenh sumboloseir kai gl ssec eggen c diforoômenec Grammatikèc ambiguous) (inherently if cond stmt c1 if cond stmt c2 s1 else stmt s2 stmt if c1 ( if c2 s1 else s2 ) p.q. expr parenjèseic, gia di zeuxh SÔmbolo Extended Backus-Naur Form stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 if c1 ( if c2 s1 ) else s2 if cond stmt c1 if cond stmt else stmt s2 if c1 if c2 s1 else s2 c2 s1 kai h sumboloseir : N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

8 an lush Suntaktik dèntro (parse tree) Suntaktikì me dôo trìpouc: Kataskeu zetai p nw proc ta k tw (top-down) Apì xekin ntac apì th rðza kai dhlad proc ta fôlla proqwr ntac k tw proc ta p nw (bottom-up) Apì xekin ntac apì ta fôlla kai dhlad ta termatik sômbola pou mporoôn perièqei akoloujoôn to A sth di rkeia miac na paragwg c to A mporeð na eðnai to teleutaðo An Top-down kai bottom-up από πάνω προς τα κάτω (top-down) 1 S από κάτω προς τα πάνω (bottom-up) 12 S Bohjhtikèc ènnoiec SÔnola FIRST sumboloseir α (T N) 'Estw sônolo FIRST(α) (T {ɛ }) perièqei To a A B c 4 A b a a A B c A b 7 9 a 11 termatik sômbola apì ta opoða ta oi sumboloseirèc pou par gontai arqðzoun thn α apì α ɛ, tìte ɛ FIRST(α) An proqwr ntac proc th rðza 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Upologismìc FIRST Upologismìc FIRST Bohjhtikèc ènnoiec SÔnola FOLLOW mh termatikì sômbolo A 'Estw sônolo FOLLOW(A) (T {EOF }) To se mia paragwg, tìte sômbolo EOF FOLLOW(A) FIRST(ɛ) ={ ɛ } FIRST(aβ) ={ a } an tìte an ɛ FIRST(A) FIRST(Aβ) =FIRST(A) ɛ FIRST(A) tìte FIRST(Aβ) =(FIRST(A) {ɛ }) FIRST(β) 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 k je kanìna A α, prèpei gia FIRST(α) FIRST(A) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

9 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 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 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 (reducing): h epilog twn kìmbwn El ttwsh ja apotelèsoun ta paidi enìc nèou pou Upologismìc FOLLOW Upologismìc FOLLOW SA bottom-up EOF FOLLOW(S) k je kanìna A αbβ gia (FIRST(β) {ɛ }) FOLLOW(B) an tìte ɛ FIRST(β) FOLLOW(A) FOLLOW(B) 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 H suntaktik an lush xekin apì ta fôlla Epanalamb nei mèqri na kataskeuasteð h rðza kìmbou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 SA bottom-up SA bottom-up (iii) SA bottom-up (iv) B B r D D a. b r a. b r S D D a. b 0 ɛ ra,b 2 ra,b D a 1 r, b 3 r D,b B D 4 r B,b shift/reduce conflict S r B B B (ìqi el ttwsh me S r B) B D B, D D a b B D D B D D olðsjhsh el ttwsh me el ttwsh me 6 r B,b ɛ D b 5 r B, b 7 r B, D ɛ B B, D r a. b r a. b el ttwsh (ìqi me D) el ttwsh me anagn rish B 8 r B ɛ S r B 9 S ɛ reduce/reduce conflict N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

10 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 metaprìgramma pou perigr fei th EÐsodoc: kai tic shmasiologikèc routðnec sôntaxh sun rthsh yyparse ulopoieð to SA H 0 an anagnwristeð h Epistrèfei eisìdou 1 se perðptwsh sumboloseir sf lmatoc suntaktikoô me to lektikì analut Sunerg zetai yylex) (sun rthsh SA bottom-up (v) UlopoÐhsh SA me to bison UlopoÐhsh SA me to bison LR(k) συµβολοσειρά εισόδου MetaergaleÐo bison: genn torac SA LALR(1) Dom tou metaprogr mmatoc LR(0) SLR(1) LALR(1) LR(1) s m x m κορυφή a 1 a 2 a n EOF επόµενο σύµβολο Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) 'Exodoc: prìgramma se C A Mèroc %% B Mèroc %% Mèroc G s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) Kai ta trða mèrh mporoôn na eðnai ken s 0 στοίβα N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 UlopoÐhsh SA me to bison(iii) UlopoÐhsh SA me to bison(iv) UlopoÐhsh SA me to bison(v) A, perièqei Mèroc ìpwc sth C Sqìlia, C, mèsa se %{ kai %} K dika lektik n mon dwn Dhl seic 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 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 sumbìlou N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

11 routðnec pou ekteloôntai shmasiologikèc th suntaktik an lush kat metaprìgramma tou bison analamb nei ton To èlegqo tou metaglwttist pou kentrikì me th sunergasða twn epitugq netai parak tw: lektikoô analut tou suntaktikoô analut tou pðnaka sumbìlwn tou shmasiologikoô analut tou na kataskeuasteð SA pou na ZhtoÔmeno: thn tim miac arijmhtik c èkfrashc upologðzei UlopoÐhsh SA me to bison(vi) B, perièqei: Mèroc kanìnec paragwg c se morf BNF touc kanìnec èqoun th morf : Oi A : x 1 1 x 1 2 x 1 m 1 x 2 1 x2 2 x2 m 2 x n 1 x n 2 x n m n ; UlopoÐhsh SA me to bison(vii) Mèroc G, perièqei k dika C tou genn tora endi mesou k dika UlopoÐhsh SA me to bison(viii) B, par deigma Mèroc program : { count=0; } block_list { printf("counted %d block(s)\n", count); } ; block_list : / nothing / block_list block { count; } ; block : "begin" block_list "end" ; N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 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(); } 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 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

12 sun rthsh yylex (pijan c se xeqwristì h an qrhsimopoihjeð to flex) arqeðo, 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; } ; UlopoÐhsh SA me to bison(xiii) (sunèqeia) Par deigma factor : ( expression ) { $$ = $2; } T_num { $$ = $1; } ; %% ParaleÐpontai sto Mèroc G: oi sunart seic yyerror kai main 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 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; } thc tou SA AutomatopoÐhsh metagl ttishc mytest1: mytest1.y Makefile bison mytest1.y gcc -o mytest1 mytest1.tab.c UlopoÐhsh SA me to bison(xvi) UlopoÐhsh LA me to flex Par deigma %{ #include "mytest2.tab.h" %} mytest2.l %% [0-9] { yylval = atoi(yytext); return T_num; } \( \) \ \ { return yytext[0]; } [ \t\n] { / nothing / }. { yyerror("illegal character"); } %% 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 sto bison EpÐlush sugkroôsewn reduce p nta shift-reduce: reduce-reduce: o pr toc kanìnac N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

13 for, anazht : K je mh termatikì sômbolo pou ja to mèqri na exantlhjoôn ta mh Epanalamb netai termatik proôpojèseic: AparaÐthtec arister c anadrom c ( meshc ApousÐa èmmeshc) koinoô projèmatoc se ApousÐa for exet zetai h koruf thc stoðbac: K je eðnai termatikì sômbolo kai eðnai to Ðdio An 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 h stoðba kai h sumboloseir eisìdou EpituqÐa: deiec eðnai algìrijmoc O tou kataskeu c M orðzei pðnaka oikogèneia thn SA top-down Grammatikèc LL(1) Metasqhmatismìc se LL(1) H suntaktik an lush xekin apì th rðza Antikat stash α A 1 α n B β 1 Aβ 2 A α 1 α n B β 1 α 1 β 2 β 1 α n β 2 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) forèc eðnai dunatìc o Merikèc miac grammatik c se metasqhmatismìc LL(1) isodônamh enallaktikoôc kanìnec Arister paragontopoðhsh αβ A 1 αβ n αb A β B 1 β n apaloif arister c anadrom c arister paragontopoðhsh β A 1 β B m B α B 1 α B n ɛ B meshc arister c anadrom c Apaloif Aα A 1 Aα n β 1 β m N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 SA LL(1) SA LL(1) anadromik c kat bashc SA α A 1 α n mia stoðba ìpou topojetoôn QrhsimopoioÔn thc grammatik c arqik mìno to S sômbola συµβολοσειρά εισόδου a 1 a 2 a n EOF 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 glwss n twn LL(1) x m κορυφή επόµενο σύµβολο Πίνακας M συντακτικής ανάλυσης LL(1) x 2 suntaktikì sf lma alli c an token FOLLOW(A) tìte suntaktikì sf lma eisìdou efarmìzetai k poioc kanìnac x 1 στοίβα Συντακτικός Αναλυτής LL(1) tèloc an N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

14 sumbìlwn PÐnakac plhroforðec gia ta onìmata pou Sugkentr nei 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 grammatik (attribute grammar): Kathgorik qwrðc sumfrazìmena ìpou k je grammatik 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 k je kìmbou paidi n kathgor mata: oi timèc KlhronomoÔmena exart ntai mìno apì kathgor mata touc fipatèrafl kai twn fiadelf nfl k je kìmbou tou onom twn Qarakthristik apoj keushc (storage class) KathgorÐa metablhtèc (global variables) Kajolikèc stoðbac (stack variables) Metablhtèc 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) anagn rish 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 idideof T ɛ 5 E idideof 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 LeitourgÐa SA LL(1) Kathgorikèc grammatikèc sômbolo fèrei èna sônolo kathgorhm twn N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 grammatikèc Kathgorikèc E E T { E 1.val := E 2.val T.val } 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 } emfanðzontai sto arqikì prìgramma Statikèc metablhtèc (static variables) Embèleia (scope) Oratìthta (visibility) Di rkeia zw c (lifetime) ShmasiologikoÐ kanìnec N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

15 pðnaka sumbìlwn Perieqìmena (èmmesa) Embèleia kai shmasiologða SÔntaxh morf kai dom twn kal c SÔntaxh: ermhneða twn kal c ShmasiologÐa: programm twn sqhmatismènwn shmasiologða: entopismìc Statik sfalm twn kat th shmasiologik n thc metagl ttishc di rkeia shmasiologða: apìdosh ermhneðac Dunamik pðnaka sumbìlwn Org nwsh leitourgðec Basikèc onìmatoc Prosj kh onìmatoc Anaz thsh prosj khc anaz thshc an loga me Kìstoc ulopoðhsh: thn antistoðqish tôpwn me kanìnec tôpwn H se ìla ta tm mata progr mmatoc epekteðnetai UlopoÐhsh me PK Oratìthta (èmmesa) b 0 c εµβέλεια 3 1 x zw c Di rkeia TÔpoc (dieôjunsh mn mhc, kataqwrht c, ) Jèsh paramètrwn upoprogr mmatoc Arijmìc paramètrwn upoprogr mmatoc TÔpoc per smatoc paramètrwn upoprogr mmatoc Trìpoc apotelèsmatoc sun rthshc TÔpoc Diagraf onìmatoc om dac onom twn lðsta O(n) grammik dèntro anaz thshc O(log n) duadikì katakermatismoô O(n/k) pðnakac 2... k 2 k 1 πίνακας κατακερµατισµού a aa y c b a στοίβα αποθήκευσης εµβέλεια 2 εµβέλεια στοίβα εµβελειών N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Statik shmasiologða Statik shmasiologða sqhmatismènwn programm twn tôpwn Perib llonta Γ 1 = { i integer, x real } antistoðqishc tôpwn Sqèsh Γ E : τ tôpwn Paragwgèc Γ 1 i : integer Γ 1 1 : integer Γ 1 i1 : integer Γ 1 (i1)x : real Γ 1 x : real tôpwn Kanìnec Γ E 1 : integer Γ E 2 : integer Γ E 1 E 2 : integer Γ E : boolean Γ S : stmt Γ while E do S : stmt sta progr mmata kat thn ektèles touc N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

16 eisìdou sto pedðo twn dedomènwn apotelesm twn prot sewn pou perigr foun logik n tou progr mmatoc idiìthtec tôpoi SÔnjetoi (arrays) PÐnakec (products) kai plei dec (tuples) ZeÔgh (records) Eggrafèc (pointers) DeÐktec (functions) Sunart seic èlegqoc Shmasiologikìc tôpwn 'Elegqoc èlegqoc tôpwn Dunamikìc ìtan up rqei Epib lletai forèc ìmwc apaiteðtai kai se Pollèc antistoðqish tôpwn, p.q. èlegqoc statik alli c ektèleshc sf lma Dunamik shmasiologða Dunamik shmasiologða H entol an jeshc I=E shmasiologða (operational semantics) Leitourgik akoloujða upologistik n bhm twn shmasiologða (denotational semantics) Dhlwtik majhmatik sun rthsh apì to pedðo twn shmasiologða Leitourgik E,σ v I=E,σ σ[i v] 'Elegqoc ro c 'Elegqoc Ôparxhc onom twn 'Elegqoc monadikìthtac shmasiologða Dhlwtik C[[ I=E ]](s) = s[i E[[ E ]](s)] 'Elegqoc sunèpeiac shmasiologða (axiomatic semantics) Axiwmatik h ermhneða kajorðzetai èmmesa mèsw shmasiologða Axiwmatik { P [I E] } I=E { P } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 SÔsthma tôpwn SÔsthma tôpwn BasikoÐ tôpoi (integer, boolean, real, char, ) Metatropèc tôpwn (type casting) dunamik antistoðqish tôpwn 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 (polymorphic systems) type orðwn se arrays thc Pascal: a[i] := 42 i 0 kai i 100 tìte an gia thn an jesh tou 42 sto a[i] k dikac TÔpoi pr thc t xhc (first class) kai dunamik antistoðqish tôpwn Statik binding) (type tèloc an Exagwg tôpwn (type inference) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

17 kai exagwg tôpwn 'Elegqoc tôpwn (type checking) 'Elegqoc tôpwn (type substitution): Antikat stash metablht n tôpwn se tôpouc apeikìnish antikat stashc tôpwn: tautìqrona Efarmog mða for kai Exagwg tôpwn Exagwg tôpwn Γ, E, τ DÐnontai: h paragwg Γ E : τ ZhteÐtai: TÐ gðnetai an den up rqei? 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 : τ twn tôpwn me metablhtèc tôpwn Epèktash τ ::= int bool τ τ α tôpwn (type inference) Exagwg Γ, E DÐnontai: τ kai h paragwg Γ E : τ ZhteÐtai: gðnetai an den up rqoun? TÐ den up rqei τ tètoio ste Diaforetik Γ E : τ σ = [α int,β bool α] σ(α) = int σ(β) = bool α σ(β γ) = (bool α) γ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 (iii) (iv) (v) 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 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 gia ìlh thn èkfrash: Γ= Perib llon (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 Exagwg tôpwn Exagwg tôpwn Exagwg tôpwn gðnetai: let f (g (x = g x (x 1) and m (a (b = a b Perib llon gia to s ma f m 6: Γ b = @6 } oi lôseic den eðnai monadikèc! Genik let f (x = x N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

18 Ôparxhc Lìgoi to èrgo thc met frashc DieukolÔnei th beltistopoðhsh DieukolÔnei thn kat tmhsh se emprìsjio DieukolÔnei 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 idiot twn (attributes) gia k je Metablhtèc thc grammatik c sômbolo (vi) (vii) (viii) P c brðsketai h lôsh? Periorismìc (constraint): exðswsh tôpwn τ 1 = τ 2 Prìblhma 1: eôresh sunìlou periorism n C tôpwn me periorismoôc Paragwg Γ E : τ C unify( ) =σ 0 unify({ τ 1 = τ 2 } C) = Exagwg tôpwn Exagwg tôpwn Exagwg tôpwn EnopoÐhsh: epðlush sunìlou periorism n {h ken antikat stash} 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 } 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 τ = σ(τ ) τ 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Endi mesoc k dikac Endi mesoc k dikac Endi mesh gl ssa kai opðsjio tm ma odhgoômenh apì th sôntaxh Met frash translation) (syntax-directed endi meso k dika Sqèdio paragwg c endi mesou k dika (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 bb-4ac N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

19 tetr dwn Gl ssa tetr dac: Morf ìpou: etikèta tetr dac (fusikìc arijmìc) n: me to eðdoc tou telest, k poia An loga endeqomènwc paraleðpontai teloômena Stajer pragmatik, logik akèraia, 'Onoma paramètroc, upoprìgramma metablht, (iii) (iv) (triples) Tri dec n: op, x, y Par deigma: 1:, b, b 2:, 4, a 3:, (2), c 4:, (1), (3) bb-4ac suntaktik dèntra Afhrhmèna (abstract trees) syntax Endi mesh gl ssa Par deigma: bb-4ac b b c kai epijematikìc k dikac Projematikìc code) (prefix/postfix Par deigma: bb 4ac bb 4a c bb-4ac projematikìc epijematikìc Endi mesh gl ssa Endi mesh gl ssa 4 a N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 (v) Endi mesh gl ssa TeloÔmena akuklikoð gr foi Kateujunìmenoi (directed graphs) acyclic n: op, x, y, z qarakt rac, sumboloseir, nil Par deigma: b(a1)(a1)c-(a1)(a1)2/(a1) / / Proswrin metablht : $n 2 2 op: telest c x, y, z: teloômena Apotèlesma sun rthshc: $$ c a 1 c b a 1 a 1 b [x] Apodeiktodìthsh: {x} DieÔjunsh: aplì teloômeno x aplì teloômeno x a 1 a 1 a 1 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

20 Etikèta sto arqikì prìgramma entol c ektelesteð an mia sunj kh eðnai alhj c na yeud c TeloÔmena tetr dac per smatoc Trìpoc : kat' axða V : kat' anafor R : jèsh apotelèsmatoc sun rthshc RET Kenì : Proswrin kenì : 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] Telestèc 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 (gia backpatching) orismìc etikètac kai lma proc aut n N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 call,,, I Telestèc k lese th domik mon da I par, x, m, (iii) thn pragmatik par metro x me trìpo pèrase m per smatoc ret,,, epistrof apì thn trèqousa domik mon da idiot twn Metablhtèc : jèsh ìpou brðsketai apojhkeumènh h PLACE miac l-value miac r-value tim TYPE : tôpoc miac l-value miac r-value : lðsta apì etikètec tetr dwn pou NEXT lmata sthn epìmenh entol perièqoun, TRUE : lðstec apì etikètec tetr dwn FALSE perièqoun lmata ston k dika pou prèpei pou 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

21 se ìlec tic tetr dec pou Antikajist sthn l thn gnwsth etikèta perièqontai ekfr seic Arijmhtikèc stajerèc Akèraiec 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) tetr dac me th z (backpatching) r-value ::= integer-const {P 1 } P 1 : { r-value.place = integer-const ; } me dôo teloômena Telestèc 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 ; } <cond> jump,,, 31 jump,,, 42 jump,,, 31 jump,,, 31 jump,,, 42 Logikèc ekfr seic <cond>.false <cond>.true N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 (iii) (iv) Logikèc ekfr seic Logikèc ekfr seic Logikèc ekfr seic ekfr seic se sumbolismì 0/1 Logikèc cond ::= expr <cond> <expr> ifb, <expr>.place,, ju mp,,, 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,,, ); } 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 FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

22 entolèc Aplèc entol Ken (v) (vi) (vii) Logikèc ekfr seic Logikèc ekfr seic Logikèc ekfr seic Telestèc sôgkrishc cond ::= expr 1 relop expr 2 { P 23 } 'Arnhsh cond ::= not cond SÔzeuxh cond ::= cond 1 and cond 2 P 23 : { cond.true = MAKELIST(NEXTQUAD()); GENQUAD( relop.name, expr 1.PLACE, expr 2.PLACE, ); cond.false = MAKELIST(NEXTQUAD()); GENQUAD(jump,,, ); } FALSE <cond> TRUE <cond> FALSE TRUE <cond> FALSE FALSE <cond> 1 <cond> 2 TRUE TRUE FALSE TRUE N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 (viii) Logikèc ekfr seic SÔnjeth entol 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; } stmt ::= ɛ { P 29 } P 29 : { stmt.next = EMPTYLIST(); } an jeshc Entol stmt ::= l-value := expr {P 30 } P 30 : { GENQUAD( :=, expr.place,, l-value.place ); stmt.next = EMPTYLIST(); } stmt ::= block block ::= begin stmt ( ; stmt ) end <block> NEXT <stmt> 1 NEXT <stmt> 2 NEXT N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

23 Entol if Entol if stmt ::= block {P 34 } 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; } SÔnjeth entol stmt ::= if cond then stmt [ else stmt ] <stmt> FALSE <cond> TRUE <stmt> <stmt> 1 NEXT TRUE FALSE <cond> jump,,, NEXT NEXT <stmt> 1 <stmt> 2 NEXT NEXT 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 stmt ::= while cond do stmt Entol while <stmt> Entol while stmt ::= while { P 43 } cond do { P 44 } stmt 1 { P 45 } P 43 : { Q = NEXTQUAD(); } P 44 : { BACKPATCH( cond.true, NEXTQUAD()); } upoprogramm twn Kl sh call ::= id ( [ expr (, expr ) ] ) r-value ::= call stmt ::= call FALSE <cond> <stmt> 1 ju mp,,, TRUE NEXT P 45 : { BACKPATCH( stmt 1.NEXT, Q); GENQUAD(jump,,, Q); stmt.next = cond.false ; } 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 NEXT N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

24 jewrhtik c poyhc, to prìblhma thc Apì bèltistou telikoô k dika den èqei kataskeu c telikoô k dika: Morfèc mhqan c se apìluth morf (absolute) Gl ssa mhqan c se epanatopojet simh kai Gl ssa morf (relocatable, linkable) diasundèsimh gl ssa (assembly) Sumbolik gl ssa qamhloô epipèdou 'Allh probl mata: Epimèrouc entol n Epilog entol n thc mn mhc sto qrìno ektèleshc DiaqeÐrish upoprogramm twn Kl sh call ::= id ( { P 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; } upoprogramm twn (iii) Kl sh call ::= id ( { P 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 ); } Kl sh upoprogramm twn (iv) sun rthshc Kl sh r-value ::= call {P 50 } P 50 : { r-value.place = call.place; } diadikasðac Kl sh stmt ::= call {P 51 } P 51 : { stmt.next = EMPTYLIST(); } N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Kl sh upoprogramm twn (v) apì upoprìgramma Epistrof stmt ::= return [ expr {P 52 } ] { P 53 } P 52 : { GENQUAD(retv, expr.place,, ); } P 53 : { GENQUAD(ret,,, ); } lôsh (undecidable) P c metafr zetai k je entol tou k dika endi mesou P c metafr zontai akoloujðec tètoiwn Telikìc k dikac Telikìc k dikac upoprogr mmatoc D lwsh body ::= ( local ) { P 56 } block ; { P 57 } P 56 : { GENQUAD(unit, I,, ); } P 57 : { BACKPATCH( block.next, NEXTQUAD()); GENQUAD(endu, I,, ); } 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

25 Qarakthristik : Intel 8086 Epexergast c: deðktec: sp (deðkthc stoðbac) Kataqwrhtèc bp (deðkthc b shc) kai Telikìc upologist c 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 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. 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Ð Telikìc upologist c DieujÔnseic: address = segment 16 offset Morf entol c: [ label ] opname [ operand 1 [, operand 2 ]] (iii) pointer) kai kataqwrht c shmai n (flags) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Telikìc upologist c Entolèc: mov, lea Metafor c: (iv) 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) metafor c Entolèc mov destination, source 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 megèjouc dedomènwn Kajorismìc mov ax, word ptr [bp 6] mov al, byte ptr [bp 6] (move) (load effective address) pr xeic Arijmhtikèc add op 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

26 pr xeic Logikèc and op 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 lmatoc Entolèc jmp address jz address je address jnz address jne address jl address jle address jg address jge address sunj kh qwrðc / Ðso mhdèn mhdèn / di foro ìqi mikrìtero Ðso mikrìtero megalôtero Ðso megalôtero stoðbac Entolèc push op pop op sth stoðba prìsjesh sp := sp 2, [sp] :=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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 kl sh call address sp := sp 2, [sp] :=ip, ip := address Entolèc upoprogramm twn ret epistrof ip := [sp], sp := sp 2 H tim tou pou topojeteðtai sth stoðba apì ip call eðnai h dieôjunsh thc entol c pou thn akoloujeð thn call x87 FPU Entolèc Eidik stoðba 8 kataqwrht n: ST(0), ST(7) fld source (load real & push) fld tbyte fild source (load integer & push) fild word ptr [bp 2] fstp destination (pop & store real) fld tbyte ptr [bp 10] fistp destination (pop & store integer) fild word ptr [bp 2] faddp ST(1), ST(0) Entolèc x87 FPU 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 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

27 enot twn (block structure) Dom topik dedomèna Mh Par metroi Apotèlesma kat stashc mhqan c PlhroforÐec metablhtèc Topikèc 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 leitourgðac Arq ìti h domik mon da p brðsketai 'Estw thn kl sh upoprogramm twn, apaiteðtai Kat k dikac gia thn enhmèrwsh twn telikìc qr shc Trìpoc ìti zhteðtai to dedomèno a pou eðnai 'Estw thn prospèlash onom twn, apaiteðtai Kat k dikac gia thn ulopoðhsh twn parap nw telikìc (iii) DiaqeÐrish mn mhc drasthriopoðhshc (activation Eggr fhma record) Proswrinèc metablhtèc bp8 bp6 bp4 bp2 bp bp-2 bp-4 Παράµετρος 1 Παράµετρος 2 Παράµετρος n ιεύθυνση αποτελέσµατος Σύνδεσµος προσπέλασης ιεύθυνση επιστροφής Προηγούµενο bp DiaqeÐrish mn mhc Τοπική µεταβλητή 1 Τοπική µεταβλητή 2 Τοπική µεταβλητή m Προσωρινή µεταβλητή 1 Προσωρινή µεταβλητή 2 Προσωρινή µεταβλητή k Παράµετρος 1 Παράµετρος 2 Παράµετρος n ιεύθυνση αποτελέσµατος ιεύθυνση επιστροφής Προηγούµενο display Προηγούµενο bp Τοπική µεταβλητή 1 Τοπική µεταβλητή 2 Τοπική µεταβλητή m Προσωρινή µεταβλητή 1 Προσωρινή µεταβλητή 2 Προσωρινή µεταβλητή k α) Σύνδεσµοι προσπέλασης β) Πίνακας δεικτών Παράµετροι Σταθερό Τµήµα Τοπικές µεταβλητές Προσωρινές µεταβλητές αρχή βάση τέλος Ε κύριου προγράµµατος Ε υποπρογράµµατος 1 Ε υποπρογράµµατος m DiaqeÐrish mn mhc µεταφρασµένος κώδικας στοίβα εκτέλεσης ελεύθερη µνήµη δυναµικό δεδοµένο k σωρός δυναµικό δεδοµένο 1 µνήµη για αποθήκευση δεδοµένων µνήµη για αποθήκευση του κώδικα του προγράµµατος συνολική διαθέσιµη µνήµη 64Κ 0Κ N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 onom twn Prospèlash [bp offset] Topik : Mh topik : [si offset] o si prèpei na deðqnei sth b sh tou SÔndesmoi prospèlashc 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 SÔndesmoi prospèlashc 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 sundèsmwn prospèlashc PÐnakec deikt n (link tables / displays) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

28 all kak prosèggish: eniaðo sq ma Apl telikoô k dika gia k je dom tou paragwg c 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 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 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 paramètrwn Pèrasma kat' axða (call by value) Kl sh Kl sh kat' anafor Kl sh kat' ìnoma Kl sh kat' an gkh (call by reference) (call by name) (call by need) kat' axða kai apotèlesma Kl sh (call value-result) by Trìpoc ulopoðhshc kajenìc Dèsmeush kataqwrht n qwrðc eidikoôc periorismoôc 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 d := bb-4ac $2 ax $3 $4 bx N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 Epilog entol n Epilog entol n d := bb-4ac Epilog entol n (iii) endi mesou k dika all qronobìra prosèggish: Bèltisth programmatismìc (dynamic dunamikìc programming) mem := mem R 1 mem := ax ax Par deigma: tiling me entolèc tou 8086 ax bx d := bp offset d mem 4 mem mem CONST R bi mov R 1,[R bi CONST] ax bp offset d ax ax mem ax bx 4 mem bx mem b b c bp offset b bp offset c ax R 1 bp offset b bp offset c 4 a bp offset a imul R 1 bp offset a Par deigma: N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202

29 (iv) Par deigma: tiling me entolèc tou mem R bi CONST 1 ax R 1 mem ax CONST 2 ax ax bp offset d mem 4 mem := bx mem Skeletìc: xseg segment public code assume cs : xseg, ds : xseg, ss : xseg org 100h main proc near call near ptr program mov ax, 4C00h int 21h main endp telikìc k dikac pou par getai qrìnou ektèleshc (run-time library) Biblioj kh extrn function : proc sumboloseirèc kai kinht c Stajerèc upodiastol db this is db 10 db an example db 0 imul R 1,[R bi CONST 1 ],CONST 2 bp offset b bp offset a bp offset c xseg ends end dt 1e dt 2.0 Epilog entol n To telikì prìgramma To telikì prìgramma N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 getar(a) Bohjhtikèc routðnec mov si, word ptr [bp 4] mov si, word ptr [si 4] mov si, word ptr [si 4] updateal() dieôjunshc ED) (fìrtwsh } (n cur n a 1 forèc) sundèsmwn (enhmèrwsh prospèlashc) an (a) push bp n p <n x push word ptr [bp 4] n p = n x mov si, word ptr [bp 4] n p >n } x mov si, word ptr [si 4] (n p n x 1 forèc) mov si, word ptr [si 4] push word ptr [si 4] load(r, a) Bohjhtikèc routðnec EÐdoc tou a mov R, a true mov R, 1 false mov R, 0 (fìrtwsh teloumènou) K dikac pou par getai mov R, ASCII(a) nil mov R, 0 mov R, size ptr [bp offset] (b1) (b2) topik ontìthta: metablht, par metroc kat' axða, proswrin metablht topik ontìthta: par metroc kat' anafor mov si, word ptr [bp offset] mov R, size ptr [si] load(r, a) Bohjhtikèc routðnec (g1) EÐdoc tou a mh topik ontìthta: metablht, par metroc kat' axða, proswrin metablht (iii) (fìrtwsh teloumènou) getar(a) mov R, size ptr [si offset] K dikac pou par getai mh ontìthta: topik (g2) par metroc kat' anafor (d) (e) getar(a) mov si, word ptr [si offset] mov R, size ptr [si] [x] load(di, x) mov R, size ptr [di] {x} loadaddr(r, x) N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 N. PapaspÔrou, Metaglwttistèc AprÐlioc /202 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

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

Metaglwttistèc NÐkoc PapaspÔrou nickie@softlab.ntua.gr Ejnikì Metsìbio PoluteqneÐo Sqol Hlektrolìgwn Mhq. kai Mhq. Upologist n Ergast rio TeqnologÐac LogismikoÔ PoluteqneioÔpolh, 15780 Zwgr fou. N. PapaspÔrou,

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

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

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

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

Υλοποίηση ΣΑ με το 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: Λ. Κυρούσης, Χ. Μπούρας, Π. Σπυράκης. Διακριτά Μαθηματικά: Τα Μαθηματικά

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

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

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

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

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

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;

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

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

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

ISTORIKH KATASKEUH PRAGMATIKWN ARIJMWN BIBLIOGRAFIA

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Συντακτική Ανάλυση με το Εργαλείο 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: ôåëïýìåíá ÁíÜëïãá ìå ôï åßäïò ôïõ ôåëåóôþ, êüðïéá ôåëïýìåíá åíäå ïìýíùò ðáñáëåßðïíôáé Íßêïò

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

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

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

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

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

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

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

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

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

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ˆ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ergasthriak 'Askhsh 2

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

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

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

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

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

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

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

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

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

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

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

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ì

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

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: Συσχέτιση & Γραμμική Παλινδρόμηση Κουγιουμτζής Δημήτρης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,

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

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

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

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

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

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

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

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

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() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του

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

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

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

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

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

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

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

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

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

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

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 Ένα µνηµονικό σύστηµα για την αναπαράσταση προγραµµάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υποπρογράμματα (Subroutines)

Υποπρογράμματα (Subroutines) Υποπρογράμματα (Subroutines) Τα υποπρογράµµατα είναι τµήµατα κώδικα που συγκεντρώνουν ένα σύνολο από εντολές το οποίο θα εκτελέσει πλήρως µια λειτουργία και πιθανόν να επιστρέψει και τιµή. Τα υποπρογράµµατα

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

Σύγχρονα ακολουθιακά κυκλώματα. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο 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 ΗΛΕΚΤΡΙΚΗ

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

Εργαστήριο 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

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

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 γλώσσα (ο τύπος μιας μεταβλητής αλλάζει ακολουθώντας τον τύπο της τιμής που κάθε φορά αποθηκεύεται

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος Control Flow εντολές Jump related JMP Jcc (JZ, JNZ, JB, JNB etc) JCXZ, JECXZ LOOP LOOPE, LOOPNE Procedure related CALL RET INT IRET INTO ENTER LEAVE

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

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

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

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

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

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program) Μεταφραστές Εισαγωγή (source program) Τελικό πρόγραµµα (object program) Γιώργος Μανής Γλώσσες Είδη Μεταγλωττιστών Αρχική γλώσσα Γλώσσα υλοποίησης Τελική γλώσσα Απλοί µεταγλωττιστές Αντίστροφοι µεταγλωττιστές

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ) ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ) ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι Τρία κύρια τμήματα Ορισμός μοντέλου τμημάτων μνήμης και σωρού Ορισμός

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

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

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

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