ÌåôáãëùôôéóôÝò. Áðñßëéïò 2011

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

Download "ÌåôáãëùôôéóôÝò. Áðñßëéïò 2011"

Transcript

1 ÌåôáãëùôôéóôÝò Íßêïò Ðáðáóðýñïõ ÊùóôÞò Óáãþíáò Åèíéêü Ìåôóüâéï Ðïëõôå íåßï Ó ïëþ Çëåêôñïëüãùí Ìç. êáé Ìç. Õðïëïãéóôþí ÅñãáóôÞñéï Ôå íïëïãßáò Ëïãéóìéêïý Ðïëõôå íåéïýðïëç, ÆùãñÜöïõ. Áðñßëéïò 2011 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

2 ÅéóáãùãÞ (i) Ãëþóóåò ðñïãñáììáôéóìïý ÌåôáãëùôôéóôÝò Áíáãêáéüôçôá êáé éóôïñéêþ áíáäñïìþ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

3 ÅéóáãùãÞ (i) Ãëþóóåò ðñïãñáììáôéóìïý ÌåôáãëùôôéóôÝò Áíáãêáéüôçôá êáé éóôïñéêþ áíáäñïìþ αρχικό πρόγραµµα τελικό πρόγραµµα µεταγλωττιστής διαγνωστικά µηνύµατα Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

4 ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A T ÔåëéêÞ ãëþóóá L T Ãëþóóá õëïðïßçóçò L Y Y Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

5 ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A T ÔåëéêÞ ãëþóóá L T Ãëþóóá õëïðïßçóçò L Y Y Óçìáóéïëïãßá ôïõ ðñïãñüììáôïò P óôç ãëþóóá L [[P ]] L : Inp(P ) Out(P ) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

6 ÅéóáãùãÞ (ii) Áñ éêþ ãëþóóá L A A T ÔåëéêÞ ãëþóóá L T Ãëþóóá õëïðïßçóçò L Y Y Óçìáóéïëïãßá ôïõ ðñïãñüììáôïò P óôç ãëþóóá L [[P ]] L : Inp(P ) Out(P ) Óçìáóßá åíüò ìåôáãëùôôéóôþ C [[C ]] LY : L A L T Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

7 ÅéóáãùãÞ (iii) Ïñèüôçôá ôïõ ìåôáãëùôôéóôþ: \ôï ìåôáãëùôôéóìýíï ðñüãñáììá ðñýðåé íá åßíáé éóïäýíáìï ìå ôï áñ éêü" Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

8 ÅéóáãùãÞ (iii) Ïñèüôçôá ôïõ ìåôáãëùôôéóôþ: \ôï ìåôáãëùôôéóìýíï ðñüãñáììá ðñýðåé íá åßíáé éóïäýíáìï ìå ôï áñ éêü" [[P ]] LA = [[[[C ]] LY (P )]] LT Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

9 ÅéóáãùãÞ (iv) Åßäç ìåôáãëùôôéóôþí: Áðëïß Áíôßóôñïöïé (decompilers) Ìåôá-ìåôáãëùôôéóôÝò (meta-compilers) ÅéäéêÝò ðåñéðôþóåéò ìåôáãëùôôéóôþí: ÐñïåðåîåñãáóôÝò (preprocessors) ÓõìâïëïìåôáöñáóôÝò (assemblers) ÃåííÞôïñåò ðñïãñáììüôùí (program generators) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

10 ÅéóáãùãÞ (v) ÓõíáöÞ åñãáëåßá Äéåñìçíåßò (interpreters) Äéá åéñéóôýò âéâëéïèçêþí (library managers) ÓõíäÝôåò (linkers) ÖïñôùôÝò (loaders) Åêäüôåò ðñïãñáììüôùí (program editors) ÅíôïðéóôÝò óöáëìüôùí (debuggers) Óôáôéóôéêïß áíáëõôýò (prolers) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

11 ÊáôáóêåõÞ ìåôáãëùôôéóôþ (i) ÂáóéêÝò áðáéôþóåéò: Íá ëåéôïõñãåß óùóôü Íá óõììïñöþíåôáé ìå ôéò ðñïäéáãñáöýò ôçò áñ éêþò êáé ôçò ôåëéêþò ãëþóóáò Íá ìåôáãëùôôßæåé ðñïãñüììáôá êüèå ìåãýèïõò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

12 ÊáôáóêåõÞ ìåôáãëùôôéóôþ (ii) Åðéðñüóèåôåò áðáéôþóåéò: Íá ðáñüãåé áðïäïôéêü êþäéêá Íá Ý åé ìéêñü ñüíï ìåôáãëþôôéóçò Íá Ý åé ìéêñýò áðáéôþóåéò ìíþìçò êáôü ôç ìåôáãëþôôéóç Íá äßíåé êáëü äéáãíùóôéêü ìçíýìáôá Íá óõíå ßæåé ýóôåñá áðü ëüèç Íá åßíáé ìåôáöýñóéìïò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

13 ÖÜóåéò êáé ðñïúüíôá ôçò ìåôáãëþôôéóçò αρχικό πρόγραµµα ËåêôéêÞ áíüëõóç Λεκτική ανάλυση λεκτικές µονάδες ÓõíôáêôéêÞ áíüëõóç Συντακτική Ανάλυση ÓçìáóéïëïãéêÞ áíüëõóç συντακτικό δέντρο Σηµασιολογική Ανάλυση ÐáñáãùãÞ åíäéüìåóïõ êþäéêá Πίνακας συµβόλων συντακτικό δέντρο Παραγωγή ενδιάµεσου κώδικα Χειριστής σφαλµάτων Âåëôéóôïðïßçóç ενδιάµεσος κώδικας Βελτιστοποίηση ενδιάµεσου κώδικα ÐáñáãùãÞ ôåëéêïý êþäéêá ενδιάµεσος κώδικας Παραγωγή τελικού κώδικα τελικός κώδικας Βελτιστοποίηση τελικού κώδικα τελικό πρόγραµµα Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

14 ÈÝìáôá õëïðïßçóçò ÏñãÜíùóç óå ðåñüóìáôá ÏñãÜíùóç óå åìðñüóèéï êáé ïðßóèéï ôìþìá (front-end / back-end) ëåã ïò ïñèüôçôáò Åßäç äéáãíùóôéêþí ìçíõìüôùí êáé áíüíçøç ÅóùôåñéêÜ (internal) ÓöÜëìáôá (errors) ÐñïåéäïðïéçôéêÜ ìçíýìáôá (warnings) ÁðëÜ ìçíýìáôá (messages) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

15 Åêêßíçóç { bootstrapping A T A T A T A A T T S S T T T ÂÞìá 1: ÌåôáãëùôôéóôÞò ãéá S A óôçí T. ÂÞìá 2: ÌåôáãëùôôéóôÞò ãéá ôçí A óôçí S. ÂÞìá 3: ÌåôáãëùôôéóôÞò ãéá ôçí A óôçí A. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

16 ÏñãÜíùóç óå Ýíá ðýñáóìá Εµπρόσθιο τµήµα Συντακτικός αναλυτής Λεκτικός αναλυτής Σηµασιολογικός αναλυτής Γεννήτορας ενδιάµεσου κώδικα Βελτιστοποιητής ενδιάµεσου κώδικα Χειριστής σφαλµάτων Πίνακας συµβόλων Γεννήτορας τελικού κώδικα Βελτιστοποιητής τελικού κώδικα Οπίσθιο τµήµα Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

17 ÊåöÜëáéï 2: ÔõðéêÝò ãëþóóåò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

18 ÔõðéêÝò ãëþóóåò (i) ÂáóéêÝò Ýííïéåò ÁëöÜâçôï Óýìâïëï ÓõìâïëïóåéñÜ ÌÞêïò óõìâïëïóåéñüò Óýíïëï óõìâïëïóåéñþí ìþêïõò n Óýíïëï üëùí ôùí óõìâïëïóåéñþí Σ = Σ n n=0 Σ a α α Σ n Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

19 ÔõðéêÝò ãëþóóåò (ii) ÂáóéêÝò Ýííïéåò ÊåíÞ óõìâïëïóåéñü (óõíý åéá) ÐáñÜèåóç óõìâïëïóåéñþí ÐáñÜèåóç óõìâïëïóåéñüò ìå ôïí åáõôü ôçò α 0 = ɛ α n+1 = αα n Ðñüèåìá, åðßèåìá, õðïóõìâïëïóåéñü ɛ αβ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

20 ÔõðéêÝò ãëþóóåò (iii) ÂáóéêÝò Ýííïéåò Ãëþóóá (óõíý åéá) íùóç ãëùóóþí L 1 L 2 = { α α L 1 α L 2 } ÐáñÜèåóç ãëùóóþí L 1 L 2 = { αβ α L 1 β L 2 } ÐáñÜèåóç ãëþóóáò ìå ôïí åáõôü ôçò L 0 = { ɛ } L n+1 = LL n Êëåßóéìï Þ Üóôñï ôïõ Kleene L = L n L + = LL n=0 L Σ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

21 ÔõðéêÝò ãëþóóåò (iv) ÃåííçôéêÜ ìïíôýëá ÃñáììáôéêÞ G = (T, N, P, S) T : ôåñìáôéêü óýìâïëá a N : ìç ôåñìáôéêü óýìâïëá A P : êáíüíåò ðáñáãùãþò α β S : áñ éêü óýìâïëï ÐáñáãùãÝò: áí α, β, γ, δ (T N) êáé (α β) P ôüôå γαδ γβδ Ãëþóóá: L(G) = { α T S + α } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

22 ÔõðéêÝò ãëþóóåò (v) Éåñáñ ßá Chomsky Ôýðïõ 0: üëåò ïé ãñáììáôéêýò, α β Ôýðïõ 1: ãñáììáôéêýò ìå óõìöñáæüìåíá (context-sensitive), α β ìå α β Ôýðïõ 2: ãñáììáôéêýò ùñßò óõìöñáæüìåíá (context-free) A β Ôýðïõ 3: êáíïíéêýò ãñáììáôéêýò (regular) A ab Þ A a ÅéäéêÞ ðåñßðôùóç: ãëþóóåò ðïõ ðáñüãïõí ôçí êåíþ óõìâïëïóåéñü Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

23 ÔõðéêÝò ãëþóóåò (vi) ÁíáãíùñéóôÝò Ôýðïõ 0: ìç áíþ Turing Ôýðïõ 1: ãñáììéêü ðåñéïñéóìýíç ìç áíþ Turing Ôýðïõ 2: áõôüìáôá óôïßâáò (push-down automata) ñþóéìá óôç óõíôáêôéêþ áíüëõóç Ôýðïõ 3: ðåðåñáóìýíá áõôüìáôá (nite automata) ñþóéìá óôç ëåêôéêþ áíüëõóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

24 ÊáíïíéêÝò ãëþóóåò (i) ÊáíïíéêÝò ãñáììáôéêýò Ìüíï êáíüíåò A ab Þ A a éóïäýíáìá A Ba Þ A a ÊáíïíéêÝò åêöñüóåéò (regular expressions) ÊåíÞ óõìâïëïóåéñü: ɛ ÊÜèå óýìâïëï ôïõ Σ: a ÐáñÜèåóç äýï êáíïíéêþí åêöñüóåùí: (rs) ÄéÜæåõîç äýï êáíïíéêþí åêöñüóåùí: (r s) Êëåßóéìï (Þ Üóôñï) Kleene: (r ) Óõíôïìïãñáößåò: áðáëïéöþ ðåñéôôþí ðáñåíèýóåùí r + [a 1, a 2,..., a n ] [a 1 a 2 ] r?. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

25 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

26 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

27 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

28 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

29 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) ([1-9][0-9] 0) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

30 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) ðñïáéñåôéêü: õðïäéáóôïëþ êáé êëáóìáôéêü ìýñïò ([1-9][0-9] 0) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

31 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) ðñïáéñåôéêü: õðïäéáóôïëþ êáé êëáóìáôéêü ìýñïò ([1-9][0-9] 0)(\.[0-9] + )? Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

32 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) ðñïáéñåôéêü: õðïäéáóôïëþ êáé êëáóìáôéêü ìýñïò ðñïáéñåôéêü: åêèýôçò ìå Þ ùñßò ðñüóçìï ([1-9][0-9] 0)(\.[0-9] + )? Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

33 ÊáíïíéêÝò ãëþóóåò (ii) Ðáñáäåßãìáôá êáíïíéêþí åêöñüóåùí ÁêÝñáéåò óôáèåñýò ùñßò ðñüóçìï óôçí Pascal Ýíá Þ ðåñéóóüôåñá äåêáäéêü øçößá [0-9] + ÁñéèìçôéêÝò óôáèåñýò ùñßò ðñüóçìï óôç C áêýñáéï ìýñïò ðïõ äåí áñ ßæåé ìå ìçäýí, åêôüò áí åßíáé ìçäåíéêü (ãéáôß;) ðñïáéñåôéêü: õðïäéáóôïëþ êáé êëáóìáôéêü ìýñïò ðñïáéñåôéêü: åêèýôçò ìå Þ ùñßò ðñüóçìï ([1-9][0-9] 0)(\.[0-9] + )?((E e)(+ )?[0-9] + )? Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

34 ÐåðåñáóìÝíá áõôüìáôá (i) 0 0 A 1 1 B ÊáôáóôÜóåéò êáé ìåôáâüóåéò ÍôåôåñìéíéóôéêÜ (ÍÐÁ), ìç íôåôåñìéíéóôéêü (ÌÐÁ) êáé ÌÐÁ ìå êåíýò ìåôáâüóåéò (ÌÐÁ-ɛ) Áñ éêþ êáôüóôáóç, ôåëéêýò êáôáóôüóåéò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

35 ÐåðåñáóìÝíá áõôüìáôá (ii) 0 0 A 1 1 B Ðïéá ãëþóóá áíáãíùñßæåé; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

36 ÐåðåñáóìÝíá áõôüìáôá (ii) 0 0 A 1 1 B Ðïéá ãëþóóá áíáãíùñßæåé; Ôç ãëþóóá ôùí óõìâïëïóåéñþí ðïõ áðïôåëïýíôáé áðü 0 êáé 1 êáé ðåñéý ïõí Üñôéï áñéèìü 1 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

37 ÊáíïíéêÝò ãëþóóåò, áíáóêüðçóç ÁíáãùãÝò êáé éóïäõíáìßåò êáíïíéêþ ãñáììáôéêþ ÌÐÁ-ɛ êáíïíéêþ Ýêöñáóç ÌÐÁ-ɛ ÌÐÁ-ɛ Åëá éóôïðïßçóç ÍÐÁ ÌÐÁ-ɛ êáíïíéêþ ãñáììáôéêþ ÌÐÁ-ɛ êáíïíéêþ Ýêöñáóç ÍÐÁ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

38 ÊåöÜëáéï 3: ËåêôéêÞ áíüëõóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

39 ËåêôéêÞ áíüëõóç ËåêôéêÝò ìïíüäåò (tokens) Áíáãíùñßæïíôáé ìå ðåðåñáóìýíá áõôüìáôá ðïõ: äéáâüæïõí åíäå ïìýíùò ðåñéóóüôåñïõò áñáêôþñåò ïðéóèïäñïìïýí áí ñåéáóôåß äéáèýôïõí Ýîïäï ðïõ ñçóéìïðïéåßôáé óôç óõíôáêôéêþ áíüëõóç Åéäéêüò óõìâïëéóìüò: äéáãñüììáôá ìåôüâáóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

40 ÄéáãñÜììáôá ìåôüâáóçò (i) ÁíáãíùñéóôéêÜ ôçò Pascal L 0 L 1 D Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

41 ÄéáãñÜììáôá ìåôüâáóçò (i) ÁíáãíùñéóôéêÜ ôçò Pascal L 0 L 1 D L L * όχι L/D (T_id) D Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

42 ÄéáãñÜììáôá ìåôüâáóçò (ii) ÔåëåóôÝò > êáé >= 0 > 1 = 2 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

