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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Προγραμματισμός Υπολογιστών

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

Βασίλειος Κοντογιάννης ΠΕ19

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

Επιµέλεια Θοδωρής Πιερράτος

Εισαγωγή στον προγραμματισμό

Εισαγωγή στην πληροφορική

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

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

6. Εισαγωγή στον προγραµµατισµό

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού

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

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

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

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

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

Μαλούτα Θεανώ Σελίδα 1

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

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

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

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

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

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

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

ΛΟΓΙΣΜΙΚΟ (software)

Εργαστήρι Πληροφορικής Αλγόριθµος 92 Σηµειώσεις Τεχνολογικής Κατεύθυνσης Γλώσσες µηχανής Αρχικά για να µπορέσει ο υπολογιστής να εκτελέσει µία οποιαδή

Εισαγωγή στο περιβάλλον Code::Blocks

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

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

Επεξεργασία Ερωτήσεων

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΗΣ Γ' ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Εισαγωγή στον Προγραμματισμό

8 FORTRAN 77/90/95/2003

Προγραμματισμός I (Θ)

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

κ ε φ ά λ α ι ο 7 0 Α. Θ Ε Ω Ρ Ι Α Η έ ν ν ο ι α τ ο υ π ρ ο γ ρ ά µ µ α τ ο ς Ι σ τ ο ρ ι κ ή Α ν α δ ρ ο µ ή π α ρ α τ ή ρ η σ η

Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ÅÐÉËÏÃÇ

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

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

Transcript:

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

ιαµεταγλωττιστές Συγγενή Εργαλεία ο υπολογιστής στον οποίο γίνεται η µετάφραση είναι διαφορετική αρχιτεκτονική από τον υπολογιστή στον οποίο θα εκτελεστεί το τελικό πρόγραµµα Προεπεξεργαστές (preprocerssors) από αρχική γλώσσα πάλι σε αρχική γλώσσα αφού έχει κάνει κάποιες τροποποιήσεις, π.χ. αντικατάσταση συµβολικών ονοµάτων των σταθερών µε τις πραγµατικές τιµές τους Συµβολοµεταφραστές (assemblers) από συµβολική γλώσσα µηχανής σε γλώσσα µηχανής µία προς µία αντιστοίχιση εντολών Συγγενή Εργαλεία Γεννήτορες προγραµµάτων (program generators) flex: παίρνει έως είσοδο την περιγραφή κάποιων λεκτικών µονάδων και επιστρέφει ένα λεκτικό αναλυτή. Με την αναγνώριση µίας λεκτικής µονάδας δίνει τη δυνατότητα εκτέλεσης κώδικα ή επιστροφή τιµής στον bison bison: παίρνει έως είσοδο την περιγραφή των κανόνων µίας γλώσσας και επιστρέφει έναν συντακτικό αναλυτή για τη γλώσσα αυτή. Με την αναγνώριση µίας δοµής της γλώσσας δίνει τη δυνατότητα εκτέλεσης κώδικα ιερµηνείς (interpreters) µετάφραση και εκτέλεση εντολή προς εντολή ευκολότερη κατασκευή από τους µεταγλωττιστές σηµαντικά πιο αργοί από τους µεταγλωττιστές ασφάλεια εκτέλεσης σε σχέση µε τουςµεταγλωττιστές Βιβλιοθήκες χρόνου εκτέλεσης (run time libraries) υποπρογράµµατα και συναρτήσεις σε µεταγλωττισµένη µορφή διαχειρίζονται από ειδικά προγράµµατα (διαχειριστές βιβλιοθηκών πραγµατικού χρόνου) που προσφέρουν υπηρεσίεςόπωςπροσθήκη, διαγραφή κλπ. Συνδέτες (linkers) δέχονται σαν είσοδο µεταγλωττισµένα αρχεία και βιβλιοθήκες χρόνου εκτέλεσης και παράγουν ως έξοδο ένα εκτελέσιµο πρόγραµµα αναλύουν τις σχετικές διευθύνσεις των µεταγλωττισµένων αρχείων και των προγραµµάτων βιβλιοθήκης και τα ενοποιούν ώστε να είναι όλες µε βάση µία σχετική διεύθυνση 2

