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

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

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

Transcript

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

2 Α. Γλώσσα -Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση από την αλγοριθμική περιγραφή Αρχική γλώσσα Τελική γλώσσα Μεταγλωττιστές& Διερμηνείς

3 Φάσεις Μετάφρασης ιαχείριση Πίνακα Συµβόλων αρχικό πρόγραµµα Λεκτική Ανάλυση Συντακτική Ανάλυση Σηµασιολογική Ανάλυση Παραγωγή Ενδιάµεσου Κώδικα Βελτιστοποίηση Κώδικα Παραγωγή Τελικού Κώδικα τελικό πρόγραµµα ιαχείριση Λαθών

4 Λεκτική Ανάλυση (X(I=)A(K/2)++M Αναγνώριση λεκτικών μονάδων Με χειρόγραφο επαναληπτικό πρόγραμμα Με μηχανή καταστάσεων Με τη βοήθεια μετα-μεταγλωττιστή Επιστροφή λεκτικών μονάδων και αρχικών σημασιολογικών τιμών (ονόματα, τελεστές, τιμές σταθερών)

5 Συντακτική Ανάλυση Διαδικασία συντακτικής ανάλυσης της α- κολουθίας λεκτικών μονάδων(parsing) Απόπάνωπροςτακάτω Ξεκινά με το αρχικό σύμβολο προβλέποντας διαδοχικά νέες ακολουθίες συμβόλων. Απόκάτωπροςταπάνω Αναγνωρίζει σταδιακά συμβολοσειρές και ελαττώνει μέχρι το αρχικό σύμβολο. Αποδοχή ή απόρριψη προγράμματος

6 Δέντρο Συντακτικής Ανάλυσης και Συντακτικό Δέντρο ID = ID ADDOP ID Δέντρο Συντακτικής Ανάλυσης Συντακτικό Δέντρο assignment = ID paren = expression ID ADDOP ε expression ADDOP term ID ID term ID paren ID paren ε ε

7 Σημασιολογική Ανάλυση Συλλογή πληροφοριών σημασιολογίας Κατηγορικές γραμματικές Κατηγορήματα και αποτίμησή τους Έλεγχος σημασιολογικής ορθότητας Σημασιολογικές ρουτίνες Υλοποίηση μέσα από το συντακτικό αναλυτή

8 Ενδιάμεσος Κώδικας Αφηρημένα συντακτικά δέντρα Επαυξημένα συντακτικά δέντρα όπου φαίνεται η ροή ελέγχου και η ροή δεδομένων του αρχικού προγράμματος Τετράδες /,K,2,t1 deref,a,t1,t2 store,t2,-,x

9 Βελτιστοποίηση Κώδικα Σταθερές και υπολογισμός σταθερών εκφράσεων Αναγνώριση άχρηστου κώδικα και κώδικα που ξαναχρησιμοποιείται (κοινές υποεκφράσεις) Βελτιστοποιήσεις σε βρόχους Διαχείριση δεικτών επανάληψης Μετακίνηση κώδικα εκτός βρόχου Παραλληλοποίηση κώδικα

10 Παραγωγή Τελικού Κώδικα Επιλογή εντολών Δρομολόγηση εντολών Εντολές φόρτωσης Θέσεις καθυστέρησης διακλαδώσεων Δέσμευση καταχωρητών Τελευταίες βελτιστοποιήσεις Μείωση αριθμού ακριβών εντολών Δρομολόγηση βρόχων

11 Πίνακας Συμβόλων Περιέχει όλα τα αναγνωριστικά που βρίσκονται στο αρχικό πρόγραμμα Τα αναγνωριστικά εισάγονται κατά τη λεκτική ή συντακτική ανάλυση Πληροφορίες συμπληρώνονται κατά τη συντακτική και τη σημασιολογική ανάλυση

12 Διαχείριση Λαθών Από τις πιο βασικές λειτουργίες των μεταγλωττιστών Ανίχνευση λαθών Συνήθως στη σύνταξη Ανάνηψηαπόλάθη Συνέχιση μετάφρασης για ανίχνευση περισσότερων λαθών Πόσο εύκολο είναι;

13 Υλοποίηση Μεταγλωττιστή Παραγωγή σωστού κώδικα Παραγωγή γρήγορου κώδικα Γρήγορη μετάφραση Μικρές απαιτήσεις σε μνήμη Καλά διαγνωστικά μηνύματα Δυνατότητα ανάνηψης από λάθη Αξιοπιστία για κάθε αρχικό κώδικα Φορητότητα

14 Β. Γραμματικές (Ιεραρχία Chomsky) Τύπου 0: Ελεύθερες γραμματικές α β, όπου α V +, β V * Τύπου 1: Γραμματικές με συμφραζόμενα µαν µβν,όπουµ,ν V *,A V N,β V + Τύπου 2: Γραμματικές χωρίς συμφραζόμενα Α β,όπουa V N,β V * Τύπου 3: Κανονικές γραμματικές A b,όπουa V N,b V T {ε} A bc,όπουa,c V N,b V T

15 Κανονικές Γραμματικές (ΚΓ) Οι λιγότερο ισχυρές γραμματικές Οι γλώσσες τους αναγνωρίζονται από τα πεπερασμένα αυτόματα Μικρότερη πολυπλοκότητα συντακτικής ανάλυσης Εφαρμογή στη λεκτική ανάλυση των μεταγλωττιστών

16 Γραμματικές χωρίς Συμφραζόμενα (ΓΧΣ) ΠιοισχυρέςαπότιςΚΓ Οι γλώσσες τους αναγνωρίζονται από τα αυτόματα στοίβας Μεγαλύτερη πολυπλοκότητα συντακτικής ανάλυσης Εφαρμογή στη συντακτική ανάλυση των μεταγλωττιστών

17 Αριστερότερη/Δεξιότερη Παραγωγή Αν κατά τη διαδικασία παραγωγής από μια ΓΧΣ αντικαθιστούμε το αριστερότερο μη τερματικό σύμβολο, παίρνουμε μια αριστερότερη παραγωγή Παράδειγμα: assignment IDparen=expression L ID=expression ID=term ID=IDparen ID=ID Αντίστοιχα για δεξιότερη παραγωγή

18 Διφορούμενες Γραμματικές Μια ΓΧΣ ονομάζεται διφορούμενη, όταν υ- πάρχει πρότασή της που έχει περισσότερα απόέναδσα,ήισοδύναμαπουπαράγεταιμε περισσότερες από μία αριστερότερες (ή περισσότερες από μία δεξιότερες) παραγωγές Μια ΓΧΣ ονομάζεται εγγενώς διφορούμενη όταν δεν υπάρχει ισοδύναμή της μη διφορούμενη γραμματική

19 Παράδειγμα: Ξεκρέμαστο else Διφορούμενη γραμματική: stmt IFcondstmtELSEstmt IFcondstmt S1 S2 cond C1 C2 Ισοδύναμη μη διφορούμενη γραμματική: stmt matched unmatched matched IFcondmatchedELSEmatched S1 S2 unmatched IFcondstmt IF cond matched ELSE unmatched cond C1 C2 Συμβολοσειρά:IFC1IFC2S1ELSES2

20 Γ. Λεκτική Ανάλυση Η αναγνώριση των λεκτικών μονάδων ενός προγράμματος Ηπρώτηφάσητηςμετάφρασης Η μόνη φάση που έχει άμεση επαφή με την είσοδο του μεταγλωττιστή Προεπεξεργασία Μηνύματα ελέγχου λαθών Εισαγωγή ονομάτων στον πίνακα συμβόλων

21 Διάγραμμα Μετάβασης (ΔΜ) Αναγνώριση με πεπερασμένο αυτόματο Επαυξημένος γράφος μετάβασης Δυνατότητα οπισθοδρόμησης Περισσότερη πληροφορία > 0 1 όχι = = *1 2 3 T_GT T_GE

22 Λειτουργία ΛΑ από το ΔΜ Για κάθε λεκτική μονάδα ξεκινάμε από την αρχική κατάσταση του ΔΜ Απορρίπτουμε όταν δε βρίσκουμε ορισμένη μετάβαση Σε κάθε τελική κατάσταση: Αναγνωρίζουμε την αντίστοιχη λεκτική μονάδα Πιθανά οπισθοδρομούμε στην είσοδο Επιστρέφουμε την πληροφορία που χρειάζεται ο Συντακτικός Αναλυτής(ΣΑ)

23 Κατασκευή ΔΜ Εμπειρική κατασκευή: Κατασκευάζουμε ένα ΝΠΑ για κάθε κανονική έκφραση Μετατροπή κάθε ΝΠΑ σε ΔΜ με προσαύξηση για οπισθοδρόμηση και επιστροφή πληροφορίαςστοσα ΕνοποίησηόλωντωνΔΜσεένα Το τελικό ΔΜ πρέπει να είναι ντετερμινιστικό

24 Διαχείριση Λαθών (ΔΛ) Εκτύπωση μηνυμάτων Ανάνηψη από σφάλματα Μέθοδος πανικού Διαγραφή μη επιτρεπτού χαρακτήρα Εισαγωγή χαρακτήρα Αντικατάσταση χαρακτήρα Αντιμετάθεση χαρακτήρων Πολυπλοκότητα / Κόστος / Επιτυχία μεθόδου

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

26 ΣΑ από Πάνω προς τα Κάτω Ξεκίνημα με το αρχικό σύμβολο της γραμματικής Επίλεξε έναν κανόνα με αριστερό μέλος το τρέχον σύμβολο ανάλογα με την είσοδο Κατασκεύασε ένα δέντρο με ρίζα το σύμβολο αυτό και παιδιά τα σύμβολα του δεξιού μέλους του κανόνα Επανάλαβε για κάθε μη τερματικό από τα σύμβολα αυτά

27 ΣΑ LL(k) Σειρά επεξεργασίας των μη τερματικών συμβόλων από το δεξιό μέλος Απόαριστεράπροςταδεξιά Επιλογή κανόνα Μεβάσητιςεπόμενεςkλεκτικέςμονάδες Ανάγνωση εισόδου από αριστερά προς τα δεξιά

28 Γραμματικές LL(1) Για να είναι μια γραμματική LL(1), πρέπει να μην έχει συγκρούσεις FIRST/FIRST και FIRST/FOLLOW: Για δύο κανόνες Α ακαι Α β,α β: FIRST(α) FIRST(β)= Για ένα μη τερματικό σύμβολο Α * ε : FIRST(A) FOLLOW(A)=

29 ΣΑ από Κάτω προς τα Πάνω Ξεκίνημα με την πρώτη λεκτική μονάδα Διάβασε διαδοχικές λεκτικές μονάδες αντικαθιστώντας το δεξί μέλος κάποιου κανόνα που έχει σχηματιστεί με το αριστερό του, επιλέγοντας κίνηση ανάλογα με την είσοδο Κατασκεύασε ένα δέντρο με φύλλα τα σύμβολα του δεξιού μέλους του κανόνα και ρίζα το σύμβολο του αριστερού μέλους Επανέλαβε μέχρι να βρεθεί το αρχικό σύμβολο της γραμματικής

30 ΣΑ LR(k) Σειρά σχηματισμού των μη τερματικών συμβόλων στο δεξιό μέλος Από αριστερά προς τα δεξιά (αντίστροφη της δεξιότερης παραγωγής) Επιλογή κανόνα και κίνησης Μεβάσητιςεπόμενεςkλεκτικέςμονάδες Ανάγνωση εισόδου από αριστερά προς τα δεξιά

31 Κινήσεις ΣΑ LR(k) Οι κινήσεις γίνονται με τη βοήθεια στοίβας Ολίσθηση Ανάγνωση επόμενης λεκτικής μονάδας από την είσοδο και εισαγωγή αυτής στη στοίβα Ελάττωση Αντικατάσταση στη στοίβα των συμβόλων του πλήρους δεξιού μέλους κάποιου κανόνα με το μη τερματικό σύμβολο στο αριστερό μέλος

32 ΣΑ LR(0) ΚατάστασηΣΑLR(0):Τοσύνολοτωνπροθεμάτων δεξιών μελών κανόνων που έχουν αναγνωριστεί σε κάποιο βήμα της ΣΑ Στοιχεία(items) Με την επόμενη κίνηση πρέπει να σχηματίζεται τουλάχιστον ένα νέο αποδεκτό πρόθεμα(viable prefix) δεξιού μέλους κανόνα Η ολίσθηση καταναλώνει μια λεκτική μονάδα Η ελάττωση είναι ε-μετάβαση και άρα δεν καταναλώνει λεκτική μονάδα

33 Γραμματικές LR(0) Για να είναι μια γραμματική LR(0) πρέπει να μην έχει συγκρούσεις ολίσθησης/ελάττωσης και ελάττωσης/ελάττωσης: Να μην υπάρχει επιλογή μεταξύ ολίσθησης και ελάττωσης για την ίδια κίνηση Να μην υπάρχουν δύο ή περισσότεροι κανόνες που να μπορούν να χρησιμοποιηθούν στην ίδια κίνηση ελάττωσης

34 Αλγόριθμος ΣΑ LR(0) Βάλε στη στοίβα την αρχική κατάσταση Επανέλαβε μέχρι αποδοχή ή απόρριψη: Εκτέλεσε την ενέργεια για την κατάσταση στην κορυφή της στοίβας(τρέχουσα κατάσταση): Ολίσθηση: βάλε στη στοίβα την επόμενη λεκτική μονάδα Ελάττωση: βγάλε από τη στοίβα 2 τον αριθμό συμβόλων του δεξιού μέλους, θέσε ως τρέχουσα κατάσταση το σύμβολο στην κορυφή της στοίβας και βάλε σε αυτήν το αριστερό μέλος του κανόνα ελάττωσης Βάλε στη στοίβα την επόμενη της τρέχουσας κατάστασης για το σύμβολο στην κορυφή της

35 Λειτουργία Ακριβούς ΣΑ LR(1) ΚατάστασηΣΑLR(1):ΜίακατάστασητουΣΑ LR(0), με την προσθήκη για κάθε στοιχείο του συνόλου των λεκτικών μονάδων που επιτρέπεται να ακολουθούν το αριστερό μέλος του στη συγκεκριμένη κατάσταση Η λειτουργία είναι παρόμοια με τη λειτουργία του ΣΑ LR(0), με τη διαφορά ότι ο πίνακας κίνησης ACTION είναι δισδιάστατος, με τις στήλες να αντιστοιχούν στα προπορευόμενα σύμβολα

36 Προσεγγιστικοί ΣΑ LR(1) LALR(1) LR(1) Ενοποιούμε τις καταστάσεις του ΣΑ LR(1) που αντιστοιχούν στην ίδια κατάσταση του ΣΑ LR(0), ενώνοντας και τα αντίστοιχα σύνολα προπορευόμενων λεκτικών μονάδων SLR(1) LALR(1) Προσεγγίζουμε τα σύνολα των λεκτικών μονάδων που μπορούν να ακολουθούν το αριστερό μέλος κάποιου στοιχείου με το αντίστοιχο σύνολο FOLLOW (το οποίο δεν διαχωρίζει καταστάσεις)

37 Διαχειριστής Λαθών στη ΣΑ ΟΔΛτηςΣΑπρέπει: Να αναφέρει τα σφάλματα με ακρίβεια και σαφήνεια Λάθος σε προηγούμενη θέση Να μπορεί να συνεχίζει τη ΣΑ μετά από κάποιο σφάλμα Ώστε να μπορεί να βρίσκει περισσότερα σφάλματα Αλλάχωρίςναμπαίνεισεατέρμονακύκλο

38 Ε. Πίνακας Συμβόλων (ΠΣ) Χαρακτηριστικά ενός ονόματος: Κατηγορία αποθήκευσης Εμβέλεια Ορατότητα προσοχή στις φωλιασμένες εμβέλειες για επισκιάσεις Διάρκεια ζωής στη C++ επιτρέπονται δηλώσεις στο μέσο εμβέλειας

39 Περιεχόμενα ΠΣ Στον ΠΣ αποθηκεύονται πληροφορίες για: Τύπους Θέσεις στη μνήμη, ανάλογα με την κατηγορία α- ποθήκευσης Παραμέτρους Αριθμό παραμέτρων Τύπους παραμέτρων Τρόπους περάσματος Η αποθήκευση ακολουθεί τις εμβέλειες

40 Οργάνωση ΠΣ Γραμμικές λίστες Απλή, αλλά αργή δομή: Ο(n(n+m)) Δέντρα δυαδικής αναζήτησης Λιγότερο απλή, πιο γρήγορη δομή: O((n+m)logn) Πίνακες κατακερματισμού Πολύπλοκη, αλλά γρήγορη δομή: O(n(n+m)/k)

41 ΣΤ. Σημασιολογική Ανάλυση Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται μέσω κατηγορημάτων ή καθολικών μεταβλητών Μέρος της σημασιολογίας ενσωματώνεται στη σύνταξη με κατάλληλη μετατροπή κανόνων

42 Στατική Σημασιολογία Σημασιολογία που αναλύεται κατά τη μετάφραση Τύποι μεταβλητών Εμβέλειες μεταβλητών Δηλώσεις συναρτήσεων Κλήσεις συναρτήσεων Τύποι παραστάσεων και αναθέσεων Άλματαεντόςκαιεκτόςμπλοκ

43 Είδη Σημασιολογικών Ελέγχων Έλεγχοι τύπων Έλεγχοι ροής για άλματα (goto, break) Έλεγχοι ύπαρξης ονομάτων Έλεγχοι μοναδικότητας για μεταβλητές ή ετικέτες Έλεγχοι συνέπειας

44 Έλεγχος Τύπων Έλεγχος τύπων σε παραστάσεις Μετατροπές τύπων Υπερφόρτωση τελεστών Πολυμορφικοί τελεστές και συστήματα τύπων Ονόματα και συνώνυμα τύπων Ισοδυναμία τύπων Υποτύποι Εξαγωγή τύπων

45 Έλεγχος Ροής Έλεγχος ετικετών σε εντολές goto αριθμοί ή ονόματα Έλεγχος χρήσης ειδικών εντολών: break continue return Χρειάζεται έλεγχος δομής εντολών ελέγχου;

46 Έλεγχος Ονομάτων Έλεγχος ύπαρξης σε χρήση ονόματος Απαίτηση προηγούμενης δήλωσης Προαιρετική σε κάποιες γλώσσες (κυρίως συναρτησιακού) προγραμματισμού Έλεγχος μοναδικότητας σε δήλωση ονόματος Απαγόρευση πολλαπλών δηλώσεων στην ίδια εμβέλεια Πολλαπλές δηλώσεις επιτρέπονται σε διαφορετικές εμβέλειες

47 Έλεγχος Συνέπειας Κάποιες δομές εντολών δεν ελέγχονται από το συντακτικό αναλυτή κλασική FORTRAN: do 100 i=1,100 if (x.gt. 0) then a(i) = x * b(i) else a(i) = 0.0 endif 100 continue

48 Ζ. Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα Αναπαραστάσεις γραφημάτων: Ενδιάμεσος κώδικας πλησιέστερα στον αρχικό περισσότερη πληροφορία, καλή βελτιστοποίηση

49 Γραμμικές Αναπαραστάσεις Κώδικες τριών διευθύνσεων Κώδικας τετράδων (quadruples): τελεστής, δύο τελούμενα εισόδου και ένα τελούμενο εξόδου b*b-4*a*c 1:*,b,b,$1 2:*,4,a,$2 3:*,$2,c,$3 4:-,$1,$3,$4 Κώδικας τριάδων (triples): ο αριθμός τριάδας χρησιμοποιείται ως τελούμενο εξόδου

50 Αναπαραστάσεις Γραφημάτων Αφηρημένα συντακτικά δέντρα(ασδ) x = a+5 ID G:8 κατευθυνόμενα ακυκλικά γραφήματα Ιεραρχικά γραφήματα ακολουθούν φωλιάσματα δομημένων εντολών καλά για βελτιστοποιήσεις = ID L:7 + ICONST 5

51 Τι Πρέπει να Περιέχει ο Ενδιάμεσος Κώδικας Πληροφορίες για προσπέλαση δεδομένων τύποι δεδομένων οργάνωση χώρου δεδομένων(χδ) Πληροφορίες αποτίμησης εκφράσεων τελεστές και τελούμενα Πληροφορίες εκτέλεσης εντολών σημασιολογία εντολών Πληροφορίες ελέγχου ροής σειρά εκτέλεσης εντολών

52 Σχεδίαση ΧΔ Διαφορετικός χώρος για κάθε κατηγορία αποθήκευσης Υλοποίηση με τη βοήθεια Πίνακα Δεσμευσης Για κάθε βαθμωτή μεταβλητή δεσμεύεται μίαθέσηκαιαναγράφεταιοτύποςτης απλοί/σύνθετοι τύποι Ενημερώνεται ο ΠΣ Κάθε αναφορά στη μεταβλητή αναφέρεται σεαυτήτηθέση

53 Αριστερή / Δεξιά Προσπέλαση Τιμή αριστερής προσπέλασης (l-value): Διεύθυνση στην οποία μπορεί να γίνει ανάθεση, όπως καθορίζει η σημασιολογία της γλώσσας Βαθμωτές μεταβλητές ή μεταβλητές πίνακα/εγγραφής Παράμετροι κατ αναφορά Τιμή δεξιάς προσπέλασης (r-value): Τιμή έκφρασης ή αποτίμηση αριστερής προσπέλασης Τιμές που ανατίθενται Παράμετροι κατ αξία

54 Απεικόνιση Εντολών Δέντρα εντολών ή γραμμικές αναπαραστάσεις ID L1:4!= ICONST 0 if ID G:2 if(i!= 0) y = x -1; = ID L2:5 - ICONST 1 ==,i,0,3 -,x,1,$1 = $1,-,y

55 Απεικόνιση Ροής Ελέγχου Γράφημα Ροής: Απεικόνιση της διαδοχής των εντολών σε μορφή γραφήματος Συνδέσεις μεταξύ κόμβων του συντακτικού δέντρου, των οποίων η εκτέλεση μπορεί να είναι διαδοχική Κυκλικές δομές για απεικόνιση βρόχων Χρήσιμο για μετάφραση εντολών ροής ελέγχου, βελτιστοποίηση κώδικα και διερμηνεία

56 Διερμηνεία Απ ευθείας στην αρχική γλώσσα: Λεκτική και συντακτική ανάλυση, στη συνέχεια εκτέλεση μέσα από σημασιολογικές ρουτίνες Τιμές μεταβλητών μέσα από κατηγορήματα Διερμηνεία στον ενδιάμεσο κώδικα: Διαπέραση του ενδιάμεσου κώδικα με εκτέλεση των εντολών, ακολουθώντας το γράφημα ροής Πραγματική αποτίμηση εκφράσεων Προσομοίωση του συνολικού χώρου δεδομένων, συμπεριλαμβανομένης της στοίβας

57 Η. Τελικός Κώδικας Οργάνωση χώρου εκτέλεσης προγράμματος Τύποι και τελικός κώδικας Χώροι αποθήκευσης δεδομένων Κλήσεις υποπρογραμμάτων Παραγωγή κώδικα Σταδιακή μετάβαση από τον ενδιάμεσο κώδικα Σχήματα μετάφρασης για κάθε τύπο εντολής Δέσμευση καταχωρητών Επιλογή εντολών

58 Τύποι και Χώροι Δεδομένων Τύποι δεδομένων και υλοποίησή τους Απλοί βαθμωτοί τύποι Σύνθετοι τύποι Χώροι δεδομένων και προσπέλασή τους Στατικά δεδομένα Δεδομένα στοίβας Συναρτήσεις Μη τοπικά δεδόμενα

59 Τύποι Δεδομένων Βαθμωτοί Πίνακες Τύπος στοιχείων Εγγραφές/Κλάσεις Τύποι πεδίων Δείκτες Τύπος αναφοράς Κυκλικές δομές τύπων! Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

60 Υλοποίηση Τύπων Αν κάποιο δεδομένο έχει αρχική διεύθυνση Α, πώς ξέρουμε πού να βρούμε τη ζητούμενη πληροφορία; Υλοποίηση πινάκων Υλοποίηση πλειάδων/συνόλων Υλοποίηση εγγραφών Δείκτες και κυκλικές δομές Μεταβλητό μέγεθος δομών

61 Συνολικός Χώρος Δεδομένων Κώδικας Στατικές Μεταβλητές Στοίβα Σωρός Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

63 Δεδομένα Στοίβας Μεταβλητή θέση μνήμης για κάθε δεδομένο με πολλαπλά ταυτόχρονα ενεργά αντίγραφα Τοποθέτηση στα εγγραφήματα δραστηριοποίησης της στοίβας με στατικά καθορισμένη μετατόπιση από την αρχή τους Διάρκεια ζωής η διάρκεια ενεργοποίησης της αντίστοιχης εμβέλειας του προγράμματος

64 Εγγράφημα Δραστηριοποίησης Τοπικές μεταβλητές Τυπικές παράμετροι Θέση αποτελέσματος συνάρτησης Άλλες βοηθητικές θέσεις Διεύθυνση επανόδου στο καλούν περιβάλλον Σύνδεσμοι προσπέλασης Άλλες προσωρινές μεταβλητές Διαχυμένες τιμές καταχωρητών Στατικά καθορισμένο μέγεθος

65 Παράμετροι Συναρτήσεων και Μέθοδοι Περάσματος Κατ αξία πέρασμα τιμής Κατ αναφορά πέρασμα διεύθυνσης Κατ όνομα πέρασμα κώδικα - πολλαπλές αποτιμήσεις Κατ ανάγκη πέρασμα κώδικα - μία αποτίμηση Κατ αξία και αποτέλεσμα

66 Στατικό / Δυναμικό Δέσιμο Procedure A; var b: real; Procedure X; var a: real; Procedure Y; var b: integer; X; = a + b; a = b + Y; X; Πού αναζητoύνται οι μεταβλητές a και b;

67 Στατικό Δέσιμο Σύνδεσμοι προσπέλασης Δείκτης στο ΕΔ της αμέσως πιο εξωτερικής συνάρτησης Παρακολούθηση του φωλιάσματος δηλώσεων και εύκολη ενημέρωση Πίνακες δεικτών για όλες τις διαδοχικά εξωτερικότερες συναρτήσεις Πιο δύσκολη ενημέρωση, αλλά άμεση εύρεση του ΕΔ

68 Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής Κακός γεννήτορας τελικού κώδικα δίνει κακό τελικό κώδικα, ανεξάρτητα από τον υπόλοιπο μεταγλωττιστή Κακός κώδικας = αργός κώδικας

69 Τελικό Πρόγραμμα Το πρόγραμμα που παράγει ο γεννήτορας τελικού κώδικα συνοδεύεται από το χώρο στατικών δεδομένων: Βοηθητικά δεδομένα, όπως σταθερές συμβολοσειρές, σταθερές που δε μπορούν να απότελέσουν τελούμενο εντολής τελικής γλώσσας, ή πίνακες διευθύνσεων Στατικές μεταβλητές με αρχικές τιμές

70 Σχήματα Παραγωγής Τελικού Κώδικα Οι διαδικασίες μετάφρασης κάθε τύπου κόμβου ενδιάμεσου κώδικα σε συγκεκριμένες ακολουθίες εντολών τελικής γλώσσας Η μετάφραση γίνεται σε βήματα πηγαίνοντας από το επίπεδο ενδιάμεσης γλώσσας προς τα κάτω στο επίπεδο τελικής γλώσσας Αρχικός ενδιάμεσος κώδικας τελικός ενδιάμεσος κώδικας Τελικός ενδιάμεσος κώδικας τελικός κώδικας

71 Μετάφραση Εκφράσεων Τιμές αριστερής και δεξιάς προσπέλασης Κλήσεις υποπρογραμμάτων Τελεστές Προσωρινές μεταβλητές και δέσμευση καταχωρητών Επιλογή εντολών τελικού κώδικα

72 Τιμές Αριστερής Προσπέλασης Ανάπτυξη κόμβων ενδιάμεσου κώδικα για ακριβή υπολογισμό διευθύνσεων Υπολογισμός διεύθυνσης στοιχείου πίνακα: address=base_address+[(i 1 -L 1 ) N 2 N m + (i 2 -L 2 ) N 3 N m + + (i m -L m )] elem_size Προσθήκη κόμβων αποδεικτοδότησης για μετατροπή σε τιμές δεξιάς προσπέλασης Ψευδοτελεστής LOAD

73 Τιμές Δεξιάς Προσπέλασης Οι τιμές βαθμωτών μεταβλητών μπορούν να φορτωθούν από τη μνήμη με δύο τρόπους: μετηβοήθειατουτελεστήload απ ευθείας, αν η διεύθυνση μπορεί να υπολογιστεί στην ίδια εντολή με τη φόρτωση Οι τιμές σταθερών παράγονται επίσης με δύο τρόπους: με ενσωμάτωση στον εκτελέσιμο κώδικα με τοποθέτηση στο χώρο στατικών δεδομένων καιφόρτωσηαπότημνήμη

74 Κλήσεις Υποπρογραμμάτων Αποτίμηση πραγματικών παραμέτρων και τοποθέτηση των τιμών τους στη στοίβα Ενημέρωση συνδέσμου προσπέλασης και δείκτη στοίβας, ανάλογα με την υλοποίηση Εκτέλεση άλματος με σύνδεση στον κώδικα του υποπρογράμματος Ανάγνωση της τιμής του αποτελέσματος από τη στοίβα

75 Τελεστές Εκτός από τους τελεστές αναφοράς σε στοιχεία πίνακα και κλήσης υποπρογραμμάτων, οι περισσότεροι δεν απαιτούν ιδιαίτερη ανάλυση Αν η τελική γλώσσα δεν περιέχει εντολή που να εκτελεί απ ευθείας τη λειτουργία του τελεστή: μετατροπή σε απλούστερους κόμβους χρήση υποπρογράμματος(πχ. από βιβλιοθήκη)

76 Προσωρινές Μεταβλητές Όταν δεν πρόκειται να προσθέσουμε άλλους κόμβους στον ενδιάμεσο κώδικα, αντιστοιχίζουμε μια προσωρινή μεταβλητή σε κάθε κόμβο: x*y+5*(i+2) temp1: x, temp2: y, temp3: x*y, temp4: 5, temp5: i, temp6: i+2, temp7: 5*(i+2), temp8: x*y+5*(i+2)

77 Δέσμευση Καταχωρητών Έχοντας βρει με ανάλυση ροής ελέγχου τη σειρά εκτέλεσης των εντολών και αποτίμησης των κόμβων σε εκφράσεις: Υπολογίζουμε τους χρόνους ζωής των προσωρινών μεταβλητών και κατασκευάζουμε το γράφημα αλληλεπιδράσεων Δεσμεύουμε καταχωρητές χρωματίζοντας το γράφημα

78 Επιλογή Εντολών Τελικού Κώδικα Στην απλούστερη περίπτωση αποδίδουμε σε κάθε κόμβο μια εντολή ή μια συγκεκριμένη ακολουθία εντολών, για παράδειγμα: $ $5... $4 addu $5,$2,$4 Υπάρχουν κι άλλες μέθοδοι βέλτιστης επιλογής εντολών, όπως με ταίριασμα προτύπων και δυναμικό προγραμματισμό

79 Μετάφραση Εντολών Για εντολές ελέγχου ροής (διακλαδώσεις, βρόχοι): Σχήμα παραγωγής κώδικα για κάθε τύπο κόμβου εντολής, με μετατροπή σε απλούς κόμβους ελέγχου ροής που διαθέτει η τελική γλώσσα Στοιχειώδης ανάλυση ροής ελέγχου στον αρχικό ενδιάμεσο κώδικα βοηθάει στη σύνδεση ροής (προορισμοί αλμάτων) στον τελικό κώδικα Κατάλληλα σχήματα παραγωγής τελικού κώδικα για όλες τις εντολές

80 Θ. Βελτιστοποίηση Μετασχηματισμός κώδικα σε άλλον πιο αποδοτικό Ασφάλεια βελτιστοποίησης Ορθότητα μετασχηματισμών! Πολυπλοκότητα μετασχηματισμών Εντοπισμός πιθανά προβληματικού κώδικα Στατιστικοί αναλυτές μπορούν να δείξουν ποια μέρη ενός προγράμματος το καθυστερούν Επιλογή εσωτερικών βρόχων

81 Φάσεις Βελτιστοποίησης Πάνω στον ενδιάμεσο κώδικα Βελτιστοποίηση εκφράσεων Βελτιστοποίηση βασικών ενοτήτων Μετασχηματισμοί βρόχων Μετασχηματισμοί κλήσεων υποπρογραμμάτων Κατά την παραγωγή τελικού κώδικα Βέλτιστη δέσμευση καταχωρητών και επιλογή εντολών Πάνω στον τελικό κώδικα Τοπικοί μετασχηματισμοί

82 Βελτιστοποιήσεις Δομής Μετακίνηση κώδικα Απαλοιφή άχρηστου κώδικα Βελτιστοποιήσεις βρόχων Μετακίνηση αναλλοίωτου κώδικα Απαλοιφή επαγωγικών μεταβλητών Αναδιοργάνωση: ξετύλιγμα, αντιστροφή, α- ποδιακλάδωση Απαλοιφή ελέγχου ορίων πίνακα Βελτιστοποιήσεις κλήσεων υποπρογραμμάτων

83 Βελτιστοποιήσεις Αποτίμησης Αποτίμηση σταθερών εκφράσεων Εύρεση κοινών υποεκφράσεων a[i-1] = b[i-1] + x*a[i-1] Διάδοση αντιγράφων Υποβιβασμός ισχύος x*5 x<<2 + x Αλγεβρικοί μετασχηματισμοί Αλλαγή σειράς αποτίμησης υποεκφράσεων

84 Μετασχηματισμοί Χαμηλού Επιπέδου Τοπικοί μετασχηματισμοί(peephole): Αφαίρεση εντολών Απλοποιήσεις αλμάτων Μαθηματικές απλοποιήσεις Βελτιστοποιήσεις σε ειδικές εντολές Βελτιστοποιήσεις δρομολόγησης εντολών Ξεδίπλωμα βρόχων Μετακίνηση εντολών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 22 Νοεμβρίου 2016 (χειρόγραφη και ηλεκτρονική παράδοση 9 Δεκεμβρίου) Άσκηση 1: Θεωρήστε τη γραμματική με κανόνες: Α B a A a c B B b A b

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 7-9 Ενότητα 7: Ενδιάμεσος κώδικας Άσκηση 7-1: Θεωρήστε τη γλώσσα προγραμματισμού C με τη γνωστή γραμματική

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

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

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

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019

Σχεδίαση Γλωσσών Προγραμματισμού. Εαρινό Εξάμηνο Lec03 18/02/2019 Σχεδίαση Γλωσσών Προγραμματισμού Εαρινό Εξάμηνο 2018-2019 Lec03 18/02/2019 Γλώσσες με δομή Block Γλώσσες με δομή Block Απλό μοντέλο Μηχανής Εκτέλεσης Διαχείριση Μνήμης Εμβέλεια και διάρκεια ζωής Εμβέλεια

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

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

Θέματα Μεταγλωττιστών Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Μεταγλωττιστές Στοίβα Εκτέλεσης και Εγγραφήματα Δραστηριοποίησης Σε όλες σχεδόν τις μοντέρνες γλώσσες προγραμματισμού,

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται με βάση διάφορα κριτήρια: Κατεύθυνση ανάλυσης μη τερματικών συμβόλων Σειρά επιλογής

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 1-2 Ενότητα 1: Εισαγωγή Άσκηση 1-1: Θεωρήστε μια υποθετική γλώσσα προγραμματισμού και την παρακάτω γραμματική

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

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

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

Πίνακας Περιεχοµένων Πρόλογος Κεφάλαιο Βασικές εισαγωγικές έννοιες Πίνακας Περιεχοµένων Πρόλογος...vii Κεφάλαιο 1:Βασικές εισαγωγικές έννοιες...1 1.1 Η δοµή του µεταγλωττιστή...2 1.2 Η διαδικασία µεταγλώττισης...3 1.2.1 Η Λεξική Ανάλυση...6 1.2.2 Η Συντακτική Ανάλυση...6

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πρώτη Σειρά Ασκήσεων 27 Οκτωβρίου 2016 Μέρος Α. (χειρόγραφη και ηλεκτρονική παράδοση 11 Νοεμβρίου) Άσκηση 1: Θεωρήστε το ακόλουθο

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

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

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

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

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

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Βελτιστοποίηση (i) Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη,

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

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

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

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

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Βοηθητικές έννοιες (i) Σύνολα FIRST Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την Αν a τότε a FIRST Αν τότε FIRST Νίκος Παπασπύρου,

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 3-6 Ενότητα 3: Λεκτική ανάλυση Άσκηση 3-1: Να δώσετε το ενοποιημένο διάγραμμα μετάβασης που αναγνωρίζει

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 3 η : Ενδιάμεση Αναπαράσταση / SSA Ενδιάμεση Αναπαράσταση (IR) Η ενδιάμεση αναπαράσταση αποθηκεύει τη συγκεντρωμένη πληροφορία από την ανάλυση ενός προγράμματος Από την ενδιάμεση

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

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Τρίτη Σειρά Ασκήσεων 27 Δεκεμβρίου 2016 Μέρος Α. (παράδοση: τέλος εξεταστικής Ιανουαρίου ή Σεπτεμβρίου) Άσκηση 1: Έστω ένα απόσπασμα γραμματικής σε συμβολισμό

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

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

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

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

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

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

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

Θέματα Μεταγλωττιστών Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 3 η : Ενδιάμεση Αναπαράσταση/ SSA Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Ενδιάμεση Αναπαράσταση (IR) Η ενδιάμεση αναπαράσταση

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός

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

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

Απάντηση: (func endfunc)-([a-za-z])+ Γλώσσες Προγραμματισμού Μεταγλωττιστές Ασκήσεις Επανάληψης ) Περιγράψτε τις κανονικές εκφράσεις που υποστηρίζουν (i) συμβολοσειρές που ξεκινούν με το πρόθεμα "func" ή "endfunc" ακολουθούμενο το σύμβολο

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2011-2012 Γιάννης Γαροφαλάκης, Καθηγητής Αθανάσιος Ν.Νικολακόπουλος, Υποψήφιος Διδάκτορας 28 Μαρτίου 2012 Περίληψη Σκοπός της παρούσας

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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

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

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

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

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

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