43 ÄéáãñÜììáôá ìåôüâáóçò (ii) ÔåëåóôÝò > êáé >= 0 > 1 = 2 * όχι = 2 (T_gt) 0 > 1 = 3 (T_ge) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

44 ÊáôáóêåõÞ ôïõ ËÁ (i) ÊáôáãñáöÞ êáé ôáîéíüìçóç áñáêôþñùí mapping : (ASCII { EOF }) Σ ÊáôáãñáöÞ êáé ôáîéíüìçóç ëåêôéêþí ìïíüäùí Êùäéêïðïßçóç ëåêôéêþí ìïíüäùí Áêïëïõèßá áñáêôþñùí (lexeme) Ó åäßáóç ôïõ äéáãñüììáôïò ìåôüâáóçò Õëïðïßçóç ôïõ ëåêôéêïý áíáëõôþ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

45 ÊáôáóêåõÞ ôïõ ËÁ (ii) ÅðéìÝñïõò èýìáôá Ôñüðïò äéá ùñéóìïý ëåêôéêþí ìïíüäùí Ó üëéá ÄéÜêñéóç ðåæþí / êåöáëáßùí ãñáììüôùí ÅíäéÜìåóç ìíþìç (buer) ÁíÜíçøç áðü óöüëìáôá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

46 ÊáôáóêåõÞ ôïõ ËÁ (iii) W 0. ; ( ) = + - EOF * (T_dot) (T_smcolon) (T_lparen) (T_rparen) (T_eq) (T_plus) (T_minus) (T_eof) : < > / * Ó åäßáóç óõíïëéêïý äéáãñüììáôïò ìåôüâáóçò = 24 (T_assign) L E όχι = * (T_colon) = όχι = = όχι = = όχι = * όχι * 25 (T_le) όχι L E D _ (T_lt) * * 27 (T_ge) 42 (T_gt) * 28 (T_ne) 43 (T_div) * 29 (T_power) 44 (T_times) * L E D _ (T_id) όχι D. Ε όχι D Ε D * D 7. 8 E D 11 όχι D 46 D Ε D D (T_const) { 12 } 0 όχι } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

47 ÊáôáóêåõÞ ôïõ ËÁ (iv) Åíáëëáêôéêïß ôñüðïé õëïðïßçóçò: åéñùíáêôéêü Ìå ðßíáêá ìåôáâüóåùí Ìå ôï ìåôáåñãáëåßï ex Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

48 Õëïðïßçóç ËÁ ìå ôï ex (i) Ìåôáåñãáëåßï ex: ãåííþôïñáò ËÁ Åßóïäïò: ìåôáðñüãñáììá ðïõ ðåñéãñüöåé ôéò ëåêôéêýò ìïíüäåò îïäïò: ðñüãñáììá óå C Ç óõíüñôçóç yylex õëïðïéåß ôï ËÁ ÅðéóôñÝöåé ôïí êùäéêü ôçò ëåêôéêþò ìïíüäáò ðïõ áíáãíùñßóôçêå, Þ 0 óôï ôýëïò ôçò óõìâïëïóåéñüò åéóüäïõ Ôïðïèåôåß óôç ìåôáâëçôþ yytext ôçí áíôßóôïé ç áêïëïõèßá áñáêôþñùí (lexeme) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

49 Õëïðïßçóç ËÁ ìå ôï ex (ii) ÄïìÞ ôïõ ìåôáðñïãñüììáôïò ÌÝñïò Á %% ÌÝñïò Â %% ÌÝñïò Ã Êáé ôá ôñßá ìýñç ìðïñïýí íá åßíáé êåíü Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

50 Õëïðïßçóç ËÁ ìå ôï ex (iii) ÌÝñïò Á, ðåñéý åé Ó üëéá, üðùò óôç C Êþäéêá C, ìýóá óå %{ êáé %} ÌíçìïíéêÜ ïíüìáôá ùò óõíôïìïãñáößåò êáíïíéêþí åêöñüóåùí Äçëþóåéò áñ éêþí êáôáóôüóåùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

51 Õëïðïßçóç ËÁ ìå ôï ex (iv) ÌÝñïò Á, ðáñüäåéãìá %{ #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 */ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

52 Õëïðïßçóç ËÁ ìå ôï ex (v) ÌÝñïò Â, ðåñéý åé êáíüíåò ôçò ìïñöþò êáíïíéêþ Ýêöñáóç åíýñãåéá ÊÜèå åíýñãåéá åßíáé ìéá åíôïëþ ôçò C Ëåéôïõñãßá: ÄéáâÜæåôáé ôï ìáêñýôåñï ðñüèåìá ôçò óõìâïëïóåéñüò åéóüäïõ ðïõ ìðïñåß íá áíáãíùñéóôåß áðü êüðïéá êáíïíéêþ Ýêöñáóç Åêôåëåßôáé ç áíôßóôïé ç åíýñãåéá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

53 Õëïðïßçóç ËÁ ìå ôï ex (vi) ÊáíïíéêÝò åêöñüóåéò a Ï áñáêôþñáò a.. ÏðïéïóäÞðïôå áñáêôþñáò åêôüò ôçò áëëáãþò ãñáììþò. \x Áí x Ýíá áðü ôá a, b, f, n, r, t, v Þ 0, ôüôå üðùò óôç C, áëëéþò ï ßäéïò ï áñáêôþñáò x. \123 Ï áñáêôþñáò ASCII ìå ïêôáäéêþ ôéìþ 123. \x3f Ï áñáêôþñáò ASCII ìå äåêáåîáäéêþ ôéìþ 3F. "abc" Ç óõìâïëïóåéñü abc. [abc] íáò áðü ôïõò áñáêôþñåò a, b Þ c. [a-z] íáò áðü ôïõò áñáêôþñåò a Ýùò z. [ac-fs] íáò áðü ôïõò áñáêôþñåò a, c Ýùò f, Þ s. [^a-z] íáò áðü ôïõò áñáêôþñåò åêôüò üóùí áíþêïõí óôçí ðåñéï Þ a Ýùò z. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

54 Õëïðïßçóç ËÁ ìå ôï ex (vii) ÊáíïíéêÝò åêöñüóåéò {name} (óõíý åéá) Ç êáíïíéêþ Ýêöñáóç ìå ìíçìïíéêü üíïìá name. rs Ç ðáñüèåóç ôùí r êáé s. r s Ç äéüæåõîç ôùí r êáé s. (r) Ç êáíïíéêþ Ýêöñáóç r. Ïé ðáñåíèýóåéò ñçóéìïðïéïýíôáé ãéá ïìáäïðïßçóç. r* Ç r åðáíáëáìâüíåôáé ìçäýí Þ ðåñéóóüôåñåò öïñýò. r+ Ç r åðáíáëáìâüíåôáé ìéá Þ ðåñéóóüôåñåò öïñýò. r? Ç r åßíáé ðñïáéñåôéêþ (åðáíáëáìâüíåôáé ìçäýí Þ ìéá öïñü). r{7} Ç r åðáíáëáìâüíåôáé áêñéâþò 7 öïñýò. r{3,5} Ç r åðáíáëáìâüíåôáé áðü 3 Ýùò 5 öïñýò. r{4,} Ç r åðáíáëáìâüíåôáé 4 Þ ðåñéóóüôåñåò öïñýò. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

55 Õëïðïßçóç ËÁ ìå ôï ex (viii) ÊáíïíéêÝò åêöñüóåéò (óõíý åéá) ^r Ç r áëëü ìüíï óôçí áñ Þ ìéáò ãñáììþò. r$ Ç r áëëü ìüíï óôï ôýëïò ìéáò ãñáììþò. <<EOF>> Ôï ôýëïò ôïõ áñ åßïõ åéóüäïõ. r/s Ç êáíïíéêþ Ýêöñáóç r áëëü ìüíï áí áêïëïõèåß ç êáíïíéêþ Ýêöñáóç s. <S>r Ç r áëëü ìüíï üôáí ç ôñý ïõóá áñ éêþ êáôüóôáóç åßíáé ç S. <S 1,S 2,S 3 >r Ç r, áëëü ìüíï üôáí ç ôñý ïõóá áñ éêþ êáôüóôáóç åßíáé ìéá áðü ôéò S 1, S 2 Þ S 3. <*>r Ç r óå ïðïéáäþðïôå áñ éêþ êáôüóôáóç. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

56 Õëïðïßçóç ËÁ ìå ôï ex (ix) ÌÝñïò Â, ðáñüäåéãìá "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"); } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

57 Õëïðïßçóç ËÁ ìå ôï ex (x) ÌÝñïò Ã, ðåñéý åé êþäéêá C ÐáñÜäåéãìá void ERROR (const char msg []) { fprintf(stderr, "ERROR: %s\n", msg); exit(1); } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

58 Õëïðïßçóç ËÁ ìå ôï ex (xi) ÐáñÜäåéãìá int main () { int token; (óõíý åéá) do { token = yylex(); printf("token=%d, lexeme=\"%s\"\n", token, yytext); } while (token!= T_eof); } return 0; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

59 Õëïðïßçóç ËÁ ìå ôï ex (xii) ÐáñÜäåéãìá: Áñßèìçóç ãñáììþí int lineno = 1; [ \t]+ { /* nothing */ } \n { lineno++; } void ERROR (const char msg []) { fprintf(stderr, "ERROR, line %d: %s\n", lineno, msg); exit(1); } Ðñüâëçìá: ËÜèïò áñßèìçóç óå ó üëéá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

60 Õëïðïßçóç ËÁ ìå ôï ex (xiii) Áñ éêýò êáôáóôüóåéò ÊïéíÝò: %s ÁðïêëåéóôéêÝò: %x Åíåñãïß êáíüíåò óå êüðïéá êáôüóôáóç ÌåôÜâáóç ìåôáîý êáôáóôüóåùí: BEGIN(s) Áñ éêþ êáôüóôáóç êáôü ôçí Ýíáñîç ëåéôïõñãßáò ôïõ ËÁ: INITIAL Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

61 Õëïðïßçóç ËÁ ìå ôï ex (xiv) ÐáñÜäåéãìá: Áñßèìçóç ãñáììþí (äéüñèùóç) %x COMMENT "(*" { BEGIN(COMMENT); } <COMMENT>"*)" { BEGIN(INITIAL); } <COMMENT>\n { lineno++; } <COMMENT>"*" { /* nothing */ } <COMMENT>[^*\n]+ { /* nothing */ } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

62 ÊåöÜëáéï 2: ÔõðéêÝò ãëþóóåò (ìýñïò 2ï) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

63 Ãëþóóåò ùñßò óõìöñáæüìåíá (i) ÃñáììáôéêÝò ùñßò óõìöñáæüìåíá: A α Óå êüèå ðáñáãùãþ Ýíá ìç ôåñìáôéêü óýìâïëï áíôéêáèßóôáôáé, âüóåé åíüò êáíüíá ÐïëëÝò äéáöïñåôéêýò ðáñáãùãýò äéáöýñïõí ìüíï óôç óåéñü ôùí áíôéêáôáóôüóåùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

64 Ãëþóóåò ùñßò óõìöñáæüìåíá (i) ÃñáììáôéêÝò ùñßò óõìöñáæüìåíá: A α Óå êüèå ðáñáãùãþ Ýíá ìç ôåñìáôéêü óýìâïëï áíôéêáèßóôáôáé, âüóåé åíüò êáíüíá ÐïëëÝò äéáöïñåôéêýò ðáñáãùãýò äéáöýñïõí ìüíï óôç óåéñü ôùí áíôéêáôáóôüóåùí Áñéóôåñüôåñç / äåîéüôåñç ðáñáãùãþ (leftmost / rightmost derivation) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

65 Ãëþóóåò ùñßò óõìöñáæüìåíá (i) ÃñáììáôéêÝò ùñßò óõìöñáæüìåíá: A α Óå êüèå ðáñáãùãþ Ýíá ìç ôåñìáôéêü óýìâïëï áíôéêáèßóôáôáé, âüóåé åíüò êáíüíá ÐïëëÝò äéáöïñåôéêýò ðáñáãùãýò äéáöýñïõí ìüíï óôç óåéñü ôùí áíôéêáôáóôüóåùí Áñéóôåñüôåñç / äåîéüôåñç ðáñáãùãþ (leftmost / rightmost derivation) ÓõíôáêôéêÜ äýíôñá (parse trees) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

66 Ãëþóóåò ùñßò óõìöñáæüìåíá (ii) S aabc ɛ A csb Ab B bb a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

67 Ãëþóóåò ùñßò óõìöñáæüìåíá (ii) Ìßá ðáñáãùãþ S aa B c a A bbc acs B bbc ac S abbc acab B c acabac S aabc ɛ A csb Ab B bb a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

68 Ãëþóóåò ùñßò óõìöñáæüìåíá (ii) Ìßá ðáñáãùãþ S aa B c a A bbc acs B bbc ac S abbc acab B c acabac Áñéóôåñüôåñç ðáñáãùãþ S L a A BC L a A bbc L ac S BbBc L ac B bbc L acab B c L acabac S aabc ɛ A csb Ab B bb a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

69 Ãëþóóåò ùñßò óõìöñáæüìåíá (ii) Ìßá ðáñáãùãþ S aa B c a A bbc acs B bbc ac S abbc acab B c acabac Áñéóôåñüôåñç ðáñáãùãþ S L a A BC L a A bbc L ac S BbBc L ac B bbc L acab B c L acabac Äåîéüôåñç ðáñáãùãþ S R aa B c R a A ac R a A bac R acs B bac R ac S abac R acabac S aabc ɛ A csb Ab B bb a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

70 Ãëþóóåò ùñßò óõìöñáæüìåíá (ii) Ìßá ðáñáãùãþ S aa B c a A bbc acs B bbc ac S abbc acab B c acabac Áñéóôåñüôåñç ðáñáãùãþ S L a A BC L a A bbc L ac S BbBc L ac B bbc L acab B c L acabac Äåîéüôåñç ðáñáãùãþ S R aa B c R a A ac R a A bac R acs B bac R ac S abac R acabac S a A B c c S A S aabc ɛ A csb Ab B bb a B b a ε a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

71 Äéöïñïýìåíåò ãñáììáôéêýò (i) Äýï ãñáììáôéêýò åßíáé éóïäýíáìåò üôáí ðáñüãïõí ôçí ßäéá ãëþóóá. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

72 Äéöïñïýìåíåò ãñáììáôéêýò (i) Äýï ãñáììáôéêýò åßíáé éóïäýíáìåò üôáí ðáñüãïõí ôçí ßäéá ãëþóóá. Ìéá ãñáììáôéêþ åßíáé äéöïñïýìåíç (ambiguous) áí õðüñ ïõí äýï Þ ðåñéóóüôåñá óõíôáêôéêü äýíôñá ãéá ôçí ßäéá ðáñáãüìåíç óõìâïëïóåéñü Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

73 Äéöïñïýìåíåò ãñáììáôéêýò (i) Äýï ãñáììáôéêýò åßíáé éóïäýíáìåò üôáí ðáñüãïõí ôçí ßäéá ãëþóóá. Ìéá ãñáììáôéêþ åßíáé äéöïñïýìåíç (ambiguous) áí õðüñ ïõí äýï Þ ðåñéóóüôåñá óõíôáêôéêü äýíôñá ãéá ôçí ßäéá ðáñáãüìåíç óõìâïëïóåéñü ÃñáììáôéêÝò êáé ãëþóóåò åããåíþò äéöïñïýìåíåò (inherently ambiguous) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

74 Äéöïñïýìåíåò ãñáììáôéêýò (i) Äýï ãñáììáôéêýò åßíáé éóïäýíáìåò üôáí ðáñüãïõí ôçí ßäéá ãëþóóá. Ìéá ãñáììáôéêþ åßíáé äéöïñïýìåíç (ambiguous) áí õðüñ ïõí äýï Þ ðåñéóóüôåñá óõíôáêôéêü äýíôñá ãéá ôçí ßäéá ðáñáãüìåíç óõìâïëïóåéñü ÃñáììáôéêÝò êáé ãëþóóåò åããåíþò äéöïñïýìåíåò (inherently ambiguous) ñþóç äéöïñïýìåíùí ãñáììáôéêþí óôçí ðåñéãñáöþ ôçò óýíôáîçò ãëùóóþí ðñïãñáììáôéóìïý Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

