Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες

Σχετικά έγγραφα
Μεταγλωττιστές. Ενότητα 7: Συντακτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση ΙII. Εαρινό Εξάμηνο Lec 11 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Μεταγλωττιστές. Ενότητα 8: Συντακτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Απάντηση: (func endfunc)-([a-za-z])+

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Μεταγλωττιστές. Αρχές, Τεχνικές & Εργαλεία. Δεύτερη Έκδοση. Alfred V. Aho Columbia University. Monica S. Lam Stanform University.

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

ΜΑΘΗΜΑ: Μεταγλωττιστές

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση IV. Εαρινό Εξάμηνο Lec 12 01/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

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

ΑΕΠΠ Ερωτήσεις θεωρίας

Αποµακρυσµένη κλήση διαδικασιών

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Λεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

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

Θέματα Μεταγλωττιστών

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 3 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση VIΙ. Εαρινό Εξάμηνο Lec 15 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

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

Προαιρετική Εργασία στο μάθημα Σχεδίαση Γλωσσών και Μεταγλωττιστών

Α. Ερωτήσεις Ανάπτυξης

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

Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Certified Computer Programmer (CCP) Εξεταστέα Ύλη (Syllabus) Έκδοση 1.0

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

Η γλώσσα προγραμματισμού Strange

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Κεφάλαιο 2: Μεταφραστές

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

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

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

ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΥΡΙΑΚΗ 28 ΑΠΡΙΛΙΟΥ 2013 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ

Προγραµµατισµός Ι (ΗΥ120)

Επανάληψη για τις Τελικές εξετάσεις

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Προγραμματισμός Ι (ΗΥ120)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Κεφάλαια 2,7,8

δήλωσης δεδοµένων και σε παραβίαση των συντακτικών κανόνων της γλωσσάς.

Πίνακας περιεχοµένων

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

7. Βασικά στοιχεία προγραµµατισµού.

Σύνταξη & Συντακτική Ανάλυση

Κεφάλαιο 10 ο Υποπρογράµµατα

ιαφάνειες παρουσίασης #3

Μεταγλωττιστές. μια φοιτητική προσέγγιση

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Περιεχόμενα. Πρόλογος... 21

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

Προγραμματισμός Ι (HY120)

Πληροφορική 2. Γλώσσες Προγραμματισμού

Transcript:

Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6 1.2.3 Η Σηµασιολογική Ανάλυση...8 1.2.4 Η βελτιστοποίηση του πηγαίου προγράµµατος...9 1.2.5 Η σύνθεση του τελικού προγράµµατος...10 1.2.6 Η βελτιστοποίηση του τελικού προγράµµατος...10 1.2.7 οµές δεδοµένων...11 1.3 Θέµατα που σχετίζονται µε τη λειτουργία των µεταγλωττιστών...12 1.3.1 Ο ιερµηνευτής...12 1.3.2 Ο Συµβολοµεταφραστής...13 1.3.3 Ο ιασυνδέτης...13 1.3.4 Ο Προεπεξεργαστής...14 1.3.5 Ο Συντάκτης/ ιορθωτής...15 1.3.6 Το εργαλείο make...16 1.3.7 Ο Ανιχνευτής Λαθών...17 1.3.8 Ο Καταγραφέας (profiler)...18 1.3.9 Τα προγράµµατα διαχείρισης πηγαίου κώδικα...20 1.3.10 Προαιρετικές επιλογές και µηχανισµοί διεπαφής...24 1.4 Ανάπτυξη µεταγλωττιστών...25 1.5 Μεταγλωττιστές µεταγλωττιστών...28 1.6 Η εκπαιδευτική γλώσσα YAPL...28 Ασκήσεις...32 Σχόλια και αναφορές...32

