Ανακοινώθηκε η βαθμολογία της γραπτής τελικής εξέτασης (Ιουνίου). Η τελική βαθμολόγηση
των εργασιών, και κατά συνέπεια η αποστολή των βαθμών στη γραμματεία θα
γίνει το Σεπτέμβριο, καθώς οι περισσότερες ομάδες δεν έχουν παραδώσει
την εργασία τους. Για τους σπουδαστές που θα έχουν συμμετάσχει και στις
δύο γραπτές τελικές εξετάσεις (Ιουνίου και Σεπτεμβρίου) προφανώς θα
μετρήσει ο μεγαλύτερος βαθμός.
12/3/2012
Το μάθημα άρχισε σήμερα με την πρώτη παράδοση εργαστηρίου. Ό,τι σημαντικό θα επαναληφθεί στη διάλεξη της Πέμπτης 15/3.
Για να εξοικειωθείτε με τη γλώσσα, προσπαθήστε να γράψετε μικρά και
μεγαλύτερα προγράμματα σε Llama, είτε απευθείας είτε μεταφράζοντας υπάρχοντα
προγράμματά σας από άλλες γλώσσες. Αν στερείστε από ιδέες, δείτε τις εκφωνήσεις
των ασκήσεων των εισαγωγικών προγραμματιστικών μαθημάτων εδώ και εδώ (υπάρχουν και υποδειγματικές λύσεις).
Δημοσιεύστε τα προγράμματά σας μέσω του Moodle,
ώστε να είναι διαθέσιμα και στους υπόλοιπους. Έτσι θα δημιουργηθεί ένα
σύνολο προγραμμάτων που αργότερα θα χρησιμεύσουν test suite για τους μεταγλωττιστές
σας.
Υλοποίηση της γλώσσας Llama, version
1.4 (23/8/2005)
Θα
χρειαστείτε επίσης το μεταγλωττιστή της OCaml (>= 3.08.3), διαθέσιμο από
το: http://www.ocaml.org/
Λόγω της ομοιότητας μεταξύ OCaml και Llama, ίσως σας φανούν χρήσιμα
τα ακόλουθα:
[Chai00]
E. Chailloux, P. Manoury and B. Pagano, Developing
Applications with Objective Caml, O' Reilly and Associates,
2000.
Available online from: http://caml.inria.fr/oreilly-book/.
Συντακτικό δέντρο για τη Llama και συναρτήσεις εκτύπωσης αυτού (μόνο στη C)
Πίνακας κατακερματισμού για ονόματα αναγνωριστικών.
Απλός χειριστής σφαλμάτων.
Πίνακας συμβόλων. Για πληροφορίες σχετικές με τη χρήση του, δείτε το παράδειγμα (symbtest)
Ίσως βρείτε χρήσιμο το συλλέκτη σκουπιδιών (garbage collector) του Hans
Boehm, διαθέσιμο από τη
σελίδα του ή από το τοπικό αντίγραφο (TGZ, 1213KB), version 7.2a6.
Περιβάλλον συμβολομετάφρασης (ZIP, 181KB) αποτελούμενο από τον Microsoft Macro Assembler 5.10, τον Microsoft Linker 5.10 και τον Microsoft Library Manager 3.17.
Εναλλακτικό περιβάλλον συμβολομετάφρασης (ZIP, 542KB) αποτελούμενο από τον Microsoft Macro Assembler 6.11d, τον Microsoft Linker 5.31 και τον Microsoft Library Manager 3.20. Αυτή η έκδοση του συμβολομεταφραστή μετασχηματίζει αυτόματα τα relative jumps που είναι εκτός ορίων.
Πιθανώς χρήσιμα scripts (ZIP, 3KB) για τον έλεγχο του μεταγλωττιστή σας σε Linux με dosbox.
Βιβλιοθήκη χρόνου εκτέλεσης (LIB, 12 KB) και ο κώδικας των συναρτήσεων σε x86 assembly (ZIP, 223 KB) που περιέχει όλα τα παραπάνω.
Εγχειρίδια χρήσης εργαλείων που θα σας είναι χρήσιμα στην
υλοποίηση
Για υλοποίηση με C/C++: flex (PDF, 657KB), bison (PDF, 1025KB).
Για υλοποίηση με OCaml: ocamllex (PDF, 185KB), ocamlyacc (PDF, 449KB).
Διαφάνειες
Οι διαφάνειες που θα χρησιμοποιούνται στις διαλέξεις είναι διαθέσιμες από την παρούσα σελίδα για τη διευκόλυνση των σπουδαστών, ώστε αυτοί να μη χρειάζεται να κρατούν εκτενείς σημειώσεις κατά τη διάρκεια των μαθημάτων. Μη βιαστείτε να εκτυπώσετε όλες τις διαφάνειες! Θα αλλάζουν κατά τη διάρκεια του εξαμήνου. Η ύλη των διαφανειών παρουσιάζεται αναλυτικά στις σημειώσεις του μαθήματος.