75 Äéöïñïýìåíåò ãñáììáôéêýò ÐáñÜäåéãìá: îåêñýìáóôï if (dangling if) (ii) stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

76 Äéöïñïýìåíåò ãñáììáôéêýò ÐáñÜäåéãìá: îåêñýìáóôï if (dangling if) (ii) stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 Äéöïñïýìåíï: óå ðïéï if áíôéóôïé åß ôï else; if c1 if c2 s1 else s2 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

77 Äéöïñïýìåíåò ãñáììáôéêýò ÐáñÜäåéãìá: îåêñýìáóôï if (dangling if) (ii) stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 Äéöïñïýìåíï: óå ðïéï if áíôéóôïé åß ôï else; if c1 if c2 s1 else s2 stmt if cond stmt c1 if cond stmt else stmt c2 s1 s2 if c1 ( if c2 s1 else s2 ) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

78 Äéöïñïýìåíåò ãñáììáôéêýò ÐáñÜäåéãìá: îåêñýìáóôï if (dangling if) (ii) stmt if cond stmt else stmt if cond stmt s1 s2 cond c1 c2 Äéöïñïýìåíï: óå ðïéï if áíôéóôïé åß ôï else; if c1 if c2 s1 else s2 stmt stmt if cond stmt if cond stmt else stmt c1 if cond stmt else stmt c1 if cond stmt s2 c2 s1 s2 c2 s1 if c1 ( if c2 s1 else s2 ) if c1 ( if c2 s1 ) else s2 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

79 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (i) Backus-Naur Form (BNF) Óýìâïëï ::= óôïõò êáíüíåò Ìç ôåñìáôéêü óýìâïëá óå ãùíéáêýò ðáñåíèýóåéò, ð.. expr Óýìâïëï ãéá äéüæåõîç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

80 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (i) Backus-Naur Form (BNF) Óýìâïëï ::= óôïõò êáíüíåò Ìç ôåñìáôéêü óýìâïëá óå ãùíéáêýò ðáñåíèýóåéò, ð.. expr Óýìâïëï ãéá äéüæåõîç unsigned-number ::= integer-part dec-fraction exp-part integer-part dec-fraction exp-part sign ::= digit integer-part digit ::=. integer-part ɛ ::= E sign integer-part e sign integer-part ɛ ::= + ɛ digit ::= Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

81 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (ii) Extended Backus-Naur Form (EBNF) ÔåñìáôéêÜ óýìâïëá óå åéóáãùãéêü ÐáñåíèÝóåéò ãéá ïìáäïðïßçóç Áãêýëåò ãéá ðñïáéñåôéêü ôìþìáôá Óýìâïëá êáé + ãéá åðáíüëçøç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

82 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (ii) Extended Backus-Naur Form (EBNF) ÔåñìáôéêÜ óýìâïëá óå åéóáãùãéêü ÐáñåíèÝóåéò ãéá ïìáäïðïßçóç Áãêýëåò ãéá ðñïáéñåôéêü ôìþìáôá Óýìâïëá êáé + ãéá åðáíüëçøç unsigned-number ::= digit + [ \." digit + ] [ (\E" \e") [ \+" \ " ] digit + ] digit ::= \0" \1" \2" \3" \4" \5" \6" \7" \8" \9" Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

83 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (iii) ÓõíôáêôéêÜ äéáãñüììáôá ÔåñìáôéêÜ óýìâïëá óå ïâüë Ìç ôåñìáôéêü óýìâïëá óå ïñèïãþíéá Äéáäï Þ óõìâüëùí (ðáñüèåóç) ìå âýëç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

84 Ôñüðïé ðáñüóôáóçò ãñáììáôéêþí (iii) ÓõíôáêôéêÜ äéáãñüììáôá ÔåñìáôéêÜ óýìâïëá óå ïâüë Ìç ôåñìáôéêü óýìâïëá óå ïñèïãþíéá Äéáäï Þ óõìâüëùí (ðáñüèåóç) ìå âýëç unsigned-number E + digit. digit digit e Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

85 ÊåöÜëáéï 4: ÓõíôáêôéêÞ áíüëõóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

86 ÓõíôáêôéêÞ áíüëõóç Óõíôáêôéêü äýíôñï (parse tree) ÊáôáóêåõÜæåôáé ìå äýï ôñüðïõò: ÊáèïäéêÜ Áðü ðüíù ðñïò ôá êüôù (top-down) äçëáäþ îåêéíþíôáò áðü ôç ñßæá êáé ðñï ùñþíôáò ðñïò ôá öýëëá ÁíïäéêÜ Áðü êüôù ðñïò ôá ðüíù (bottom-up) äçëáäþ îåêéíþíôáò áðü ôá öýëëá êáé ðñï ùñþíôáò ðñïò ôç ñßæá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

87 Top-down êáé bottom-up από πάνω προς τα κάτω (top-down) 1 S a A B c 13 4 A b a 5 6 c S 8 B 7 ε 9 a Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

88 Top-down êáé 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 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

89 ÂïçèçôéêÝò Ýííïéåò (i) Óýíïëá FIRST óôù óõìâïëïóåéñü α (T N) Ôï óýíïëï FIRST(α) T { ɛ } ðåñéý åé ôá ôåñìáôéêü óýìâïëá áðü ôá ïðïßá áñ ßæïõí ïé óõìâïëïóåéñýò ðïõ ðáñüãïíôáé áðü ôçí α Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

90 ÂïçèçôéêÝò Ýííïéåò (i) Óýíïëá FIRST óôù óõìâïëïóåéñü α (T N) Ôï óýíïëï FIRST(α) T { ɛ } ðåñéý åé ôá ôåñìáôéêü óýìâïëá áðü ôá ïðïßá áñ ßæïõí ïé óõìâïëïóåéñýò ðïõ ðáñüãïíôáé áðü ôçí α Áí α aβ ôüôå a FIRST(α) Áí α ɛ ôüôå ɛ FIRST(α) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

91 ÂïçèçôéêÝò Ýííïéåò (ii) Óýíïëá FOLLOW óôù ìç ôåñìáôéêü óýìâïëï A Ôï óýíïëï FOLLOW(A) T { EOF } ðåñéý åé ôá ôåñìáôéêü óýìâïëá ðïõ ìðïñïýí íá áêïëïõèïýí ôï A óôç äéüñêåéá ìéáò ðáñáãùãþò Áí ôï A ìðïñåß íá åßíáé ôï ôåëåõôáßï óýìâïëï óå ìéá ðáñáãùãþ, ôüôå EOF FOLLOW(A) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

92 ÂïçèçôéêÝò Ýííïéåò (ii) Óýíïëá FOLLOW óôù ìç ôåñìáôéêü óýìâïëï A Ôï óýíïëï FOLLOW(A) T { EOF } ðåñéý åé ôá ôåñìáôéêü óýìâïëá ðïõ ìðïñïýí íá áêïëïõèïýí ôï A óôç äéüñêåéá ìéáò ðáñáãùãþò Áí ôï A ìðïñåß íá åßíáé ôï ôåëåõôáßï óýìâïëï óå ìéá ðáñáãùãþ, ôüôå EOF FOLLOW(A) Áí S αaaβ ôüôå a FOLLOW(A) Áí S αa ôüôå EOF FOLLOW(A) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

93 Õðïëïãéóìüò FIRST (i) FIRST(ɛ) = { ɛ } FIRST(aβ) = { a } áí ɛ FIRST(A) ôüôå FIRST(Aβ) = FIRST(A) áí ɛ FIRST(A) ôüôå FIRST(Aβ) = (FIRST(A) { ɛ }) FIRST(β) ãéá êüèå êáíüíá A α, ðñýðåé FIRST(α) FIRST(A) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

94 Õðïëïãéóìüò FIRST (ii) ÐáñÜäåéãìá FIRST(E) = { id, ( } FIRST(T) = { id, ( } FIRST(F) = { id, ( } FIRST(E ) = { +, ɛ } FIRST(T ) = { *, ɛ } E T E E ɛ E + T E T F T T ɛ T * F T F ( E ) F id Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

95 Õðïëïãéóìüò FOLLOW (i) EOF FOLLOW(S) ãéá êüèå êáíüíá A αbβ (FIRST(β) { ɛ }) FOLLOW(B) áí ɛ FIRST(β) ôüôå FOLLOW(A) FOLLOW(B) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

96 Õðïëïãéóìüò FOLLOW (ii) ÐáñÜäåéãìá FOLLOW(E) = { ), EOF } FOLLOW(T) = { +, ), EOF } FOLLOW(F) = { *, +, ), EOF } FOLLOW(E ) = { ), EOF } FOLLOW(T ) = { +, ), EOF } FIRST(E ) = { +, ɛ } FIRST(T ) = { *, ɛ } E T E E ɛ E + T E T F T T ɛ T * F T F ( E ) F id Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

97 ÓÁ bottom-up (i) Ç óõíôáêôéêþ áíüëõóç îåêéíü áðü ôá öýëëá ÊÜèå öïñü, áíáæçôü: ôïí áñéóôåñüôåñï êüìâï ôïõ äýíôñïõ ðïõ äåí Ý åé áêüìá êáôáóêåõáóôåß åíþ üëá ôá ðáéäéü ôïõ Ý ïõí êáôáóêåõáóôåß ÅðáíáëáìâÜíåé ìý ñé íá êáôáóêåõáóôåß ç ñßæá ÅëÜôôùóç (reducing): ç åðéëïãþ ôùí êüìâùí ðïõ èá áðïôåëýóïõí ôá ðáéäéü åíüò íýïõ êüìâïõ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

98 ÓÁ bottom-up (ii) B B D D D D r a. b r a. b r a. b S r B B D B, D D a b B B S B B D D D D r a. b r a. b Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

99 ÓÁ bottom-up (iii) ÓÁ ïëßóèçóçò-åëüôôùóçò (shift-reduce) ñçóéìïðïéïýí ìéá (áñ éêü êåíþ) óôïßâá üðïõ ôïðïèåôïýí óýìâïëá ôçò ãñáììáôéêþò Ïëßóèçóç (shift): ìåôáöïñü åíüò óõìâüëïõ áðü ôçí åßóïäï óôçí êïñõöþ ôçò óôïßâáò ÅëÜôôùóç (reduce): áöáßñåóç áðü ôçí êïñõöþ ôçò óôïßâáò ôïõ äåîéïý ìýëïõò åíüò êáíüíá êáé ðñüóèåóç ôïõ áñéóôåñïý ìýëïõò Åðéôõ ßá: ç óôïßâá ðåñéý åé ìüíï ôï S êáé ôá óýìâïëá ôçò åéóüäïõ Ý ïõí åîáíôëçèåß Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

100 ÓÁ bottom-up (iv) âþìá óôïßâá åßóïäïò êßíçóç 0 ɛ r a, b ïëßóèçóç 1 r a, b ïëßóèçóç 2 r a, b åëüôôùóç ìå D a 3 r D, b åëüôôùóç ìå B D 4 r B, b ïëßóèçóç (ü é åëüôôùóç ìå S r B) 5 r B, b ïëßóèçóç 6 r B, b ɛ åëüôôùóç ìå D b 7 r B, D ɛ åëüôôùóç ìå B B, D (ü é åëüôôùóç ìå B D) 8 r B ɛ åëüôôùóç ìå S r B 9 S ɛ áíáãíþñéóç S r B B D B, D D a b Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

101 ÓÁ bottom-up (v) συµβολοσειρά εισόδου a 1 a 2... a n EOF LR(k) επόµενο σύµβολο LR(0) SLR(1) LALR(1) LR(1) s m x m... κορυφή Πίνακες ελέγχου συντακτικής ανάλυσης LR(1) s 1 ACTION NEXT x 1 Συντακτικός Αναλυτής LR(1) s 0 στοίβα Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

102 Õëïðïßçóç ÓÁ ìå ôï bison (i) Ìåôáåñãáëåßï bison: ãåííþôïñáò ÓÁ LALR(1) Åßóïäïò: ìåôáðñüãñáììá ðïõ ðåñéãñüöåé ôç óýíôáîç êáé ôéò óçìáóéïëïãéêýò ñïõôßíåò îïäïò: ðñüãñáììá óå C Ç óõíüñôçóç yyparse õëïðïéåß ôï ÓÁ ÅðéóôñÝöåé 0 áí áíáãíùñéóôåß ç óõìâïëïóåéñü åéóüäïõ Þ 1 óå ðåñßðôùóç óõíôáêôéêïý óöüëìáôïò ÓõíåñãÜæåôáé ìå ôï ëåêôéêü áíáëõôþ (óõíüñôçóç yylex) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

103 Õëïðïßçóç ÓÁ ìå ôï bison (ii) ÄïìÞ ôïõ ìåôáðñïãñüììáôïò ÌÝñïò Á %% ÌÝñïò Â %% ÌÝñïò Ã Êáé ôá ôñßá ìýñç ìðïñïýí íá åßíáé êåíü Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

104 Õëïðïßçóç ÓÁ ìå ôï bison (iii) ÌÝñïò Á, ðåñéý åé Ó üëéá, üðùò óôç C Êþäéêá C, ìýóá óå %{ êáé %} Äçëþóåéò ëåêôéêþí ìïíüäùí Äçëþóåéò ôåëåóôþí ôçò áñ éêþò ãëþóóáò (ðñïôåñáéüôçôá, ðñïóåôáéñéóôéêüôçôá) ÄÞëùóç ôïõ óõíüëïõ óçìáóéïëïãéêþí ôéìþí (ôýðïò YYSTYPE Þ ìå ñþóç ôïõ %union) ÄÞëùóç ôïõ ôýðïõ ôçò óçìáóéïëïãéêþò ôéìþò êüèå óõìâüëïõ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

