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

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

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

Εισαγωγή στους Αλγορίθμους

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Εισαγωγή στους Αλγορίθμους

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Εισαγωγή στους Αλγορίθμους

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Κβαντική Επεξεργασία Πληροφορίας

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 10 η : Ανάλυση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

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

Διοικητική Λογιστική

Βέλτιστος Έλεγχος Συστημάτων

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Κβαντική Επεξεργασία Πληροφορίας

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

ΘΕΡΜΟΔΥΝΑΜΙΚΗ Ι. Ενότητα 2: Θερμοδυναμικές συναρτήσεις. Σογομών Μπογοσιάν Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.2: Παραδοσιακή VS νέα προσέγγιση της ΔΟΠ

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Αριθμητική Ανάλυση. Ενότητα 1: Εισαγωγή Βασικές Έννοιες. Φραγκίσκος Κουτελιέρης Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών

Ευφυής Προγραμματισμός

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

Ενδεικτικές λύσεις ασκήσεων

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Μάρκετινγκ. Ενότητα 2: Αξία για τους Πελάτες

Ιστορία της μετάφρασης

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.4: ISO 9004:2009

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Υπολογιστές

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Οντοκεντρικός Προγραμματισμός

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 10: Διαχείριση Έργων (2ο Μέρος)

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διαχείριση Έργων. Ενότητα 10: Χρονοπρογραμματισμός έργων (υπό συνθήκες αβεβαιότητας)

Κβαντική Φυσική Ι. Ενότητα 19: Εισαγωγή στα τετραγωνικά δυναμικά. Ανδρέας Τερζής Σχολή Θετικών Επιστημών Τμήμα Φυσικής

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Μάρκετινγκ Επιχειρήσεων Λιανικής Πώλησης

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Βέλτιστος Έλεγχος Συστημάτων

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Κβαντική Επεξεργασία Πληροφορίας

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

Τηλεματική και Νέες Υπηρεσίες

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στους Υπολογιστές

Διδακτική της Πληροφορικής

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 9: Σχέση Ηθικής και Δικαιοσύνης. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Θεωρία Λήψης Αποφάσεων

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

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

Transcript:

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

Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα Μεταφραστής Τελικό Πρόγραμμα Διαγνωστικά Μηνύματα Συμβολισμός: A T C, Y 2

Είδη Μεταφραστών (1) Απλοί Αντίστροφοι (decompilers) Από Γλώσσα Μηχανής σε Γλώσσα Υψηλού Επιπέδου Χρήσιμοι για κατανόηση και debugging προγραμμάτων σε Γλώσσα Μηχανής Μετα-Μεταφραστές (meta-compilers) Χρήση: Υλοποίηση μεταφραστών Παραμετρικοί ως προς αρχική και τελική γλώσσα Χρησιμοποιούν μετα-γλώσσα για την περιγραφή τους Χρησιμότητα: Λιγότερη δουλειά για την κατασκευή του μεταφραστή 3

Είδη Μεταφραστών (2) Δύο κατηγορίες μετα-μεταφραστών: Προσαρμοζόμενοι - λειτουργούν ως ένας μεταφραστής για το ζεύγος «αρχική γλώσσα» - «τελική γλώσσα» (adjustable meta-compilers) Περιγραφή Αρχικής Γλώσσας Αρχικό Πρόγραμμα Προσαρμοζόμενος Μετα-μεταφραστής Τελικό Πρόγραμμα Περιγραφή Τελικής Γλώσσας 4

Είδη Μεταφραστών (2) Μετα-μεταφραστές γεννήτορες - παράγουν το Μεταφραστή (meta-compiler generators) Περιγραφή Αρχικής Γλώσσας Μετα-μεταφραστής Γεννήτορας Μεταφραστής Περιγραφή Τελικής Γλώσσας 5

Ειδικές περιπτώσεις προγραμμάτων που θεωρούνται Μεταφραστές (1) Προεπεξεργαστές (preprocessors) Αρχική και Τελική είναι Γλώσσες Υψηλού Επιπέδου (ΓΥΕ) Υποστήριξη πρόσθετων χαρακτηριστικών της ΓΠ Αφαιρεί σχόλια και κενά, Ομαδοποιεί χαρακτήρες σε tokens Π.χ. προεπεξεργαστές της C, της ΡΗΡ Συμβολομεταφραστές (assemblers) Από Συμβολική Γλώσσα (assembly) σε Γλώσσα Μηχανής Διευκολύνει τη διόρθωση (η assembly είναι εύκολα αναγνώσιμη) Απομονώνει το μεταφραστή από αλλαγές στη μορφή των αρχείων της γλώσσας μηχανής (μόνο ο assembler πρέπει να αλλάξει) 6

Ειδικές περιπτώσεις προγραμμάτων που θεωρούνται Μεταφραστές (2) Γεννήτορες Προγραμμάτων (program generators) Για την αυτόματη κατασκευή προγραμμάτων Π.χ. flex, bison για κατασκευή λεξικών και συντακτικών αναλυτών γραμμένων σε C Είσοδος: Προδιαγραφές προγράμματος σε Αρχική Γλώσσα (συνήθως όχι ΓΠ, π.χ. αλγοριθμική περιγραφή) Έξοδος: Πρόγραμμα σε Τελική Γλώσσα (Υψηλού Επιπέδου) 7