Φορτωτές (loaders) δέχονται σαν είσοδο ένα εκτελέσιµο πρόγραµµα και το τοποθετούν στη µνήµη για να είναι έτοιµο προς εκτέλεση µετατρέπουν τις σχετικές διευθύνσεις σε απόλυτες διευθύνσεις αποτελεί µέρος του λειτουργικού συστήµατος Εκδότες προγραµµάτων (program editors) χρησιµοποιούνται στη συγγραφή, διόρθωση προγραµµάτων και αποθήκευσή τους στη περιφερειακή µονάδα του υπολογιστή Εντοπιστές σφαλµάτων (debuggers) βηµατική εκτέλεση προγραµµάτων παρακολούθηση τιµών µεταβλητών τοποθέτηση σηµείων διακοπής εκτέλεσης Στατιστικοί αναλυτές (profiles) Απαιτήσεις Απαιτήσεις Σωστή λειτουργία Να συµµορφώνεται µε τις προδιαγραφές αρχικής και Να µεταφράζει προγράµµατα αυθαίρετου µεγάλου µήκους Να παράγει αποδοτικό κώδικα Να έχει µικρό χρόνο εκτέλεσης Να έχει µικρές απαιτήσεις µνήµης κατά τη µεταγλώττιση Να δίνει καλά διαγνωστικά Να έχει τη δυνατότητα συνέχισης ύστερα από τον εντοπισµό σφαλµάτων Να είναι µεταφέρσιµος Οι Φάσεις της Μεταγλώττισης Λεκτική Ανάλυση λεκτική ανάλυση συντακτική ανάλυση Πίνακας Συµβόλων σηµασιολογική ανάλυση παραγωγή ενδιάµεσου κώδικα ιαχείριση λαθών Λεκτική Ανάλυση χαρακτήρας-χαρακτήρας Λεκτικές µονάδες βελτιστοποίηση ενδιάµεσου κώδικα παραγωγή τελικού κώδικα βελτιστοποίηση τελικού κώδικα 3

Συντακτική Ανάλυση Σηµασιολογική Ανάλυση Συντακτική Ανάλυση Λεκτικές µονάδες Γραµµατική της γλώσσας Σηµασιολογική Ανάλυση Παραγωγή Ενδιάµεσου Κώδικα Παραγωγή ενδιάµεσου κώδικα κώδικα Πίνακας Συµβόλων Παραγωγή Τελικού Κώδικα Λεκτικές Μονάδες Πίνακας Συµβόλων Πληροφορίες για µεταβλητές, συναρτήσεις, παραµέτρους κλπ Πληροφορίες από πίνακα συµβόλων Παραγωγή τελικού κώδικα 4

Τελικού Κώδικα Οργάνωση Μεταγλωττιστή Εµπρόσθιο τµήµα συντακτική ανάλυση χειριστής τελικού κώδικα λεκτική ανάλυση σηµασιολογική ανάλυση παραγωγή ενδιάµεσου κώδικα βελτιστοποίηση ενδιάµεσου κώδικα σφαλµάτων παραγωγή τελικού κώδικα βελτιστοποίηση τελικού κώδικα πίνακας συµβόλων Οπίσθιο τµήµα Σφάλµατα Λεκτικά σφάλµατα, π.χ. λάθη πληκτρολόγησης Συντακτικά σφάλµατα, π.χ. λείπει παρένθεση Σηµασιολογικά σφάλµατα, π.χ. αριθµητική πρόσθεση ακεραίου και διαδικασίας Σφάλµατα εκτέλεσης, π.χ. εξάντληση µνήµης Λογικά σφάλµατα, π.χ. ατέρµονη διαδικασία 5