105 Õëïðïßçóç ÓÁ ìå ôï bison (iv) ÌÝñïò Á, ðáñüäåéãìá %{ 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 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

106 Õëïðïßçóç ÓÁ ìå ôï bison (v) ÌÝñïò Á, ðáñüäåéãìá (óõíý åéá) %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 Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

107 Õëïðïßçóç ÓÁ ìå ôï bison (vi) ÌÝñïò Â, ðåñéý åé: ôïõò êáíüíåò ðáñáãùãþò óå ìïñöþ BNF óçìáóéïëïãéêýò ñïõôßíåò ðïõ åêôåëïýíôáé êáôü ôç óõíôáêôéêþ áíüëõóç Ïé êáíüíåò Ý ïõí ôç ìïñöþ: A : x 1 1 x x 1 m 1 x 2 1 x x 2 m 2 x n 1 x n 2... x n m n ; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

108 Õëïðïßçóç ÓÁ ìå ôï bison (vii) ÌÝñïò Â, ðáñüäåéãìá program : { count=0; } block_list { printf("counted %d block(s)\n", count); } ; block_list : /* nothing */ block_list block { count++; } ; block : "begin" block_list "end" ; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

109 Õëïðïßçóç ÓÁ ìå ôï bison (viii) ÌÝñïò Ã, ðåñéý åé êþäéêá C Ôï ìåôáðñüãñáììá ôïõ bison áíáëáìâüíåé ôïí êåíôñéêü Ýëåã ï ôïõ ìåôáãëùôôéóôþ ðïõ åðéôõã Üíåôáé ìå ôç óõíåñãáóßá ôùí ðáñáêüôù: ôïõ ëåêôéêïý áíáëõôþ ôïõ óõíôáêôéêïý áíáëõôþ ôïõ ðßíáêá óõìâüëùí ôïõ óçìáóéïëïãéêïý áíáëõôþ ôïõ ãåííþôïñá åíäéüìåóïõ êþäéêá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

110 Õëïðïßçóç ÓÁ ìå ôï bison (ix) ÌÝñïò Ã, ðáñüäåéãìá void yyerror (const char * msg) { fprintf(stderr, "syntax error in line %d: %s\n", linecount, msg); exit(1); } int main () { return yyparse(); } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

111 Õëïðïßçóç ÓÁ ìå ôï bison (x) ÐáñÜäåéãìá ìå óçìáóéïëïãéêýò ôéìýò E T E E + T T F T T * F F ( E ) F num Æçôïýìåíï: íá êáôáóêåõáóôåß ÓÁ ðïõ íá õðïëïãßæåé ôçí ôéìþ ìéáò áñéèìçôéêþò Ýêöñáóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

112 Õëïðïßçóç ÓÁ ìå ôï bison (xi) ÐáñÜäåéãìá (óõíý åéá) %{ typedef int YYSTYPE; %} %token T_num %% program : expression { printf("value: %d\n", $1); } ; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

113 Õëïðïßçóç ÓÁ ìå ôï bison (xii) ÐáñÜäåéãìá (óõíý åéá) expression : term { $$ = $1; } expression '+' term { $$ = $1 + $3; } ; term : factor { $$ = $1; } term '*' factor { $$ = $1 * $3; } ; Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

114 Õëïðïßçóç ÓÁ ìå ôï bison (xiii) ÐáñÜäåéãìá (óõíý åéá) factor : '(' expression ')' { $$ = $2; } T_num { $$ = $1; } ; %% Ðáñáëåßðïíôáé óôï ÌÝñïò Ã: ç óõíüñôçóç yylex (ðéèáíþò óå îå ùñéóôü áñ åßï, áí ñçóéìïðïéçèåß ôï ex) ïé óõíáñôþóåéò yyerror êáé main Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

115 Õëïðïßçóç ÓÁ ìå ôï bison (xiv) ÐáñÜäåéãìá Õëïðïßçóç ËÁ åéñùíáêôéêü 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; } Óôï ìýñïò à Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

116 Õëïðïßçóç ÓÁ ìå ôï bison (xv) ÐáñÜäåéãìá } (óõíý åéá) 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 Makele Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

117 Õëïðïßçóç ÓÁ ìå ôï bison (xvi) ÐáñÜäåéãìá Õëïðïßçóç ËÁ ìå ôï ex %{ #include "mytest2.tab.h" %} %% [0-9]+ { yylval = atoi(yytext); return T_num; } \( \) \+ \* { return yytext[0]; } [ \t\n]+ { /* nothing */ }. { yyerror("illegal character"); } %% mytest2.l Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

118 Õëïðïßçóç ÓÁ ìå ôï bison (xvii) Áõôïìáôïðïßçóç ôçò ìåôáãëþôôéóçò ËÁ êáé ÓÁ mytest2: mytest2.l mytest2.y bison -d mytest2.y flex -s mytest2.l gcc -o mytest2 mytest2.tab.c lex.yy.c \ -lfl Åðßëõóç óõãêñïýóåùí óôï bison shift-reduce: ðüíôá shift reduce-reduce: ï ðñþôïò êáíüíáò Makele Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

119 ÓÁ top-down (i) Ç óõíôáêôéêþ áíüëõóç îåêéíü áðü ôç ñßæá ÊÜèå öïñü, áíáæçôü: ôï ìç ôåñìáôéêü óýìâïëï ðïõ èá áíôéêáôáóôáèåß óõíþèùò åðéëýãåôáé ôï áñéóôåñüôåñï ôïí êáíüíá ðáñáãùãþò ðïõ èá åöáñìïóôåß âüóåé ôùí åðüìåíùí k ëåêôéêþí ìïíüäùí óôç óõìâïëïóåéñü åéóüäïõ: LL(k) ÅðáíáëáìâÜíåôáé ìý ñé íá åîáíôëçèïýí ôá ìç ôåñìáôéêü Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

120 ÃñáììáôéêÝò LL(1) Áðáñáßôçôåò ðñïûðïèýóåéò: Áðïõóßá áñéóôåñþò áíáäñïìþò (Üìåóçò Þ Ýììåóçò) Áðïõóßá êïéíïý ðñïèýìáôïò óå åíáëëáêôéêïýò êáíüíåò ÌåñéêÝò öïñýò åßíáé äõíáôüò ï ìåôáó çìáôéóìüò ìéáò ãñáììáôéêþò óå éóïäýíáìç LL(1) áðáëïéöþ áñéóôåñþò áíáäñïìþò áñéóôåñþ ðáñáãïíôïðïßçóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

121 Ìåôáó çìáôéóìüò óå LL(1) ÁíôéêáôÜóôáóç A α 1... α n B β 1 Aβ 2 A α 1... α n B β 1 α 1 β 2... β 1 α n β 2 ÁñéóôåñÞ ðáñáãïíôïðïßçóç A αβ 1... αβ n A αb B β 1... β n ÁðáëïéöÞ Üìåóçò áñéóôåñþò áíáäñïìþò A Aα 1... Aα n β 1... β m A β 1 B... β m B B α 1 B... α n B ɛ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

122 ÓÁ áíáäñïìéêþò êáôüâáóçò A α 1... α n ìåôáôñýðåôáé óå êþäéêá ôçò ìïñöþò: if token FIRST(α 1 ) then êþäéêáò ãéá ôçí áíáãíþñéóç ôçò α 1... else if token FIRST(α n ) then êþäéêáò ãéá ôçí áíáãíþñéóç ôçò α n else if ɛ FIRST(α 1 )... FIRST(α n ) then óõíôáêôéêü óöüëìá else if token FOLLOW(A) then óõíôáêôéêü óöüëìá end if Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

123 ÓÁ LL(1) (i) ñçóéìïðïéïýí ìéá óôïßâá üðïõ ôïðïèåôïýí óýìâïëá ôçò ãñáììáôéêþò áñ éêü ìüíï ôï S ÊÜèå öïñü åîåôüæåôáé ç êïñõöþ ôçò óôïßâáò: Áí åßíáé ôåñìáôéêü óýìâïëï êáé åßíáé ôï ßäéï ìå ôï åðüìåíï ôçò óõìâïëïóåéñüò åéóüäïõ, ôüôå áöáéñïýíôáé êáé ôá äýï Áí åßíáé ìç ôåñìáôéêü óýìâïëï, ôüôå áíüëïãá ìå ôï åðüìåíï ôçò óõìâïëïóåéñüò åéóüäïõ åöáñìüæåôáé êüðïéïò êáíüíáò Åðéôõ ßá: ç óôïßâá êáé ç óõìâïëïóåéñü åéóüäïõ åßíáé Üäåéåò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

124 ÓÁ LL(1) (ii) συµβολοσειρά εισόδου a 1 a 2... a n EOF Ï áëãüñéèìïò êáôáóêåõþò ôïõ ðßíáêá M ïñßæåé ôçí ïéêïãýíåéá ôùí ãëùóóþí LL(1) x m... κορυφή επόµενο σύµβολο Πίνακας M συντακτικής ανάλυσης LL(1) x 2 x 1 στοίβα Συντακτικός Αναλυτής LL(1) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

125 ÊáôáóêåõÞ ÓÁ LL(1) E T E E + T E ɛ T F T T * F T ɛ 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 } 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) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

126 Ëåéôïõñãßá ÓÁ LL(1) 0 E id + id * id EOF E T E 1 E T id + id * id EOF T F T 2 E T F id + id * id EOF F id 3 E T id id + id * id EOF 4 E T + id * id EOF T ɛ 5 E + id * id EOF E + T E 6 E T + + id * id EOF 7 E T id * id EOF T F T 8 E T F id * id EOF F id 9 E T id id * id EOF 10 E T * id EOF T * F T 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 áíáãíþñéóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

127 ÊåöÜëáéï 2: ÔõðéêÝò ãëþóóåò (ìýñïò 3ï) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

128 ÊáôçãïñéêÝò ãñáììáôéêýò (i) ÊáôçãïñéêÞ ãñáììáôéêþ (attribute grammar): ãñáììáôéêþ ùñßò óõìöñáæüìåíá üðïõ êüèå óýìâïëï öýñåé Ýíá óýíïëï êáôçãïñçìüôùí Ïé ôéìýò ôùí êáôçãïñçìüôùí õðïëïãßæïíôáé âüóåé ôïõ óõíôáêôéêïý äýíôñïõ: ÓõíèåôéêÜ êáôçãïñþìáôá: ïé ôéìýò ôïõò åîáñôþíôáé ìüíï áðü êáôçãïñþìáôá ôùí ðáéäéþí êüèå êüìâïõ Êëçñïíïìïýìåíá êáôçãïñþìáôá: ïé ôéìýò ôïõò åîáñôþíôáé ìüíï áðü êáôçãïñþìáôá ôïõ \ðáôýñá" êáé ôùí \áäåëöþí" êüèå êüìâïõ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

129 ÊáôçãïñéêÝò ãñáììáôéêýò (ii) 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 } Óçìáóéïëïãéêïß êáíüíåò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

130 ÊåöÜëáéï 5: Ðßíáêáò óõìâüëùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

131 Ðßíáêáò óõìâüëùí Óõãêåíôñþíåé ðëçñïöïñßåò ãéá ôá ïíüìáôá ðïõ åìöáíßæïíôáé óôï áñ éêü ðñüãñáììá Ïíüìáôá åßíáé: ôï ðñüãñáììá ïé ìåôáâëçôýò ôá õðïðñïãñüììáôá (äéáäéêáóßåò, óõíáñôþóåéò) ïé ðáñüìåôñïé ôùí õðïðñïãñáììüôùí ïé åôéêýôôåò åíôïëþí ïé óôáèåñýò ïé ôýðïé äåäïìýíùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

132 áñáêôçñéóôéêü ïíïìüôùí Êáôçãïñßá áðïèþêåõóçò (storage class) ÊáèïëéêÝò ìåôáâëçôýò (global variables) ÌåôáâëçôÝò óôïßâáò (stack variables) ÓôáôéêÝò ìåôáâëçôýò (static variables) ÅìâÝëåéá (scope) Ïñáôüôçôá (visibility) ÄéÜñêåéá æùþò (lifetime) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

133 Ðåñéå üìåíá ðßíáêá óõìâüëùí ÅìâÝëåéá (Ýììåóá) Ïñáôüôçôá (Ýììåóá) ÄéÜñêåéá æùþò Ôýðïò ÈÝóç (äéåýèõíóç ìíþìçò, êáôá ùñçôþò,...) Áñéèìüò ðáñáìýôñùí õðïðñïãñüììáôïò Ôýðïò ðáñáìýôñùí õðïðñïãñüììáôïò Ôñüðïò ðåñüóìáôïò ðáñáìýôñùí õðïðñïãñüììáôïò Ôýðïò áðïôåëýóìáôïò óõíüñôçóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

134 ÏñãÜíùóç ðßíáêá óõìâüëùí ÂáóéêÝò ëåéôïõñãßåò ÐñïóèÞêç ïíüìáôïò ÁíáæÞôçóç ïíüìáôïò ÄéáãñáöÞ ïíüìáôïò Þ ïìüäáò ïíïìüôùí Êüóôïò ðñïóèþêçò Þ áíáæþôçóçò áíüëïãá ìå ôçí õëïðïßçóç: ãñáììéêþ ëßóôá O(n) äõáäéêü äýíôñï áíáæþôçóçò O(log n) ðßíáêáò êáôáêåñìáôéóìïý O(n/k) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

135 Õëïðïßçóç ìå ÐÊ k 2 k 1 b c x a aa y c b a εµβέλεια 3 εµβέλεια 2 εµβέλεια πίνακας κατακερµατισµού στοίβα αποθήκευσης στοίβα εµβελειών Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

136 ÊåöÜëáéï 6: ÓçìáóéïëïãéêÞ áíüëõóç Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

137 Óýíôáîç êáé óçìáóéïëïãßá Óýíôáîç: ìïñöþ êáé äïìþ ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

138 Óýíôáîç êáé óçìáóéïëïãßá Óýíôáîç: ìïñöþ êáé äïìþ ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí Óçìáóéïëïãßá: åñìçíåßá ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

139 Óýíôáîç êáé óçìáóéïëïãßá Óýíôáîç: ìïñöþ êáé äïìþ ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí Óçìáóéïëïãßá: åñìçíåßá ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí ÓôáôéêÞ óçìáóéïëïãßá: åíôïðéóìüò óçìáóéïëïãéêþí óöáëìüôùí êáôü ôç äéüñêåéá ôçò ìåôáãëþôôéóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

140 Óýíôáîç êáé óçìáóéïëïãßá Óýíôáîç: ìïñöþ êáé äïìþ ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí Óçìáóéïëïãßá: åñìçíåßá ôùí êáëþò ó çìáôéóìýíùí ðñïãñáììüôùí ÓôáôéêÞ óçìáóéïëïãßá: åíôïðéóìüò óçìáóéïëïãéêþí óöáëìüôùí êáôü ôç äéüñêåéá ôçò ìåôáãëþôôéóçò ÄõíáìéêÞ óçìáóéïëïãßá: áðüäïóç åñìçíåßáò óôá ðñïãñüììáôá êáôü ôçí åêôýëåóþ ôïõò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

141 ÓôáôéêÞ óçìáóéïëïãßá (i) ÐåñéâÜëëïíôá ôýðùí Γ 1 = { i integer, x real } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

142 ÓôáôéêÞ óçìáóéïëïãßá (i) ÐåñéâÜëëïíôá ôýðùí Γ 1 = { i integer, x real } Ó Ýóç áíôéóôïß éóçò ôýðùí Γ E : τ Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

143 ÓôáôéêÞ óçìáóéïëïãßá (i) ÐåñéâÜëëïíôá ôýðùí Γ 1 = { i integer, x real } Ó Ýóç áíôéóôïß éóçò ôýðùí Γ E : τ Êáíüíåò ôýðùí Γ E 1 : integer Γ E 2 : integer Γ E 1 +E 2 : integer Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

144 ÓôáôéêÞ óçìáóéïëïãßá (ii) ÐáñáãùãÝò ôýðùí Γ 1 i : integer Γ 1 1 : integer Γ 1 i+1 : integer Γ 1 (i+1)*x : real Γ 1 x : real Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

145 ÓôáôéêÞ óçìáóéïëïãßá (ii) ÐáñáãùãÝò ôýðùí Γ 1 i : integer Γ 1 1 : integer Γ 1 i+1 : integer Γ 1 (i+1)*x : real Γ 1 x : real Ç áíôéóôïß éóç ôýðùí ìå êáíüíåò ôýðùí åðåêôåßíåôáé óå üëá ôá ôìþìáôá ðñïãñüììáôïò Γ E : boolean Γ S : stmt Γ while E do S : stmt Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

146 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

147 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) áêïëïõèßá õðïëïãéóôéêþí âçìüôùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

148 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) áêïëïõèßá õðïëïãéóôéêþí âçìüôùí ÄçëùôéêÞ óçìáóéïëïãßá (denotational semantics) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

149 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) áêïëïõèßá õðïëïãéóôéêþí âçìüôùí ÄçëùôéêÞ óçìáóéïëïãßá (denotational semantics) ìáèçìáôéêþ óõíüñôçóç áðü ôï ðåäßï ôùí äåäïìýíùí åéóüäïõ óôï ðåäßï ôùí áðïôåëåóìüôùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

150 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) áêïëïõèßá õðïëïãéóôéêþí âçìüôùí ÄçëùôéêÞ óçìáóéïëïãßá (denotational semantics) ìáèçìáôéêþ óõíüñôçóç áðü ôï ðåäßï ôùí äåäïìýíùí åéóüäïõ óôï ðåäßï ôùí áðïôåëåóìüôùí ÁîéùìáôéêÞ óçìáóéïëïãßá (axiomatic semantics) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