ii Κεφάλαιο 2:Λεξική ανάλυση...33 2.1 Η διαδικασία της λεξικής ανάλυσης...35 2.2 Κανονικές εκφράσεις...36 2.2.1 Ορισµός κανονικών εκφράσεων...37 2.2.2 Κανονικές εκφράσεις λεξικών µονάδων γλωσσών προγραµµατισµού...40 2.3 Λεξική ανάλυση µε πεπερασµένα αυτόµατα...44 2.3.1 Προσδιοριστικά πεπερασµένα αυτόµατα...45 2.3.2 Προσοµοίωση πεπερασµένου αυτόµατου...48 2.3.3 Μη προσδιοριστικά πεπερασµένα αυτόµατα...49 2.3.4 Συντακτική ανάλυση κανονικών εκφράσεων...50 2.3.5 Ανάπτυξη Thom pson...55 2.3.6 Ανάπτυξη Glushkov...57 2.3.7 Προσοµοίωση αυτόµατου Thom pson...63 2.3.8 Μετατροπή σε προσδιοριστικό πεπερασµένo αυτόµατo...64 2.3.9 Ελαχιστοποίηση προσδιοριστικού πεπερασµένου αυτόµατου...70 2.4 Γεννήτριες λεξικών αναλυτών...73 2.5 Η λεξική ανάλυση του µεταγλωττιστή της YAPL...79 Ασκήσεις...85 Σχόλια και αναφορές...87 Κεφάλαιο 3:Συντακτική ανάλυση...89 3.1 Η διαδικασία της συντακτικής ανάλυσης...91 3.2 Γραµµατικές και κατηγορίες γραµµατικών...93 3.2.1 Κατηγορίες γραµµατικών κατά Chom sky...97 3.2.2 Ορισµός γραµµατικών...99 3.3 Γραµµατικές χωρίς συµφραζόµενα και αυτόµατα στοίβας...101 3.4 Συµβολισµοί BNF και EBNF και συντακτικά διαγράµµατα...108 3.5 Παράγωγα και συντακτικά δένδρα...112 3.6 Γραµµατικές µε ασάφειες...117 3.6.1 Προτεραιότητα και προσεταιριστικότητα...120 3.6.2 Το πρόβληµα του µετέωρου else...122 3.7 Η σύνταξη της γλώσσας YAPL σε EBNF...123 3.8 Καθοδική ανάλυση...125 3.8.1 Καθοδική ανάλυση µε οπισθοδρόµηση χωρίς περιορισµούς...126 3.8.2 Ανάλυση προβλέπουσας αναδροµικής κατάβασης...129 3.8.3 Καθοδική ανάλυση LL(1)...143 3.8.4 Αποµάκρυνση αριστερής αναδροµικότητας...147 3.8.5 Αριστερή παραγοντοποιήση...150 3.8.6 Ανάνηψη λαθών...153 3.9 Ανοδική ανάλυση...160 3.9.1 Ανάλυση LR...165 3.9.2 Κατασκευή πίνακα µεταβάσεων στην ανάλυση LR...171 3.9.3 Ανάλυση LR(0)και SLR(1)...176

3.9.4 Κανονική ανάλυση LR(1)και LALR(1)...179 3.9.5 ιαχείριση λαθών στην ανάλυση LR...188 3.10 Γεννήτριες κώδικα ανάλυσης...190 3.10.1 ιαδικασία παραγωγής κώδικα από τη γεννήτρια byacc...191 3.10.2 Αρχεία περιγραφής για το byacc...192 3.10.3 Επισκόπηση χώρου καταστάσεων και εντοπισµός συγκρούσεων...209 3.10.4 Ανάνηψη συντακτικών λαθών στο byacc...214 3.11 Η συντακτική ανάλυση του µεταγλωττιστή της YAPL...217 Ασκήσεις...227 Σχόλια και αναφορές...229 Κεφάλαιο 4:Σηµασιολογική ανάλυση...231 4.1 Ιδιότητες και γραµµατικές ιδιοτήτων...234 4.2 Μετάφραση µε βάση τη σύνταξη...242 4.2.1 Σχήµατα µετάφρασης...243 4.2.2 Γράφος εξάρτησης τιµών ιδιοτήτων και σειρά εκτέλεσης κανόνων...244 4.2.3 Ανοδική µετάφραση για S-γραµµατικές ιδιοτήτων...253 4.2.4 Ανοδική εκτίµηση κληρονοµήσιµων ιδιοτήτων...254 4.2.5 Καθοδική µετάφραση...256 4.3 Πίνακας συµβόλων...258 4.3.1 Οργάνωση πίνακα συµβόλων...259 4.3.2 Πίνακες συµβόλων για γλώσσες µε δοµή ενοτήτων...263 4.3.3 Ο πίνακας συµβόλων του µεταγλωττιστή της YAPL...266 4.4 ηλώσεις...269 4.5 Έλεγχοι τύπων...270 4.6 Η σηµασιολογική ανάλυση της YAPL...273 4.6.1 ηλώσεις...274 4.6.2 Εκφράσεις...276 4.6.3 Εντολές...281 Ασκήσεις...283 Σχόλια και αναφορές...284 Κεφάλαιο 5:Ενδιάµεση αναπαράσταση και βελτιστοποίηση 285 5.1 Το συντακτικό δένδρο του µεταγλωττιστή της YAPL...287 5.2 Κώδικας τριών διευθύνσεων...289 5.3 Βελτιστοποίηση κώδικα ανεξάρτητα της µηχανής εκτέλεσης...294 5.3.1 Βελτιωτικοί µετασχηµατισµοί...295 5.3.2 Τοπικοί βελτιωτικοί µετασχηµατισµοί...298 5.3.3 Καθολικοί βελτιωτικοί µετασχηµατισµοί...299 Ασκήσεις...302 Κεφάλαιο 6:Απεικόνιση τύπων και δεδοµένων στη µνήµη...303 6.1 Βασικοί τύποι...305 iii