Κεφάλαιο 4: Συντακτική ανάλυση

Κεφάλαιο 4: Συντακτική ανάλυση Κεφάλαιο 4: Συντακτική ανάλυση (μέρος 3ο) Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 211 / 216 Συντακτικοί αναλυτές SLR(1) συµβολοσειρά εισόδου a 1 a 2... a n EOF s m x m... κορυφή επόµενο

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Τελικές Εξετάσεις Απαντήστε όλα τα θέματα του Μέρους Α και ένα θέμα από

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων) ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων) Τι θα κάνουμε σήμερα Εισαγωγικά Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Της Ασυμφραστικής

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση 6: Ασκήσεις Χειμερινού Εξαμήνου 2017-2018 (μέρος Β ) Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

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

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

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

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

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή Αντίρριο, 05/04/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» To δεύτερο μέρος της εργασίας έχει ως στόχο την ανάπτυξη του συντακτικού αναλυτή με χρήση του bison / byacc. Στο

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

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

FORT320. Γενική Περιγραφή. Ειδική Περιγραφή. Α. Λεκτικές Μονάδες

FORT320. Γενική Περιγραφή. Ειδική Περιγραφή. Α. Λεκτικές Μονάδες FORT320 Γενική Περιγραφή H γλώσσα FORT320 μοιάζει με τη γλώσσα υψηλού επιπέδου FORTRAN, και ορίζεται στη συνέχεια. Η FORT320 είναι δομημένη με σύνθετες εντολές, σε αντίθεση με την κλασική FORTRAN, η οποία

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

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

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

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 21η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: «Artificial Intelligence A Modern Approach» των. Russel

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

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

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

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

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

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

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

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ Σκοπός: Το μάθημα αυτό αναφέρεται: 1 Ο Εργαστηριακό Μάθημα Εισαγωγή Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών Στα στάδια της μεταγλώττισης Θεωρία Πρόλογος Αφιερώνεται το πρώτο εργαστηριακό

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

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές» Η εργασία έχει ως στόχο τον σχεδιασμό και την υλοποίηση ενός μεταγλωττιστή για την γλώσσα Ciscal, χρησιμοποιώντας

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές

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

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη. 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2015 Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) ΣΥΝΟΛΟ

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

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

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

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

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