151 ÄõíáìéêÞ óçìáóéïëïãßá (i) ËåéôïõñãéêÞ óçìáóéïëïãßá (operational semantics) áêïëïõèßá õðïëïãéóôéêþí âçìüôùí ÄçëùôéêÞ óçìáóéïëïãßá (denotational semantics) ìáèçìáôéêþ óõíüñôçóç áðü ôï ðåäßï ôùí äåäïìýíùí åéóüäïõ óôï ðåäßï ôùí áðïôåëåóìüôùí ÁîéùìáôéêÞ óçìáóéïëïãßá (axiomatic semantics) ç åñìçíåßá êáèïñßæåôáé Ýììåóá ìýóù ëïãéêþí ðñïôüóåùí ðïõ ðåñéãñüöïõí éäéüôçôåò ôïõ ðñïãñüììáôïò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

152 ÄõíáìéêÞ óçìáóéïëïãßá (ii) Ç åíôïëþ áíüèåóçò I=E Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

153 ÄõíáìéêÞ óçìáóéïëïãßá (ii) Ç åíôïëþ áíüèåóçò I=E ËåéôïõñãéêÞ óçìáóéïëïãßá E, σ v I=E, σ σ[i v] Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

154 ÄõíáìéêÞ óçìáóéïëïãßá (ii) Ç åíôïëþ áíüèåóçò I=E ËåéôïõñãéêÞ óçìáóéïëïãßá E, σ v I=E, σ σ[i v] ÄçëùôéêÞ óçìáóéïëïãßá C[[I=E ]](s) = s[i E[[E ]](s)] Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

155 ÄõíáìéêÞ óçìáóéïëïãßá (ii) Ç åíôïëþ áíüèåóçò I=E ËåéôïõñãéêÞ óçìáóéïëïãßá E, σ v I=E, σ σ[i v] ÄçëùôéêÞ óçìáóéïëïãßá C[[I=E ]](s) = s[i E[[E ]](s)] ÁîéùìáôéêÞ óçìáóéïëïãßá { P [I E] } I=E { P } Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

156 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

157 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

158 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

159 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï (C) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

160 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç (C) (Java) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

161 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí (C) (Java) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

162 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí ð.. ïé ìåôáâëçôýò ïñßæïíôáé ðñéí ôç ñþóç ôïõò (C) (Java) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

163 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí ð.. ïé ìåôáâëçôýò ïñßæïíôáé ðñéí ôç ñþóç ôïõò ëåã ïò ìïíáäéêüôçôáò (C) (Java) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

164 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí ð.. ïé ìåôáâëçôýò ïñßæïíôáé ðñéí ôç ñþóç ôïõò ëåã ïò ìïíáäéêüôçôáò ð.. ïé óôáèåñýò óå ìßá äïìþ case åßíáé ìïíáäéêýò (C) (Java) (Pascal) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

165 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí ð.. ïé ìåôáâëçôýò ïñßæïíôáé ðñéí ôç ñþóç ôïõò ëåã ïò ìïíáäéêüôçôáò ð.. ïé óôáèåñýò óå ìßá äïìþ case åßíáé ìïíáäéêýò ëåã ïò óõíýðåéáò (C) (Java) (Pascal) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

166 Óçìáóéïëïãéêüò Ýëåã ïò (i) ëåã ïò ôýðùí ð.. ïé ôåëåóôýò åöáñìüæïíôáé óå êáôüëëçëá ôåëïýìåíá ëåã ïò ñïþò ð.. ü é continue Ýîù áðü âñü ï ð.. ïé ìåôáâëçôýò áñ éêïðïéïýíôáé ðñéí ôç ñþóç ëåã ïò ýðáñîçò ïíïìüôùí ð.. ïé ìåôáâëçôýò ïñßæïíôáé ðñéí ôç ñþóç ôïõò ëåã ïò ìïíáäéêüôçôáò ð.. ïé óôáèåñýò óå ìßá äïìþ case åßíáé ìïíáäéêýò ëåã ïò óõíýðåéáò ð.. óùóôü üíïìá õðïðñïãñüììáôïò óôï end (C) (Java) (Pascal) (Ada) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

167 Óçìáóéïëïãéêüò Ýëåã ïò (ii) Áðïõóßá óçìáóéïëïãéêþí óöáëìüôùí áðïõóßá óöáëìüôùí åêôýëåóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

168 Óçìáóéïëïãéêüò Ýëåã ïò (ii) Áðïõóßá óçìáóéïëïãéêþí óöáëìüôùí áðïõóßá óöáëìüôùí åêôýëåóçò ÌåñéêÝò öïñýò üìùò åßíáé äõíáôü íá ðñïâëåöèïýí óöüëìáôá åêôýëåóçò Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

169 Óçìáóéïëïãéêüò Ýëåã ïò (ii) Áðïõóßá óçìáóéïëïãéêþí óöáëìüôùí áðïõóßá óöáëìüôùí åêôýëåóçò ÌåñéêÝò öïñýò üìùò åßíáé äõíáôü íá ðñïâëåöèïýí óöüëìáôá åêôýëåóçò program p; var x, y : integer; begin read(x); y := 5/(x-x) end. Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

170 Óýóôçìá ôýðùí Âáóéêïß ôýðïé (integer, boolean, real, char,...) Óýíèåôïé ôýðïé Ðßíáêåò (arrays) Æåýãç (products) êáé ðëåéüäåò (tuples) ÅããñáöÝò (records) Äåßêôåò (pointers) ÓõíáñôÞóåéò (functions) Ôýðïé êáé ôéìýò ðñþôçò ôüîçò (rst class) Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

171 ÁðëÝò åêöñüóåéò, âáóéêïß ôýðïé ÓçìáóéïëïãéêÞ áíüëõóç óôï bison Óêïðüò: õðïëïãéóìüò ôïõ ðåäßïõ type (i) %{ typedef enum { TY_int, TY_real, TY_bool } Type; %} %union{ char * n; Type t; struct { Type type; /* other fields */ } v;... } %type<n> T_id %type<t> typename %type<v> expression Íßêïò Ðáðáóðýñïõ, ÊùóôÞò Óáãþíáò ÌåôáãëùôôéóôÝò Áðñßëéïò / 216

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σημασιολογική ανάλυση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ÌåôáãëùôôéóôÝò. ÅéóáãùãÞ. ÅéóáãùãÞ (ii) Íßêïò Ðáðáóðýñïõ ÊùóôÞò Óáãþíáò. Áñ éêþ ãëþóóá L A A T ÔåëéêÞ ãëþóóá L T Y

ÌåôáãëùôôéóôÝò. ÅéóáãùãÞ. ÅéóáãùãÞ (ii) Íßêïò Ðáðáóðýñïõ ÊùóôÞò Óáãþíáò. Áñ éêþ ãëþóóá L A A T ÔåëéêÞ ãëþóóá L T Y ÌåôáãëùôôéóôÝò Íßêïò Ðáðáóðýñïõ ÊùóôÞò Óáãþíáò {nickie}@softlab.ntua.gr {kostis}@cs.ntua.gr ÅéóáãùãÞ Ãëþóóåò ðñïãñáììáôéóìïý ÌåôáãëùôôéóôÝò Áíáãêáéüôçôá êáé éóôïñéêþ áíáäñïìþ ÅéóáãùãÞ Áñ éêþ ãëþóóá L A

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

ÊåöÜëáéï 3 ÏÑÉÆÏÕÓÅÓ. 3.1 ÅéóáãùãÞ

ÊåöÜëáéï 3 ÏÑÉÆÏÕÓÅÓ. 3.1 ÅéóáãùãÞ 28 ÊåöÜëáéï 3 ÏÑÉÆÏÕÓÅÓ 3.1 ÅéóáãùãÞ Ãéá êüèå ôåôñáãùíéêü ðßíáêá A áíôéóôïé åß Ýíáò ðñáãìáôéêüò áñéèìüò ï ïðïßïò êáëåßôáé ïñßæïõóá êáé óõíþèùò óõìâïëßæåôáé ìå A Þ det(a). ÌåôáèÝóåéò: Ìéá áðåéêüíéóç ôïõ

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

16. ÌåëÝôç ôùí óõíáñôþóåùí y=çìx, y=óõíx êáé ôùí ìåôáó çìáôéóìþí ôïõò.

16. ÌåëÝôç ôùí óõíáñôþóåùí y=çìx, y=óõíx êáé ôùí ìåôáó çìáôéóìþí ôïõò. 55 16. ÌåëÝôç ôùí óõíáñôþóåùí y=çìx, y=óõíx êáé ôùí ìåôáó çìáôéóìþí ôïõò. A ÌÝñïò 1. Íá êáôáóêåõüóåéò óôï Function Probe ôç ãñáöéêþ ðáñüóôáóç ôçò y=çìx. Óôïí ïñéæüíôéï Üîïíá íá ïñßóåéò êëßìáêá áðü ôï -4ð

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

ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ ÏÌÁÄÁ ÈÅÌÁÔÙÍ Á

ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ ÏÌÁÄÁ ÈÅÌÁÔÙÍ Á ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ 2008 - ÏÌÁÄÁ ÈÅÌÁÔÙÍ Á ÈÝìá. Èåùñïýìå ôï óýíïëï Ω {; 2; ; 2008}. (á ( âáèìüò Ðüóåò åßíáé ïé ìåôáèýóåéò ôùí óôïé åßùí ôïõ Ω óôéò ïðïßåò ôï óôïé åßï âñßóêåôáé óå êüðïéá áðü ôéò

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

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

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

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

ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ ÏÌÁÄÁ ÈÅÌÁÔÙÍ B

ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ ÏÌÁÄÁ ÈÅÌÁÔÙÍ B ÓÕÍÄÕÁÓÔÉÊÇ É, ÓÅÐÔÅÌÂÑÉÏÓ 2008 - ÏÌÁÄÁ ÈÅÌÁÔÙÍ B ÈÝìá. Èåùñïýìå ôï óýíïëï Ω {; 2; ; 2008}. (á ( âáèìüò Ðüóåò åßíáé ïé ìåôáèýóåéò ôùí óôïé åßùí ôïõ Ω óôéò ïðïßåò ôá Üñôéá óôïé åßá êáôáëáìâüíïõí ôéò ôåëåõôáßåò

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

¼ñãáíá Èåñìïêñáóßáò - ÓõóêåõÝò Øõêôéêþí Ìç áíçìüôùí

¼ñãáíá Èåñìïêñáóßáò - ÓõóêåõÝò Øõêôéêþí Ìç áíçìüôùí ¼ñãáíá Èåñìïêñáóßáò - ÓõóêåõÝò Øõêôéêþí Ìç áíçìüôùí ÈåñìïóôÜôçò ÓõíôÞñçóçò REF-DF-SM ÅëÝã åé Ýíá èåñìïóôïé åßï PTC Êëßìáêá èåñìïêñáóßáò: -19? +99 C ëåã ïò áðüøõîçò - dfrst Ôñßá ñåëý: óõìðéåóôþò (30Á, 2ÇÑ),

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

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

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

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

ÊåöÜëáéï 4 ÄÉÁÍÕÓÌÁÔÁ. 4.1 ÅéóáãùãÞ (ÃåùìåôñéêÞ)

ÊåöÜëáéï 4 ÄÉÁÍÕÓÌÁÔÁ. 4.1 ÅéóáãùãÞ (ÃåùìåôñéêÞ) 44 ÊåöÜëáéï 4 ÄÉÁÍÕÓÌÁÔÁ 4.1 ÅéóáãùãÞ (ÃåùìåôñéêÞ) Óå äéüöïñåò öõóéêýò åöáñìïãýò õðüñ ïõí ìåãýèç ôá ïðïßá ìðïñïýí íá áñáêôçñéóèïýí ìüíï ìå Ýíá áñéèìü. ÔÝôïéá ìåãýèç, üðùò ãéá ðáñüäåéãìá, ç èåñìïêñáóßá

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

Ç ãëþóóá Grace. ÌåôáãëùôôéóôÝò 2009 ÈÝìá åñãáóßáò

Ç ãëþóóá Grace. ÌåôáãëùôôéóôÝò 2009 ÈÝìá åñãáóßáò Åèíéêü Ìåôóüâéï Ðïëõôå íåßï Ó ïëþ Çëåêôñïëüãùí Ìç áíéêþí & Ìç áíéêþí Õðïëïãéóôþí ÔïìÝáò Ôå íïëïãßáò ÐëçñïöïñéêÞò & Õðïëïãéóôþí ÅñãáóôÞñéï Ôå íïëïãßáò Ëïãéóìéêïý ÌåôáãëùôôéóôÝò 2009 ÈÝìá åñãáóßáò Ç ãëþóóá

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

Ç ãëþóóá Alan. ÌåôáãëùôôéóôÝò 2011 ÈÝìá åñãáóßáò

Ç ãëþóóá Alan. ÌåôáãëùôôéóôÝò 2011 ÈÝìá åñãáóßáò Åèíéêü Ìåôóüâéï Ðïëõôå íåßï Ó ïëþ Çëåêôñïëüãùí Ìç áíéêþí & Ìç áíéêþí Õðïëïãéóôþí ÔïìÝáò Ôå íïëïãßáò ÐëçñïöïñéêÞò & Õðïëïãéóôþí ÅñãáóôÞñéï Ôå íïëïãßáò Ëïãéóìéêïý ÌåôáãëùôôéóôÝò 0 ÈÝìá åñãáóßáò Ç ãëþóóá

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

Ó ÅÄÉÁÓÌÏÓ - ÊÁÔÁÓÊÅÕÇ ÓÔÏÌÉÙÍ & ÅÉÄÉÊÙÍ ÅÎÁÑÔÇÌÁÔÙÍ ÊËÉÌÁÔÉÓÌÏÕ V X

Ó ÅÄÉÁÓÌÏÓ - ÊÁÔÁÓÊÅÕÇ ÓÔÏÌÉÙÍ & ÅÉÄÉÊÙÍ ÅÎÁÑÔÇÌÁÔÙÍ ÊËÉÌÁÔÉÓÌÏÕ V X V X A B+24 AEROGRAMÌI Ïé äéáóôüóåéò ôùí óôïìßùí ôçò óåéñüò Å öáßíïíôáé óôï ðáñáêüôù ó Þìá. Áíôßóôïé á, ïé äéáóôüóåéò ôùí óôïìßùí ôçò óåéñüò ÂÔ öáßíïíôáé óôï Ó Þìá Å. Ãéá ôïí ðñïóäéïñéóìü ôçò ðáñáããåëßáò

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

ÏñãÜíùóç ÐñïãñÜììáôïò

ÏñãÜíùóç ÐñïãñÜììáôïò ÊåöÜëáéï 4 ÏñãÜíùóç ÐñïãñÜììáôïò Åðéäéùêüìåíïé óôü ïé: ¼ôáí ïëïêëçñþóåôå ôç ìåëýôç áõôïý ôïõ êåöáëáßïõ, èá åßóôå éêáíïß: é íá ðåñéãñüöåôå ôéò åíôïëýò ðïõ ñçóéìïðïéïýíôáé óôá õðïðñïãñüììáôá êáé óôï êýñéï

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

( ) ξî τέτοιο, + Ý åé ìßá ôïõëü éóôïí ñßæá óôï äéüóôçìá ( ) h x =,να δείξετε ότι υπάρχει ( α,β) x ΕΦΑΡΜΟΓΕΣ ΣΤΙΣ ΠΑΡΑΓΩΓΟΥΣ

( ) ξî τέτοιο, + Ý åé ìßá ôïõëü éóôïí ñßæá óôï äéüóôçìá ( ) h x =,να δείξετε ότι υπάρχει ( α,β) x ΕΦΑΡΜΟΓΕΣ ΣΤΙΣ ΠΑΡΑΓΩΓΟΥΣ . Äßíåôáé ç óõíüñôçóç : [, + ) R óõíå Þò óôï äéüóôçìá [,+ ) êáé ðáñáãùãßóéìç óôï äéüóôçìá (,+ ), ãéá ôçí ïðïßá éó ýåé ( ) = α. óôù üôé õðüñ åé κî R, þóôå íá éó ýåé ( ) κ ãéá êüèå Î (,+ ). Íá äåßîåôå üôé

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

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

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

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

Ç ãëþóóá Tony. ÌåôáãëùôôéóôÝò 2010 ÈÝìá åñãáóßáò

Ç ãëþóóá Tony. ÌåôáãëùôôéóôÝò 2010 ÈÝìá åñãáóßáò Åèíéêü Ìåôóüâéï Ðïëõôå íåßï Ó ïëþ Çëåêôñïëüãùí Ìç áíéêþí & Ìç áíéêþí Õðïëïãéóôþí ÔïìÝáò Ôå íïëïãßáò ÐëçñïöïñéêÞò & Õðïëïãéóôþí ÅñãáóôÞñéï Ôå íïëïãßáò Ëïãéóìéêïý ÌåôáãëùôôéóôÝò 2010 ÈÝìá åñãáóßáò Ç ãëþóóá

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

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

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

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

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

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

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

3.1 Íá âñåèåß ôï ðåäßï ïñéóìïý ôçò óõíüñôçóçò f: 4 x. (iv) f(x, y, z) = sin x 2 + y 2 + 3z Íá âñåèïýí ôá üñéá (áí õðüñ ïõí): lim

3.1 Íá âñåèåß ôï ðåäßï ïñéóìïý ôçò óõíüñôçóçò f: 4 x. (iv) f(x, y, z) = sin x 2 + y 2 + 3z Íá âñåèïýí ôá üñéá (áí õðüñ ïõí): lim 3.1 Íá âñåèåß ôï ðåäßï ïñéóìïý ôçò óõíüñôçóçò f: 4 x (i) f(x, y) = sin 1 2 (x + y) (ii) f(x, y) = y 2 + 3 (iii) f(x, y, z) = 25 x 2 y 2 z 2 (iv) f(x, y, z) = z +ln(1 x 2 y 2 ) 3.2 (i) óôù f(x, y, z) =

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

Ç ãëþóóá Dana. ÌåôáãëùôôéóôÝò 2008 ÈÝìá åñãáóßáò

Ç ãëþóóá Dana. ÌåôáãëùôôéóôÝò 2008 ÈÝìá åñãáóßáò Åèíéêü Ìåôóüâéï Ðïëõôå íåßï Ó ïëþ Çëåêôñïëüãùí Ìç áíéêþí & Ìç áíéêþí Õðïëïãéóôþí ÔïìÝáò Ôå íïëïãßáò ÐëçñïöïñéêÞò & Õðïëïãéóôþí ÅñãáóôÞñéï Ôå íïëïãßáò Ëïãéóìéêïý ÌåôáãëùôôéóôÝò 2008 ÈÝìá åñãáóßáò Ç ãëþóóá

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

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

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

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

ÄéáêñéôÝò êáé óõíå åßò ôõ áßåò ìåôáâëçôýò ÁóêÞóåéò

ÄéáêñéôÝò êáé óõíå åßò ôõ áßåò ìåôáâëçôýò ÁóêÞóåéò ÄéáêñéôÝò êáé óõíå åßò ôõ áßåò ìåôáâëçôýò ÁóêÞóåéò Áíôþíçò Ïéêïíüìïõ aeconom@math.uoa.gr ÌáÀïõ óêçóç (Ross, Exer. 4.8) Áí E[X] êáé V ar[x] 5 íá âñåßôå. E[( + X) ],. V ar[4 + X]. óêçóç (Ross, Exer. 4.64)

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

ÓÕÍÈÇÊÇ ÁÌÅÔÁÈÅÔÏÔÇÔÁÓ ÓÕÓÔÇÌÁÔÏÓ ÔÏÉ ÙÌÁÔÙÍ ÐÁÑÁÑÔÇÌÁ Â

ÓÕÍÈÇÊÇ ÁÌÅÔÁÈÅÔÏÔÇÔÁÓ ÓÕÓÔÇÌÁÔÏÓ ÔÏÉ ÙÌÁÔÙÍ ÐÁÑÁÑÔÇÌÁ Â ÓÕÍÈÇÊÇ ÁÌÅÔÁÈÅÔÏÔÇÔÁÓ ÓÕÓÔÇÌÁÔÏÓ ÔÏÉ ÙÌÁÔÙÍ ÐÁÑÁÑÔÇÌÁ Â ÐÁÑÁÑÔÇÌÁ Â 464 ÅÊÙÓ 000 - Ó ÏËÉÁ ÓÕÍÈÇÊÇ ÁÌÅÔÁÈÅÔÏÔÇÔÁÓ ÓÕÓÔÇÌÁÔÏÓ ÔÏÉ ÙÌÁÔÙÍ Â.1 ÁÓÕÌÌÅÔÑÏ ÓÕÓÔÇÌÁ Η N / ( 0. + 0.1 η) 0.6 ν ν, η 3, η > 3...

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

ÊåöÜëáéï 5 ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ. 5.1 ÅéóáãùãÞ. 56 ÊåöÜëáéï 5. ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ

ÊåöÜëáéï 5 ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ. 5.1 ÅéóáãùãÞ. 56 ÊåöÜëáéï 5. ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ 55 56 ÊåöÜëáéï 5. ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ ÊåöÜëáéï 5 ÄÉÁÍÕÓÌÁÔÉÊÏÉ ÙÑÏÉ 5.1 ÅéóáãùãÞ Ïñéóìüò: íá óýíïëï V êáëåßôáé äéáíõóìáôéêüò þñïò Þ ãñáììéêüò þñïò ðüíù óôïí IR áí (á) ôï V åßíáé êëåéóôü ùò ðñïò ôç ðñüóèåóç,

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

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

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

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

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

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

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

7. ÂáóéêÜ óôïé åßá ðñïãñáììáôéóìïý

7. ÂáóéêÜ óôïé åßá ðñïãñáììáôéóìïý 7. ÂáóéêÜ óôïé åßá ðñïãñáììáôéóìïý 146 ÁíÜðôõîç åöáñìïãþí óå ðñïãñáììáôéóôéêü ðåñéâüëëïí ÅéóáãùãÞ ÊÜèå ãëþóóá ðñïãñáììáôéóìïý, üðùò áíáöýñèçêå, Ý åé ôï äéêü ôçò ëåîéëüãéï êáé ôá ðñïãñüììáôá ôçò áêïëïõèïýí

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

2.4 ñçóéìïðïéþíôáò ôïí êáíüíá áëõóßäáò íá âñåèåß ç dr

2.4 ñçóéìïðïéþíôáò ôïí êáíüíá áëõóßäáò íá âñåèåß ç dr 2.1 i) Íá âñåèïýí ïé óõíôåôáãìýíåò ôïõ óçìåßïõ óôï ïðïßï ç åõèåßá r = 2 + t)i + 1 2t)j + 3tk ôýìíåé ôï åðßðåäï xz. ii) Íá âñåèïýí ïé óõíôåôáãìýíåò ôïõ óçìåßïõ óôï ïðïßï ç åõèåßá r = ti + 1 + 2t)j 3tk ôýìíåé

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

