ΕΘΝΙΚΟ
ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Μεταγλωττιστές |
Περιγραφή | Ομάδες εργασίας | Βαθμολόγηση | Παραδοτέα και ημερομηνίες παράδοσης | Άλλες πληροφορίες
Να σχεδιαστεί και να υλοποιηθεί από κάθε ομάδα εργασίας ένας μεταγλωττιστής με:
Αρχική γλώσσα: μια γλώσσα προγραμματισμού της επιλογής σας. Μπορείτε να σχεδιάσετε τη δική σας γλώσσα προγραμματισμού, να επιλέξετε ένα υποσύνολο μιας γνωστής γλώσσας, ή να χρησιμοποιήσετε μια από τις υποθετικές γλώσσες που περιγράφονται στην ιστοσελίδα:
http://www.softlab.ntua.gr/~nickie/Books/Compilers/complement.html
Σε κάθε περίπτωση, οι προδιαγραφές της αρχικής γλώσσας πρέπει να έχουν καθοριστεί μέχρι την Τετάρτη 26/3, σε συνεννόηση με τους διδάσκοντες.
Τελική γλώσσα: τη συμβολική γλώσσα (assembly) της οικογένειας επεξεργαστών 80x86 της Intel. Επιλογή άλλης τελικής γλώσσας μπορεί να γίνει κατόπιν συνεννόησης με τους διδάσκοντες.
Γλώσσα υλοποίησης: μια από τις C++, Java ή C. Η επιλογή κάποιας
άλλης γλώσσας υλοποίησης μπορεί να γίνει κατόπιν συνεννόησης με τους διδάσκοντες.
Επιτρέπεται να χρησιμοποιηθούν και συνιστάται η χρήση μεταεργαλείων, π.χ.
lex
/flex
, yacc
/bison
,
ELI
, JavaCC
, κ.λπ. Πληροφορίες σχετικές με μερικά
από αυτά τα εργαλεία θα δοθούν στις παραδόσεις.
Οι ομάδες εργασίας μπορούν να είναι μονομελείς ή πολυμελείς. Δεν υπάρχει περιορισμός ως προς το πλήθος των σπουδαστών που αποτελούν μια ομάδα. Όμως, αν όλες οι υπόλοιπες παράμετροι παραμένουν σταθερές, ο βαθμός δυσκολίας της εργασίας (και άρα η ανώτατη βαθμολογία) μεταβάλλεται αντιστρόφως ανάλογα προς το πλήθος των μελών της ομάδας. Η σύνθεση των ομάδων εργασίας είναι καλό να γνωστοποιηθεί στους διδάσκοντες μέχρι την Τετάρτη 19/3.
Ο ανώτατος βαθμός της εργασίας είναι μεταξύ 2 (δύο) και 8 (οκτώ) και θα καθοριστεί από τους διδάσκοντες για κάθε ομάδα εργασίας ξεχωριστά, ανάλογα με το βαθμό δυσκολίας της άσκησης και το πλήθος των μελών της ομάδας. Από τις 8 μονάδες που είναι ο μέγιστος δυνατός βαθμός, οι 5 μονάδες αντιστοιχούν στα βασικά τμήματα του μεταγλωττιστή ενώ οι 3 μονάδες αντιστοιχούν σε προαιρετικά θέματα αυξημένης δυσκολίας (bonus). Η κατανομή των μονάδων στα τμήματα του μεταγλωττιστή δίνεται στον πίνακα της επόμενης ενότητας.
Η εργασία παραδίδεται τμηματικά όπως φαίνεται στον πίνακα που ακολουθεί. Για τα διάφορα τμήματά του μεταγλωττιστή, πρέπει να παραδίδεται εμπρόθεσμα από κάθε ομάδα εργασίας ο αντίστοιχος κώδικας, καθώς και σαφείς οδηγίες για την παραγωγή ενός εκτελέσιμου προγράμματος επίδειξης του αντίστοιχου τμήματος. Παρακαλούμε, μην παραδίδετε τυπωμένες εργασίες! Η μορφή και τα περιεχόμενα της τελικής έκθεσης πρέπει να συμφωνούν με τις οδηγίες που θα δοθούν σε ξεχωριστό φυλλάδιο.
Τμήμα του μεταγλωττιστή | Παράδοση | Βαθμολογία | Bonus |
Λεκτικός αναλυτής | Τετάρτη 9/4 | 10% | |
Συντακτικός αναλυτής | Τετάρτη 7/5 | 10% | 10% |
Σημασιολογικός αναλυτής | Τετάρτη 21/5 | 20% | 10% |
Ενδιάμεσος κώδικας | Τετάρτη 4/6 | 30% | 10% |
Βελτιστοποίηση | | | 20% |
Τελικός κώδικας | Τετάρτη 18/6 | 30% | 10% |
Συνολική εργασία και έκθεση | ως την εξέταση |
100% |
60% έως 3 μονάδες |
Η βαθμολόγηση των εργασιών θα γίνει μόνο βάσει της τελικής εργασίας, υπό την προϋπόθεση ότι η παράδοση των αντίστοιχων τμημάτων έχει γίνει εμπρόθεσμα. Με άλλα λόγια, στην τελική εργασία μπορείτε ελεύθερα να βελτιώσετε τμήματα του μεταγλωττιστή που έχετε ήδη παραδώσει.
Οι διδάσκοντες και οι βοηθοί του μαθήματος είναι στη διάθεσή σας και σας ενθαρρύνουν να τους συμβουλεύεστε για οποιεσδήποτε απορίες προκύψουν και γενικότερα για οποιαδήποτε καθοδήγηση χρειαστείτε στην εκπόνηση της εργασίας. Παρακολουθείτε την ιστοσελίδα του μαθήματος για χρήσιμες ανακοινώσεις.
http://www.softlab.ntua.gr/~nickie/Courses/compilers/