ΜΑΘΗΜΑ: Μεταγλωττιστές Comment [h1]: Παράδειγμ α: https://ocp.teiath.gr/modules/ exercise/exercise_result.php?course=pey101&eurid=16 9 ΜΑΘΗΜΑ: Μεταγλωττιστές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1

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

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 2 ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 3 ΟΔΗΓΟΣ στη ΧΡΗΣΗ του ΥΠΟΛΟΓΙΣΤΗ 4 ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 5 ΓΕΩΡΓΙΟΣ ΘΕΟΔΩΡΟΥ Καθηγητής Α.Π.Θ. ΧΡΙΣΤΙΝΑ ΘΕΟΔΩΡΟΥ Μαθηματικός ΟΔΗΓΟΣ στη ΧΡΗΣΗ του ΥΠΟΛΟΓΙΣΤΗ

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

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

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

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

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή Ποιος είμαι εγώ! 2 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA, 7/2004-7/2006 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 - H Υπεύθυνη των

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. ΘΕΜΑ 1 ο A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη. 1. Η συνθήκη Χ = Α_Μ (Χ) είναι πάντα αληθής, για

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

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

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog Περιεχόμενα Πρόλογος... xxv 1. Εισαγωγή... 1 1.1. Ιστορική Εξέλιξη της Prolog.... 2 1.2. Προστακτικός και Δηλωτικός Προγραμματισμός.... 2 1.3. Δηλωτική και διαδικαστική έννοια ενός προγράμματος Prolog....

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

{ int a = 5; { int b = 7; a = b + 3;

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ (ΠΕΡΙΛΗΨΗ) ΕΠΙΜΕΛΕΙΑ: ΝΙΚΗΦΟΡΟΣ ΜΑΝΔΗΛΑΡΑΣ ΚΕΦΑΛΑΙΟ 2 ο -ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ 2.1 ΤΙ ΕΙΝΑΙ ΑΛΓΟΡΙΘΜΟΣ ΟΡΙΣΜΟΣ: Αλγόριθμος είναι

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