3.1 H Ýííïéá ôçò óõíüñôçóçò ÐÁÑÁÄÅÉÃÌÁÔÁ - ÅÖÁÑÌÏÃÅÓ

3.1 H Ýííïéá ôçò óõíüñôçóçò ÐÁÑÁÄÅÉÃÌÁÔÁ - ÅÖÁÑÌÏÃÅÓ .1 Ç Ýííïéá ôçò óõíüñôçóçò 55.1 H Ýííïéá ôçò óõíüñôçóçò Åñþ ôçóç 1 Ôé ëýãåôáé óõíüñôçóç; ÁðÜíôçóç Ç ó Ýóç åêåßíç ðïõ êüèå ôéìþ ôçò ìåôáâëçôþò x, áíôéóôïé ßæåôáé óå ìéá ìüíï ôéìþ ôçò ìåôáâëçôþò y ëýãåôáé

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

ÁðáñéèìçôÝò- ÓõãêñéôÝò

ÁðáñéèìçôÝò- ÓõãêñéôÝò ÊåöÜëáéï 5 ÁðáñéèìçôÝò- ÓõãêñéôÝò Åðéäéùêüìåíïé óôü ïé: ¼ôáí ïëïêëçñþóåôå ôç ìåëýôç áõôïý ôïõ êåöáëáßïõ, èá åßóôå éêáíïß: é íá ðåñéãñüöåôå ôéò åíôïëýò ðïõ ñçóéìïðïéïýíôáé ãéá ôïí ðñïãñáììáôéóìü ôùí áðáñéèìçôþí

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

Cel animation. ÅöáñìïãÝò ðïëõìýóùí

Cel animation. ÅöáñìïãÝò ðïëõìýóùí ÅöáñìïãÝò ðïëõìýóùí Cel animation Ç ôå íéêþ áõôþ óõíßóôáôáé óôçí êáôáóêåõþ ðïëëþí ó åäßùí ðïõ äéáöýñïõí ìåôáîý ôïõò óå óõãêåêñéìýíá óçìåßá. Ôá ó Ýäéá áõôü åíáëëüóóïíôáé ôï Ýíá ìåôü ôï Üëëï äßíïíôáò ôçí

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

ÁíÜðôõîç åöáñìïãþí óå ðñïãñáììáôéóôéêü ðåñéâüëëïí

ÁíÜðôõîç åöáñìïãþí óå ðñïãñáììáôéóôéêü ðåñéâüëëïí 10. ÕðïðñïãñÜììáôá 204 ÁíÜðôõîç åöáñìïãþí óå ðñïãñáììáôéóôéêü ðåñéâüëëïí ÅéóáãùãÞ Ç åðßëõóç åíüò ðñïâëþìáôïò äéåõêïëýíåôáé ìå ôç äéáßñåóç ôïõ óå ìéêñüôåñá õðïðñïâëþìáôá. Ç åðßëõóç ôùí õðïðñïâëçìüôùí áõôþí

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

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

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

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

ιαδικασία åãêáôüóôáóçò MS SQL Server, SingularLogic Accountant, SingularLogic Accountant Ìéóèïäïóßá

ιαδικασία åãêáôüóôáóçò MS SQL Server, SingularLogic Accountant, SingularLogic Accountant Ìéóèïäïóßá 1.1 ÃåíéêÝò ðëçñïöïñßåò ãéá ôçí Express Ýêäïóç ôïõ SQL Server... 3 1.2 ÃåíéêÝò ðëçñïöïñßåò ãéá ôçí åãêáôüóôáóç... 3 2.1 ÅãêáôÜóôáóç Microsoft SQL Server 2008R2 Express Edition... 4 2.1 Åíåñãïðïßçóç ôïõ

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

ΕΛΕΝΗ ΓΕΡΟΥΛΑΝΟΥ. Εικονογράφηση ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΓΙΑ ΠΑΙΔΙΑ ΝΗΠΙΑΓΩΓΕΙΟΥ ΛΗΔΑ ΒΑΡΒΑΡΟΥΣΗ ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ

ΕΛΕΝΗ ΓΕΡΟΥΛΑΝΟΥ. Εικονογράφηση ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΓΙΑ ΠΑΙΔΙΑ ΝΗΠΙΑΓΩΓΕΙΟΥ ΛΗΔΑ ΒΑΡΒΑΡΟΥΣΗ ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΓΙΑ ΠΑΙΔΙΑ ΝΗΠΙΑΓΩΓΕΙΟΥ ΕΛΕΝΗ ΓΕΡΟΥΛΑΝΟΥ Εικονογράφηση ΛΗΔΑ ΒΑΡΒΑΡΟΥΣΗ ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ Ï ðéï ìåãüëïò êáé ï ðéï óçìáíôéêüò ðáéäáãùãéêüò êáíüíáò äåí åßíáé ôï íá

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

Ðñïêýðôïõí ôá ðáñáêüôù äéáãñüììáôá.

Ðñïêýðôïõí ôá ðáñáêüôù äéáãñüììáôá. ÌÅÈÏÄÏËÏÃÉÁ Ãéá Ýíá óþìá ðïõ åêôåëåß åõèýãñáììç ïìáëü ìåôáâáëëüìåíç êßíçóç éó ýïõí ïé ôýðïé: õ=õ ï +á. t x=õ. ï t+ át. ÅÜí ôï óþìá îåêéíüåé áðü ôçí çñåìßá, äçëáäþ ç áñ éêþ ôá ýôçôá åßíáé õ ï =0, ôüôå ïé

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

Óõíå Þ êëüóìáôá & Áöáéñåôéêüò Åõêëåßäåéïò áëãüñéèìïò

Óõíå Þ êëüóìáôá & Áöáéñåôéêüò Åõêëåßäåéïò áëãüñéèìïò Óõíå Þ êëüóìáôá & Áöáéñåôéêüò Åõêëåßäåéïò áëãüñéèìïò Áããåëßíá ÂéäÜëç åðéâëýðùí êáèçãçôþò: ÃéÜííçò Ìïó ïâüêçò Q 13 Éïõíßïõ, 2009 ÄïìÞ äéðëùìáôéêþò åñãáóßáò 1o êåö. ÅéóáãùãÞ óôá óõíå Þ êëüóìáôá 2ï êåö. Ëßãç

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

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

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

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

1. Íá ëõèåß ç äéáöïñéêþ åîßóùóç (15 ìïí.) 2. Íá âñåèåß ç ãåíéêþ ëýóç ôçò äéáöïñéêþò åîßóùóçò (15 ìïí.)

1. Íá ëõèåß ç äéáöïñéêþ åîßóùóç (15 ìïí.) 2. Íá âñåèåß ç ãåíéêþ ëýóç ôçò äéáöïñéêþò åîßóùóçò (15 ìïí.) ÔÅÉ ËÜñéóáò, ÔìÞìá Ìç áíïëïãßáò ÌáèçìáôéêÜ ÉI, ÅîÝôáóç Ðåñéüäïõ Éïõíßïõ 24/6/21 ÄéäÜóêùí: Á éëëýáò Óõíåöáêüðïõëïò 1. Íá ëõèåß ç äéáöïñéêþ åîßóùóç (15 ìïí.) (3x 2 + 6xy 2 )dx + (6x 2 y + 4y 3 )dy = 2. Íá

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

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

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

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

8. ÅðéëïãÞ êáé åðáíüëçøç

8. ÅðéëïãÞ êáé åðáíüëçøç 8. ÅðéëïãÞ êáé åðáíüëçøç 164 ÁíÜðôõîç åöáñìïãþí óå ðñïãñáììáôéóôéêü ðåñéâüëëïí ÅéóáãùãÞ Óôï ðñïçãïýìåíï êåöüëáéï áíáðôýîáìå ðñïãñüììáôá, ôá ïðïßá Þôáí ðïëý áðëü êáé ïé åíôïëýò ôùí ïðïßùí åêôåëïýíôáé ç

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

DOS Microsoft Windows... 65

DOS Microsoft Windows... 65 Åõ áñéóôßåò... x ÅéóáãùãÞ... xi 1 Áðü Ðïý ÎåêéíÜù;... 1 Áðü Ðïý ÎåêéíÜìå;... 2 Ðñïãñáììáôßæïíôáò ìå ôïí Åýêïëï Ôñüðï... 3 Ï Ðñïãñáììáôéóìüò åíüò ÐñïãñÜììáôïò Åßíáé óáí ôïí Ðñïãñá ììáôéóìü ôïõ Êôéóßìáôïò

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

µµ Setup : µ 2005

µµ Setup : µ 2005 µµ Setup : 389194-152 µ 2005 µ 1 µµ Setup 2 µµ Setup 3 µµ Setup 4 µµ Setup 0DLQ ± 6H XULW\ ± 6\VWHP&RQILJXUDWLRQ ± 'LDJQRVWL V± µµ Setup ii 1 µµ Setup Ôï âïçèçôéêü ðñüãñáììá Setup óüò äßíåé ôç äõíáôüôçôá

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