iv 6.1.1 Ο τύπος των ακεραίων αριθµών...305 6.1.2 Ο τύπος των πραγµατικών αριθµών...307 6.1.3 Ο τύπος των λογικών τιµών...310 6.1.4 Ο τύπος των χαρακτήρων...311 6.2 οµηµένοι τύποι...311 6.2.1 Πίνακες...313 6.2.1.1 Μονοδιάστατοι πίνακες...313 6.2.1.2 Πίνακες πολλών διαστάσεων...316 6.2.1.3 υναµικοί πίνακες...325 6.2.1.4 Υλοποίηση πινάκων µε διανύσµατα δεικτών...328 6.2.2 Εγγραφές...329 6.2.3 Περίπλοκες δοµές...332 6.3 Τύποι προσπέλασης...337 Ασκήσεις...342 Σχόλια και αναφορές...345 Κεφάλαιο 7:Μετάφραση εκφράσεων και εντολών...347 7.1 Λογικές εκφράσεις...348 7.2 Εντολές...350 7.2.1 Εντολές επιλογής...350 7.2.1.1 Η εντολή if...350 7.2.1.2 Οι εντολές πολλαπλών επιλογών...354 7.2.2 Εντολές επανάληψης...366 7.2.2.1 Η εντολή while...366 7.2.2.2 Η εντολή repeat...369 7.2.2.3 Η εντολή for...372 Ασκήσεις...375 Σχόλια και αναφορές...376 Κεφάλαιο 8:Περιβάλλον εκτέλεσης...379 8.1 Οργάνωση της µνήµης κατά την εκτέλεση προγράµµατος...380 8.2 Κλήση υποπρογραµµάτων...384 8.3 Αποθήκευση των καταχωρητών...388 8.4 Τοπικές µεταβλητές...390 8.5 Παράµετροι...397 8.5.1 Τρόποι περάσµατος παραµέτρων...397 8.5.2 Πέρασµα παραµέτρων µέσω στοίβας...398 8.6 Προσπέλαση µη-τοπικών µεταβλητών...413 8.6.1 Στατικοί δείκτες...413 8.6.2 Προσπέλαση µη-τοπικών µεταβλητών...422 8.6.3 Το display...424 8.7 Περισσότερα για το πέρασµα παραµέτρων µέσω στοίβας...435 8.7.1 Ολικές,τοπικές και µη-τοπικές µεταβλητές ως παράµετροι...435 8.7.2 Τυπικές παράµετροι ως πραγµατικές άλλου υποπρογράµµατος...442

8.7.3 Υποπρογράµµατα ως παράµετροι...454 8.8 Άλλα µέσα περάσµατος παραµέτρων...455 8.8.1 Πέρασµα παραµέτρων µέσω καταχωρητών...455 8.8.2 Πέρασµα παραµέτρων µέσω ενότητας παραµέτρων...457 8.9 Επιστροφή αποτελέσµατος από συνάρτηση...461 Ασκήσεις...465 Σχόλια και αναφορές...466 Κεφάλαιο 9: ηµιουργία κώδικα µηχανής για τη YAPL...467 9.1 ηµιουργία κώδικα µηχανής...468 9.1.1 ηµιουργία κώδικα για στοιχεία πίνακα...471 9.1.2 ηµιουργία κώδικα για αριθµητικές εκφράσεις...473 9.1.3 ηµιουργία κώδικα για εκχώρηση τιµής...483 9.1.4 ηµιουργία κώδικα για λογικές εκφράσεις...485 9.1.5 ηµιουργία κώδικα για ifεντολές...490 9.1.6 ηµιουργία κώδικα για while εντολές...492 9.1.7 ηµιουργία κώδικα για Ι/Ο εντολές...493 9.2 Βελτιστοποίηση του κώδικα µηχανής...499 Ασκήσεις...520 Εργασίες...520 Σχόλια και αναφορές...522 Παράρτηµα Α:Αρχιτεκτονική του Pentium...525 A.1 Η κεντρική µονάδα επεξεργασίας...526 A.2 Η στοίβα...530 A.3 Η µονάδα πραγµατικών πράξεων...532 A.4 ιεύθυνση δεδοµένων...535 A.4.1 Το δεδοµένο περιέχεται σε καταχωρητή (registeroperand)...535 A.4.2 Το δεδοµένο περιέχεται στην εντολή (immediate operand)...535 A.4.3 Το δεδοµένο είναι αποθηκευµένο στη µνήµη...536 A.5 Κατευθυντήριες εντολές...547 A.6 Εντολές...547 A.6.1 Εντολή ελέγχου του δείκτη στοιχείου πίνακα...548 A.6.2 Εντολές αριθµητικών πράξεων...548 A.6.3 Εκχώρηση τιµής µε την εντολή M OV...553 A.6.4 Σύγκριση και άλµατα...556 A.6.5 Λογικές πράξεις...560 A.6.6 Εντολή επανάληψης...561 A.6.7 Κλήση υποπρογράµµατος και επιστροφή...562 A.6.8 ιαχείριση στοίβας...563 Παράρτηµα Β:Κλήσεις συστήµατος στο M S-DOS...565 B.1 Το επίπεδο του λειτουργικού συστήµατος...566 v

vi B.2 Κλήσεις συστήµατος στο MS-DOS...567 Βιβλιογραφία-Αναφορές...569 Ευρετήριο...577