Χρήσιμα εργαλεία στην ανάπτυξη λογισμικού (1) Βιβλιοθήκη χρόνου εκτέλεσης (run-time library) Π.χ. της C περιέχει τον εκτελέσιμο κώδικα για τις προκαθορισμένες συναρτήσεις (printf, ) Συνδέτης (linker) Συνδέει 1 ή περισσότερα μεταφρασμένα προγράμματα και run-time libraries για να δώσει εκτελέσιμο κώδικα Φορτωτής (loader) Τοποθετεί τον εκτελέσιμο κώδικα στη μνήμη για να εκτελεστεί Συνήθως είναι τμήμα του Λειτουργικού Συστήματος (ΛΣ) 8

Χρήσιμα εργαλεία στην ανάπτυξη λογισμικού (2) Εκδότες Προγραμμάτων (program editors) Καταγραφή και διόρθωση προγραμμάτων Εντοπιστές σφαλμάτων (debuggers) Βηματική εκτέλεση προγράμματος Παρακολούθηση τιμών μεταβλητών Τοποθέτηση σημείων διακοπής εκτέλεσης Στατιστικοί αναλυτές (profilers) Μέτρηση κλήσεων/εκτέλεσης τμημάτων προγρ/τος Μέτρηση χρόνου εκτέλεσης εντολών Ανακάλυψη τμημάτων που δεν εκτελέστηκαν 9

Ολοκληρωμένο Περιβάλλον Προγραμματισμού Εκδότης προγράμματος Αρχικό πρόγραμμα Προεπεξεργαστής ΜΕΤΑΦΡΑΣΤΗΣ Προεπεξεργασμένο πρόγραμμα Εντοπιστής σφαλμάτων Στατιστικός αναλυτής Βιβλιοθήκη χρόνου εκτέλεσης Συμβολομεταφραστής Συνδέτης Πρόγραμμα σε συμβολική γλώσσα Ασύνδετο πρόγραμμα σε Γλώσσα Μηχανής Τελικό συνδεδεμένο εκτελέσιμο πρόγραμμα 10

Κατασκευή Μεταφραστή Κυρίως χειρονακτική εργασία Σήμερα γίνεται υβριδικά: Ορισμένα τμήματα (λεξικός και συντακτικός αναλυτής) αυτόματα, υπόλοιπα χειρωνακτικά τα Ορισμός προβλήματος Σύνταξη (λεξική και συντακτική ανάλυση) Τυπικοί συμβολισμοί: Πεπερασμένα αυτόματα, BNF, Συντακτικά Διαγράμματα Σημασιολογία Πολύ πιο δύσκολος 11

Διερμηνείς (Interpreters) Μετάφραση βήμα βήμα Μετάφραση στην Αρχική Γλώσσα ή σε ενδιάμεση ΠΛΕΟΝΕΚΤΗΜΑΤΑ: Γραμμένοι σε ΓΥΕ μεταφέρονται σε πολλές μηχανές Πιο εύκολοι στην κατασκευή Καλύτερος έλεγχος και αναφορά σφαλμάτων Προσφέρουν αυξημένη ασφάλεια Κατάλληλοι για εφαρμογές στο Internet MEIONEKTHMA: Πολύ αργοί 12

Μετάφραση vs Διερμηνεία (1) Δεν είναι αντίθετα Δεν υπάρχει σαφής διάκριση Καθαρή μετάφραση: Ο μεταφραστής μεταφράζει τον αρχικό κώδικα υψηλού επιπέδου σε ισοδύναμο τελικό πρόγραμμα (συνήθως σε γλώσσα μηχανής) και δεν χρησιμοποιείται πλέον: 13

Μετάφραση vs Διερμηνεία (2) Καθαρή Διερμηνεία: Ο διερμηνέας σχετίζεται με την εκτέλεση του προγράμματος Είναι το κέντρο ελέγχου κατά τη διάρκεια της εκτέλεσης 14

Μετάφραση vs Διερμηνεία (3) Μία κοινή πρακτική είναι αρχικά μετάφραση ή απλή προ-επεξεργασία, ακολουθούμενη από διερμηνεία Οι περισσότερες υλοποιήσεις γλωσσών περιέχουν μια μίξη από μετάφραση και διερμηνεία 15

Μετάφραση vs Διερμηνεία (4) Η μετάφραση ΔΕΝ χρειάζεται να παράγει γλώσσα μηχανής για κάποιο είδος hardware. Η μετάφραση είναι μεταγλώττιση από μια γλώσσα σε μια άλλη, με πλήρη ανάλυση της εισόδου Η μετάφραση συνεπάγεται σημασιολογική κατανόηση για ότι επεξεργάζεται. Η προ-επεξεργασία όχι Ένας προ-επεξεργαστής συχνά αφήνει λάθη να περάσουν. 16

Μετάφραση vs Διερμηνεία (5) Πολλές μεταφρασμένες γλώσσες έχουν διερμηνευμένα κομμάτια, π.χ. τα formats σε Fortran ή C. Οι περισσότερες μεταφρασμένες γλώσσες χρησιμοποιούν «εικονικές εντολές» Λειτουργίες συνόλων στην Pascal Χειρισμός strings στην Basic Μερικοί μεταφραστές παράγουν μόνο εικονικές εντολές π.χ. Pascal P-code, Java byte code, Microsoft COM+ 17

Μετάφραση vs Διερμηνεία (6) Source-to-source μετάφραση (C++) Οι C++ υλοποιήσεις που βασίζονται στον πρώιμο AT&T μεταφραστή, δημιουργούν ένα ενδιάμεσο πρόγραμμα σε C, αντί ενός προγράμματος σε γλώσσα assembly. 18

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 19

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0 20

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Γιάννης Γαροφαλάκης, 2015. «Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών. Μεταφραστές». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1091/ 21

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 22