Ìáèáßíïõìå ôéò áðïäåßîåéò

Ìáèáßíïõìå ôéò áðïäåßîåéò 50. Βήµα ο Μαθαίνουµε τις αποδείξεις ã) Ùò ðñïò ôçí áñ Þ ôùí áîüíùí, áí êáé ìüíï áí Ý ïõí áíôßèåôåò óõíôåôáãìýíåò. ÄçëáäÞ: á = á êáé â = â ÂÞìá Ìáèáßíïõìå ôéò áðïäåßîåéò ä) Ùò ðñïò ôç äé ïôüìï ôçò çò êáé

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

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ.

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ : 430223-151 2007 Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ µ µ ÐñïóèÞêç ìéáò ìïíüäáò ìíþìçò óôçí õðïäï Þ ìïíüäáò åðýêôáóçò ìíþìçò......................

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

ÅñãáóôÞñéï 1. ÄïìÝò ÄåäïìÝíùí. 1.1 Óôü ïé. 1.2 Áðáñáßôçôï Õëéêü

ÅñãáóôÞñéï 1. ÄïìÝò ÄåäïìÝíùí. 1.1 Óôü ïé. 1.2 Áðáñáßôçôï Õëéêü 1 ÅñãáóôÞñéï 1 ÄïìÝò ÄåäïìÝíùí ôìþìá: Äéá åßñéóçò Ðëçñïöïñéþí, ÔÅÉ ÊáâÜëáò äéäüóêùí: Äñ. Âáóßëåéïò áôæþò, Åð. ÊáèçãçôÞò ôï êåßìåíï áõôü âñßóêåôáé óôï äéáäßêôõï óôç óåëßäá www.it.teithe.gr/ chatzis 1.1

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

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

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

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

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

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

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

B i o f l o n. Ãéá åöáñìïãýò ìåôáöïñüò çìéêþí

B i o f l o n. Ãéá åöáñìïãýò ìåôáöïñüò çìéêþí B i o f l o n Ãéá åöáñìïãýò ìåôáöïñüò çìéêþí Ç åôáéñåßá Aflex, ç ïðïßá éäñýèçêå ôï 1973, Þôáí ç ðñþôç ðïõ ó åäßáóå ôïí åýêáìðôï óùëþíá PTFE ãéá ôç ìåôáöïñü çìéêþí õãñþí ðñßí áðü 35 ñüíéá. Ï åëéêïåéäþò

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

Áóõìðôùôéêïß Óõìâïëéóìïß êáé Éåñáñ ßá ÓõíáñôÞóåùí

Áóõìðôùôéêïß Óõìâïëéóìïß êáé Éåñáñ ßá ÓõíáñôÞóåùí Áóõìðôùôéêïß Óõìâïëéóìïß êáé Éåñáñ ßá ÓõíáñôÞóåùí Çëßáò Ê. Óôáõñüðïõëïò Ïêôþâñéïò 006 1 Áóõìðôùôéêïß Óõìâïëéóìïß ÎåêéíÜìå äéáôõðþíïíôáò ôïõò ïñéóìïýò ôùí ðýíôå ãíùóôþí áóõìðôùôéêþí óõìâïëéóìþí: Ïñéóìüò

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

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ.

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ : 419435-151 2007 Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ µ µ ÐñïóèÞêç ìïíüäáò ìíþìçò óôçí õðïäï Þ ìïíüäáò åðýêôáóçò ìíþìçò......................

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

ÅÍÏÔÇÔÁ 6ç ÑÏÍÏÓ-ÄÉÁÄÏ Ç

ÅÍÏÔÇÔÁ 6ç ÑÏÍÏÓ-ÄÉÁÄÏ Ç Ενότητα 6 Μάθημα 45 Πρώτος-τελευταίος 1. Íá êáôáíïþóïõí ôéò Ýííïéåò ðñþôïò êáé ôåëåõôáßïò. 2. Ná ìüèïõí íá ñùôïýí êáé íá áðáíôïýí ó åôéêü ìå ôï ñüíï êáé ôç äéáäï Þ ãåãïíüôùí. 1. Íá áêïýóïõí ôï ðáñáìýèé

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

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

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

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

Üóêçóç 15. ÕëéêÜ - åîáñôþìáôá äéêôýïõ ðåðéåóìýíïõ áýñá êáé ðíåõìáôéêýò óõóêåõýò

Üóêçóç 15. ÕëéêÜ - åîáñôþìáôá äéêôýïõ ðåðéåóìýíïõ áýñá êáé ðíåõìáôéêýò óõóêåõýò ÕëéêÜ - åîáñôþìáôá äéêôýïõ ðåðéåóìýíïõ áýñá êáé ðíåõìáôéêýò óõóêåõýò Óôü ïé ôçò Üóêçóçò äéüñêåéá Üóêçóçò: 6 äéäáêôéêýò þñåò Óôï ôýëïò ôçò Üóêçóçò ïé ìáèçôýò èá åßíáé éêáíïß: é íá áíáãíùñßæïõí ôá åîáñôþìáôá

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

Ανώτερα Μαθηματικά Ι. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 7: Οριακή Τιμή Συνάρτησης. Αθανάσιος Μπράτσος. Τμήμα Ναυπηγών Μηχανικών ΤΕ

Ανώτερα Μαθηματικά Ι. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 7: Οριακή Τιμή Συνάρτησης. Αθανάσιος Μπράτσος. Τμήμα Ναυπηγών Μηχανικών ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Ανώτερα Μαθηματικά Ι Ενότητα 7: Οριακή Τιμή Συνάρτησης Αθανάσιος Μπράτσος Τμήμα Ναυπηγών Μηχανικών ΤΕ Το περιεχόμενο του μαθήματος διατίθεται

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

ÌÁÈÇÌÁÔÉÊÇ ËÏÃÉÊÇ Ë1 5ï ðáêýôï áóêþóåùí

ÌÁÈÇÌÁÔÉÊÇ ËÏÃÉÊÇ Ë1 5ï ðáêýôï áóêþóåùí ÌÁÈÇÌÁÔÉÊÇ ËÏÃÉÊÇ Ë1 5ï ðáêýôï áóêþóåùí ñþóôïò ÊïíáîÞò, A.M. 200416 ìðë 30-06-2005 óêçóç 1. óôù R N n ; n 1. ËÝìå üôé ç R åßíáé "áñéèìçôéêþ" áí õðüñ åé ôýðïò ö(x 1 ; : : : ; x n ) ôçò Ã1 èá ôýôïéïò ðïõ

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

å) Íá âñåßôå ôï äéüóôçìá ðïõ äéáíýåé ôï êéíçôü êáôü ôï ñïíéêü äéüóôçìá áðü ôï ðñþôï Ýùò ôï Ýâäïìï äåõôåñüëåðôï ôçò êßíçóþò ôïõ.

å) Íá âñåßôå ôï äéüóôçìá ðïõ äéáíýåé ôï êéíçôü êáôü ôï ñïíéêü äéüóôçìá áðü ôï ðñþôï Ýùò ôï Ýâäïìï äåõôåñüëåðôï ôçò êßíçóþò ôïõ. ÌÁÈÇÌÁÔÉÊÁ ÃÅÍÉÊÇÓ ÐÁÉÄÅÉÁÓ Ã ËÕÊÅÉÏÕ È Å Ì Á 1 ï 3 ï Ä É Á Ã Ù Í É Ó Ì Á á êéçôü êéåßôáé ðüù óôï Üîïá x~x. Ç èýóç ôïõ êüèå ñïéêþ óôéãìþ t äßåôáé áðü ôç 3 óõüñôçóç x(t) = t 1t + 60t + 1, üðïõ ôï t ìåôñéýôáé

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

Chi-Square Goodness-of-Fit Test*

Chi-Square Goodness-of-Fit Test* Chi-Square Goodness-of-Fit Test* Öþôçò ÓéÜííçò ÐáíåðéóôÞìéï Áèçíþí, ÔìÞìá Ìáèçìáôéêü fsiannis@mathuoagr February 6, 2009 * Áðü ôéò óçìåéþóåéò "ÓôáôéóôéêÞ Óõìðåñáóìáôïëïãßá" ôïõ Ô ÐáðáúùÜííïõ êáé ôá âéâëßá

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

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ.

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ : 419585-151 2007 Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ µ µ ÐñïóèÞêç ìéáò ìïíüäáò ìíþìçò óôçí õðïäï Þ ìïíüäáò åðýêôáóçò ìíþìçò......................

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

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

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

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

ÌÅÑÏÓ 3 ΥΠΗΡΕΣΙΕΣ ΥΠΟΣΤΗΡΙΞΗΣ ΤΗΣ ΚΛΙΝΙΚΗΣ ΠΡΑΞΗΣ ÁÐÁÉÔÇÓÅÙÍ ÕÐÇÑÅÓÉÙÍ. Υπηρεσίες Ιατρικής Πληροφορικής και Τηλεϊατρικής 9 ÂÁÓÉÊÅÓ ÊÁÔÅÕÈÕÍÓÅÉÓ

ÌÅÑÏÓ 3 ΥΠΗΡΕΣΙΕΣ ΥΠΟΣΤΗΡΙΞΗΣ ΤΗΣ ΚΛΙΝΙΚΗΣ ΠΡΑΞΗΣ ÁÐÁÉÔÇÓÅÙÍ ÕÐÇÑÅÓÉÙÍ. Υπηρεσίες Ιατρικής Πληροφορικής και Τηλεϊατρικής 9 ÂÁÓÉÊÅÓ ÊÁÔÅÕÈÕÍÓÅÉÓ 138 Υπηρεσίες Ιατρικής Πληροφορικής και Τηλεϊατρικής ÌÅÑÏÓ 3 ΥΠΗΡΕΣΙΕΣ ΥΠΟΣΤΗΡΙΞΗΣ ΤΗΣ ΚΛΙΝΙΚΗΣ ΠΡΑΞΗΣ 9 ÂÁÓÉÊÅÓ ÊÁÔÅÕÈÕÍÓÅÉÓ 10 ÌÏÍÔÅËÏ ÁÐÏÔÉÌÇÓÇÓ ÔÙÍ ÁÐÁÉÔÇÓÅÙÍ 11 ÔÏÌÅÉÓ ÅÖÁÑÌÏÃÇÓ ÔÙÍ ÕÐÇÑÅÓÉÙÍ 139

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

J-Y(St)Y Ôçëåöùíéêü êáëþäéï åóùôåñéêïý þñïõ ìå èùñüêéóç êáôü VDE 0815

J-Y(St)Y Ôçëåöùíéêü êáëþäéï åóùôåñéêïý þñïõ ìå èùñüêéóç êáôü VDE 0815 J-Y(St)Y Ôçëåöùíéêü êáëþäéï åóùôåñéêïý þñïõ ìå èùñüêéóç êáôü VDE 0815 ÅÖÁÑÌÏÃÇ ñçóéìïðïéïýíôáé óå ìüíéìåò åãêáôáóôüóåéò ãéá ôç ìåôüäïóç áíáëïãéêïý Þ øçöéáêïý óþìáôïò. Ôï ðåäßï åöáñìïãþí ôïõò ðåñéëáìâüíåé

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

ÕÄÑÏËÇØÉÅÓ ÔÕÐÏÕ Á2 - Á4 ÌÅ ÁÍÔÉÐÁÃÅÔÉÊÇ ÐÑÏÓÔÁÓÉÁ

ÕÄÑÏËÇØÉÅÓ ÔÕÐÏÕ Á2 - Á4 ÌÅ ÁÍÔÉÐÁÃÅÔÉÊÇ ÐÑÏÓÔÁÓÉÁ ÕÄÑÏËÇØÉÅÓ ÔÕÐÏÕ Á - Á ÌÅ ÁÍÔÉÐÁÃÅÔÉÊÇ ÐÑÏÓÔÁÓÉÁ Ç ÅÕÄÏÓ ÁÂÅÅ êáôáóêåõüæåé õäñïëçøßåò Üñäåõóçò ôýðïõ SCHLUMBERGER ïé ïðïßåò áíôáðïêñßíïíôáé ðëþñùò ðñïò ôéò äéåèíåßò ðñïäéáãñáöýò, êáôáóêåõüæïíôáé ìå Þ ùñßò

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

ÁñéèìçôéêÞ ÁíÜëõóç É - ÓÅÌÖÅ Åñãáóßá 2 ìåóåò êáé åðáíáëçðôéêýò ìýèïäïé

ÁñéèìçôéêÞ ÁíÜëõóç É - ÓÅÌÖÅ Åñãáóßá 2 ìåóåò êáé åðáíáëçðôéêýò ìýèïäïé ÁñéèìçôéêÞ ÁíÜëõóç É - ÓÅÌÖÅ Åñãáóßá 2 ìåóåò êáé åðáíáëçðôéêýò ìýèïäïé Íéêüëáò ÊÜñáëçò Á/Ì : 91442 ÔìÞìá 1ï 28 Óåðôåìâñßïõ, 26 1 ìåóåò ÌÝèïäïé 1.1 Åñþôçìá 1 ñçóéìïðïéþíôáò ôçí gauss.m êáé ôçí herm5.m,

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

ÏÑÉÁÊÇ ÔÉÌÇ ÓÕÍÁÑÔÇÓÇÓ

ÏÑÉÁÊÇ ÔÉÌÇ ÓÕÍÁÑÔÇÓÇÓ ÌÜèçìá 7 ÏÑÉÁÊÇ ÔÉÌÇ ÓÕÍÁÑÔÇÓÇÓ Óôï ìüèçìá áõôü èá äïèåß ç Ýííïéá ôïõ ïñßïõ ìéáò ðñáãìáôéêþò óõíüñôçóçò ìå ôñüðï ðñïóáñìïóìýíï óôéò áðáéôþóåéò ôùí äéáöüñùí åöáñìïãþí, ðïõ áðáéôïýíôáé óôçí åðéóôþìç ôïõ.

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

9. ÁíÜðôõîç ðñïãñáììüôùí ìå ñïíéêýò ëåéôïõñãßåò.

9. ÁíÜðôõîç ðñïãñáììüôùí ìå ñïíéêýò ëåéôïõñãßåò. 9. ÁíÜðôõîç ðñïãñáììüôùí ìå ñïíéêýò ëåéôïõñãßåò. 9.1 ÃåíéêÜ. Ôá ðåñéóóüôåñá PLC äéáèýôïõí óçìáíôéêýò åõêïëßåò üóïí áöïñü óôïí ðñïãñáììáôéóìü ñïíéêþí ëåéôïõñãéþí ìå ñçóéìïðïßçóç ôùí ñïíéêþí ëåéôïõñãéþí

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

4.5 ÁóêÞóåéò çìéêþò éóïññïðßáò ìå åðßäñáóç óôç èýóç éóïññïðßáò

4.5 ÁóêÞóåéò çìéêþò éóïññïðßáò ìå åðßäñáóç óôç èýóç éóïññïðßáò 4.5 ÁóêÞóåéò çìéêþò éóïññïðßáò ìå åðßäñáóç óôç èýóç éóïññïðßáò Óôéò áóêþóåéò ìå åðßäñáóç óôç èýóç ìéáò éóïññïðßáò ãßíåôáé áíáöïñü óå ðåñéóóüôåñåò áðü ìßá èýóåéò éóïññïðßáò. Ïé èýóåéò éóïññïðßáò åßíáé äéáäï

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

1.1 Ïé öõóéêïß áñéèìïß - ÄéÜôáîç öõóéêþí, Óôñïããõëïðïßçóç

1.1 Ïé öõóéêïß áñéèìïß - ÄéÜôáîç öõóéêþí, Óôñïããõëïðïßçóç 1.1 Ïé öõóéêïß áñéèìïß - ÄéÜôáîç öõóéêþí, Óôñïããõëïðïßçóç 7 1.1 Ïé öõóéêïß áñéèìïß - ÄéÜôáîç öõóéêþí, Óôñïããõëïðïßçóç Åñþ ôçóç 1 Ðïéïé áñéèìïß ïíïìüæïíôáé öõóéêïß; Ðþò ôïõò óõìâïëßæïõìå êáé ðþò ùñßæïíôáé;

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

Estimation Theory Exercises*

Estimation Theory Exercises* Estimation Theory Exercises* Öþôçò ÓéÜííçò ÐáíåðéóôÞìéï Áèçíþí, ÔìÞìá Ìáèçìáôéêü fsiannis@math.uoa.gr December 22, 2009 * Áðü ôéò óçìåéþóåéò "ÓôáôéóôéêÞ Óõìðåñáóìáôïëïãßá" ôïõ Ô. ÐáðáúùÜííïõ, ôéò óçìåéþóåéò

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

Ç íýá Ýííïéá ôïõ ýðíïõ!

Ç íýá Ýííïéá ôïõ ýðíïõ! ΑΞΕΣΟΥΑΡ Ç íýá Ýííïéá ôïõ ýðíïõ! ÅããõÜôáé ôçí áóöüëåéá êáé õãåßá ôïõ ìùñïý êáôü ôç äéüñêåéá ôïõ ýðíïõ! AP 1270638 Õðüóôñùìá Aerosleep, : 61,00 AP 125060 ÊÜëõììá Aerosleep, : 15,30 ÁóöáëÞò, ðüíôá áñêåôüò

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

ÐïëëÝò åôáéñßåò ðñïóöýñïõí õðçñåóßåò

ÐïëëÝò åôáéñßåò ðñïóöýñïõí õðçñåóßåò Ferral Ferral Της Πηνελόπης Λεονταρά Σήμανση CE: Πως γίνεται ο έλεγχος της παραγωγικής Ï êáèïñéóìüò ôïõ åëýã ïõ ðáñáãùãþò óå Ýíá êáôáóêåõáóôéêü óýìöùíá ìå ôéò ôå íéêýò ðñïäéáãñáöýò ãéá ôá êïõöþìáôá, óôçí

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

ÅõñùðáúêÞ íùóç Áëïõìéíßïõ Ý åé äçìïóéåýóåé Ýíáí ìßíé - ïäçãü åðåîþãçóçò

ÅõñùðáúêÞ íùóç Áëïõìéíßïõ Ý åé äçìïóéåýóåé Ýíáí ìßíé - ïäçãü åðåîþãçóçò Ôå íéêü èýìáôá CE marking of curtain walling This FAECF Guidance Sheet provides an explanation to the product standard on curtain walling EN 13830 with more details for the manufacturer and reader of the

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

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

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

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

ÅÍÏÔÇÔÁ 5ç ÔÁ Ó ÇÌÁÔÁ

ÅÍÏÔÇÔÁ 5ç ÔÁ Ó ÇÌÁÔÁ Ενότητα 5 Μάθημα 38 Ο κύκλος 1. Ná êáôáíïþóïõí ôçí Ýííïéá ôïõ êýêëïõ. 2. Ná ìüèïõí íá ñùôïýí êáé íá áðáíôïýí ó åôéêü ìå ôïí êýêëï. 1. Íá ðáßîïõí êáé íá ôñáãïõäþóïõí ôï «Ãýñù-ãýñù üëïé» êáé «To ìáíôçëüêé».

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

ATHINA COURT. ÐïëõôåëÞ Äéáìåñßóìáôá

ATHINA COURT. ÐïëõôåëÞ Äéáìåñßóìáôá ATHINA COURT ÐïëõôåëÞ Äéáìåñßóìáôá ΣΥΓΚΡΟΤΗΜΑ ΙΑΜΕΡΙΣΜΑΤΩΝ ΑΘΗΝΑ Το συγκρότημα διαμερισμάτων AΘΗΝΑ βρίσκεται σε μια ήσυχη περιοχή στην Έγκωμη, Γωνία Γρηγόρη Αυξεντίου & Αρχιεπισκόπου Λεοντίου και αποτελείται

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

Äéá åßñéóç äåäïìýíùí

Äéá åßñéóç äåäïìýíùí ÊåöÜëáéï 3 Äéá åßñéóç äåäïìýíùí Åðéäéùêüìåíïé óôü ïé: ¼ôáí ïëïêëçñþóåôå ôç ìåëýôç áõôïý ôïõ êåöáëáßïõ, èá åßóôå éêáíïß: é íá ðåñéãñüöåôå ôïí ôñüðï êáôá þñçóçò ôùí äåäïìýíùí óå äéüöïñåò ìïñöýò é íá ñçóéìïðïéåßôå

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

8.1 Ãåíéêüò äéäáêôéêüò óêïðüò

8.1 Ãåíéêüò äéäáêôéêüò óêïðüò ÅðéëïãÞ êáé åðáíüëçøç ÊåöÜëáéï 8 ÅðéëïãÞ êáé åðáíüëçøç 8.1 Ãåíéêüò äéäáêôéêüò óêïðüò Ï ãåíéêüò óêïðüò ôïõ êåöáëáßïõ åßíáé íá êáôáóôïýí éêáíïß ïé ìáèçôýò íá óõíôüóóïõí êáé íá åêôåëïýí óå äïìçìýíç ãëþóóá

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

: Ï ðáñþí ïäçãüò åîçãåß ôïí ôñüðï ñþóçò ðñïáéñåôéêþí åîùôåñéêþí óõóêåõþí ìå ôïí õðïëïãéóôþ.

: Ï ðáñþí ïäçãüò åîçãåß ôïí ôñüðï ñþóçò ðñïáéñåôéêþí åîùôåñéêþí óõóêåõþí ìå ôïí õðïëïãéóôþ. : 419432-151 2007 Ï ðáñþí ïäçãüò åîçãåß ôïí ôñüðï ñþóçò ðñïáéñåôéêþí åîùôåñéêþí óõóêåõþí ìå ôïí õðïëïãéóôþ. µ 1 USB Óýíäåóç óõóêåõþò USB........................ 1 2 ÄéáêïðÞ ôçò ëåéôïõñãßáò ôçò óõóêåõþò

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

3524 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ)

3524 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ) F ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ ÔÇÓ ÅËËÇÍÉÊÇÓ ÄÇÌÏÊÑÁÔÉÁÓ 3523 ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ Áñ. Öýëëïõ 252 28 Öåâñïõáñßïõ 2002 ÁÐÏÖÁÓÅÉÓ Áñéè. 19306/Ã2 ÐñïãñÜììáôá Óðïõäþí Ôå íéêþí Åðáããåëìáôéêþí Åêðáéäåõôçñßùí (Ô.Å.Å.).

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

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ.

: Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ µ : 406852-151 2006 Ï ïäçãüò áõôüò åîçãåß ôïí ôñüðï áíôéêáôüóôáóçò êáé áíáâüèìéóçò ôçò ìíþìçò óôïí õðïëïãéóôþ. µ 1 µ µ µ ÐñïóèÞêç ìïíüäáò ìíþìçò óôçí õðïäï Þ ìïíüäáò åðýêôáóçò ìíþìçò....................

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

Μαθηματικά ΙΙΙ. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 16: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος ΙΙ. Αθανάσιος Μπράτσος

Μαθηματικά ΙΙΙ. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 16: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος ΙΙ. Αθανάσιος Μπράτσος Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Μαθηματικά ΙΙΙ Ενότητα 16: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος ΙΙ Αθανάσιος Μπράτσος Τμήμα Μηχανικών Ενεργειακής Τεχνολογίας

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

Μαθηματικά ΙΙΙ. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 15: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος Ι. Αθανάσιος Μπράτσος

Μαθηματικά ΙΙΙ. Ανοικτά Ακαδημαϊκά Μαθήματα. Ενότητα 15: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος Ι. Αθανάσιος Μπράτσος Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Μαθηματικά ΙΙΙ Ενότητα 15: Προσέγγιση συνήθων διαφορικών εξισώσεων Μέρος Ι Αθανάσιος Μπράτσος Τμήμα Μηχανικών Ενεργειακής Τεχνολογίας

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

: Ï ïäçãüò áõôüò ðåñéãñüöåé ôïí ôñüðï ñþóçò êáñôþí åîùôåñéêþí ìýóùí ìå ôïí õðïëïãéóôþ.

: Ï ïäçãüò áõôüò ðåñéãñüöåé ôïí ôñüðï ñþóçò êáñôþí åîùôåñéêþí ìýóùí ìå ôïí õðïëïãéóôþ. µ : 406854-151 2006 Ï ïäçãüò áõôüò ðåñéãñüöåé ôïí ôñüðï ñþóçò êáñôþí åîùôåñéêþí ìýóùí ìå ôïí õðïëïãéóôþ. µ 1 µ ÔïðïèÝôçóç øçöéáêþò êüñôáò................. 1 2 ÄéáêïðÞ ëåéôïõñãßáò Þ áöáßñåóç øçöéáêþò êüñôáò.............................

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

MultiBoot :

MultiBoot : MultiBoot : 405530-151 2006 µ 1 µ 2 Computer Setup 3 µ µ 4 µ MultiBoot Ñýèìéóç íýáò ðñïåðéëåãìýíçò äéüôáîçò åêêßíçóçò óôï Computer Setup.................. 4 2 ÅðéëïãÞ ôçò óõóêåõþò åêêßíçóçò ñçóéìïðïéþíôáò

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

ÐÉÍÁÊÅÓ ÔÉÌÙÍ ÁÍÔÉÊÅÉÌÅÍÉÊÙÍ ÁÎÉÙÍ

ÐÉÍÁÊÅÓ ÔÉÌÙÍ ÁÍÔÉÊÅÉÌÅÍÉÊÙÍ ÁÎÉÙÍ ÕÐÏÕÑÃÅÉÏ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ÏÉÊÏÍÏÌÉÊÙÍ ÃÅÍÉÊÇ ÄÉÅÕÈÕÍÓÇ ÄÇÌÏÓÉÁÓ ÐÅÑÉÏÕÓÉÁÓ & ÅÈÍÉÊÙÍ ÊËÇÑÏÄÏÔÇÌÁÔÙÍ ÄÉÅÕÈÕÍÓÇ ÔÅ ÍÉÊÙÍ ÕÐÇÑÅÓÉÙÍ & ÓÔÅÃÁÓÇÓ ÔÌÇÌÁ ÁÍÔÉÊÅÉÌÅÍÉÊÏÕ ÐÑÏÓÄÉÏÑÉÓÌÏÕ ÖÏÑÏËÏÃÇÔÅÁÓ ÁÎÉÁÓ ÁÊÉÍÇÔÙÍ

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

ÐÁÍÅÐÉÓÔÇÌÉÏ ÐÅËÏÐÏÍÍÇÓÏÕ ÁÊÁÄÇÌÁÚÊÏ ÅÔÏÓ ÔÑÉÐÏËÇ

ÐÁÍÅÐÉÓÔÇÌÉÏ ÐÅËÏÐÏÍÍÇÓÏÕ ÁÊÁÄÇÌÁÚÊÏ ÅÔÏÓ ÔÑÉÐÏËÇ ÁÊÁÄÇÌÁÚÊÏ ÅÔÏÓ 2002-2003 ÔÑÉÐÏËÇ ÌÁÈÇÌÁ ÃÑÁÌÌÉÊÇ ÁËÃÅÂÑÁ ÁÓÊÇÓÅÉÓ ÌÅÑÏÓ É ÃÉÙÑÃÏÓ ÐÁÍÏÐÏÕËÏÓ ÌÁÈÇÌÁÔÉÊÏÓ ÁÓÊÇÓÅÉÓ ÃÑÁÌÌÉÊÇÓ ÁËÃÅÂÑÁÓ 1. ÐÉÍÁÊÅÓ 1. Ó åäéüóôå ôçí åéêüíá ôùí ãñáììþí ãéá ôéò äýï åîéóþóåéò,

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

ÓÕÍÁÑÔÇÓÅÉÓ ÐÏËËÙÍ ÌÅÔÁÂËÇÔÙÍ

ÓÕÍÁÑÔÇÓÅÉÓ ÐÏËËÙÍ ÌÅÔÁÂËÇÔÙÍ 66 ÊåöÜëáéï 3 ÓÕÍÁÑÔÇÓÅÉÓ ÐÏËËÙÍ ÌÅÔÁÂËÇÔÙÍ 3.1 ÅéóáãùãÞ óôù üôé S åßíáé Ýíá óýíïëï áðü óçìåßá óôïí n äéüóôáôï þñï. Ìéá óõíüñôçóç (ðïõ ïñßæåôáé óôï S) åßíáé ìéá ó Ýóç ç ïðïßá ó åôßæåé êüèå óôïé åßï ôïõ

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

1. i) ÊÜèå üñïò ðñïêýðôåé áðü ôçí ðñüóèåóç ôïõ óôáèåñïý áñéèìïý 3 óôïí ðñïçãïýìåíï, ïðüôå Ý ïõìå áñéèìçôéêþ ðñüïäï á í ìå ðñþôï üñï

1. i) ÊÜèå üñïò ðñïêýðôåé áðü ôçí ðñüóèåóç ôïõ óôáèåñïý áñéèìïý 3 óôïí ðñïçãïýìåíï, ïðüôå Ý ïõìå áñéèìçôéêþ ðñüïäï á í ìå ðñþôï üñï 5. ÐÑÏÏÄÏÉ 7 5. ÁñéèìçôéêÞ ðñüïäïò Á ÏìÜäá. i) ÊÜèå üñïò ðñïêýðôåé áðü ôçí ðñüóèåóç ôïõ óôáèåñïý áñéèìïý 3 óôïí ðñïçãïýìåíï, ïðüôå Ý ïõìå áñéèìçôéêþ ðñüïäï á í ìå ðñþôï üñï á = 7 êáé äéáöïñü ù = 3. Óõíåðþò

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

Union of Pure and Applied Chemistry).

Union of Pure and Applied Chemistry). .5 Ç ãëþóóá ôçò çìåßáò Ãñáö çìéêþí ôýðùí êáé åéóáãùã óôçí ïíïìáôïëïãßá ôùí áíüñãáíùí åíþóåùí..5.1 ÃåíéêÜ. Ç çìåßá Ý åé ôç äéê ôçò äéåèí ãëþóóá, ç ïðïßá êáèïñßæåôáé áðü êáíüíåò ðïõ Ý ïõí ðñïôáèåß êáé ðñïôåßíïíôáé

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

ÖÅÊ 816 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ) ÏÄÇÃÉÅÓ ÐÁ ÔÇ ÓÕÌÐËÇÑÙÓÇ ÔÇÓ ÁÉÔÇÓÇÓ ÅÃÊÅÊÑÉÌÅÍÏÕ ÁÐÏÈÇÊÅÕÔÇ Ï ÇÌÁÔÙÍ 1. ÇÌÅÑÏÌÇÍÉÁ: ÁíáãñÜöåô

ÖÅÊ 816 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ) ÏÄÇÃÉÅÓ ÐÁ ÔÇ ÓÕÌÐËÇÑÙÓÇ ÔÇÓ ÁÉÔÇÓÇÓ ÅÃÊÅÊÑÉÌÅÍÏÕ ÁÐÏÈÇÊÅÕÔÇ Ï ÇÌÁÔÙÍ 1. ÇÌÅÑÏÌÇÍÉÁ: ÁíáãñÜöåô 11544 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ) ÖÅÊ 816 ÅÖÇÌÅÑÉÓ ÔÇÓ ÊÕÂÅÑÍÇÓÅÙÓ (ÔÅÕ ÏÓ ÄÅÕÔÅÑÏ) 11545 ÏÄÇÃÉÅÓ ÐÁ ÔÇ ÓÕÌÐËÇÑÙÓÇ ÔÇÓ ÁÉÔÇÓÇÓ ÅÃÊÅÊÑÉÌÅÍÏÕ ÁÐÏÈÇÊÅÕÔÇ Ï ÇÌÁÔÙÍ 1. ÇÌÅÑÏÌÇÍÉÁ: ÁíáãñÜöåôáé

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