Η βαθμολογία της επαναληπτικής εξεταστικής περιόδου (Σεπτέμβριος 2005) κατατέθηκε στη γραμματεία. Συμπεριλαμβάνει και τους σπουδαστές που συμμετείχαν στην κανονική εξέταση αλλά παρέδωσαν καθυστερημένα τις ασκήσεις στον κ. Μαΐστρο.
15/4/2005
Ανακοινώθηκε η βαθμολογία της
κανονικής εξεταστικής περιόδου (Φεβρουάριος 2005). Οι λύσεις
των θεμάτων της εξέτασης είναι διαθέσιμες από τη σελίδα του μαθήματος.
11/1/2005
ΠΡΟΣΟΧΗ: Κατόπιν αιτήματος
πλειοψηφίας σπουδαστών, η τελική εξέταση του μαθήματος
θα γίνει τη Δευτέρα 21/2, ώρα 12:00, αντί της 21/1 που
αναγράφεται στο πρόγραμμα εξετάσεων. Ο χώρος της εξέτασης θα ανακοινωθεί
σύντομα.
20/10/2004
ΠΡΟΣΟΧΗ: Οι διαλέξεις
του μαθήματος θα διεξάγονται στο εξής κάθε Τρίτη, ώρα 15:00-18:00,
στην Αίθουσα Β103 των Γενικών Εδρών.
20/10/2004
Κατόπιν απόφασης του συλλόγου σπουδαστών για αποχή, η διάλεξη της
21/10 αναβάλλεται.
Υλικό
Γενικά
Το μάθημα χωρίζεται σε δύο μέρη ως ακολούθως. Το ίδιο και η βαθμολογία (αν
και το ποσοστό κάθε μέρους δεν είναι αυστηρά 50%, προκειμένου να πριμοδοτηθούν
σπουδαστές με κλίση/ενδιαφέρον σε κάποιο από τα δύο μέρη)
Επεξεργασία φυσικής γλώσσας, Γιάννης Μαΐστρος
Η βαθμολογία θα προκύψει αποκλειστικά από μια σειρά ασκήσεων που οι
σπουδαστές θα πρέπει να παραδώσουν στο διδάσκοντα.
Θεωρία γλωσσών προγραμματισμού, Νίκος Παπασπύρου
Η βαθμολογία θα προκύψει από μια εξέταση, διάρκειας 1.5 με 2.0 ωρών, που
θα γίνει στο τέλος του εξαμήνου με ανοιχτά βιβλία και σημειώσεις.
Οι σπουδαστές μπορούν να βελτιώσουν τη βαθμολογία τους σε αυτό το μέρος,
παραδίδοντας στο διδάσκοντα μια σειρά ασκήσεων (bonus)
Χρήσιμο υλικό από τις παραδόσεις του κ. Μαΐστρου, για το μέρος του μαθήματος
που σχετίζεται με την επεξεργασία φυσικής γλώσσας, είναι διαθέσιμο
στη σελίδα:
ΠΡΟΣΟΧΗ: Τα παρακάτω αφορούν
μόνο στο μέρος του μαθήματος που σχετίζεται με τη θεωρία γλωσσών
προγραμματισμού.
Διαφάνειες
Οι διαφάνειες που θα χρησιμοποιούνται στις διαλέξεις είναι διαθέσιμες από την
παρούσα σελίδα για τη διευκόλυνση των σπουδαστών, ώστε αυτοί να μη χρειάζεται
να κρατούν εκτενείς σημειώσεις κατά τη διάρκεια των μαθημάτων. Η ύλη των διαφανειών
παρουσιάζεται αναλυτικά στις σημειώσεις του μαθήματος. Μη σπεύσετε να
εκτυπώσετε τις διαφάνειες στην παρούσα μορφή. Πρόκειται να τροποποιηθούν
κατά τη διάρκεια του εξαμήνου.
Σε μορφή για παρουσίαση: ps.gz (395KB), pdf
(652KB), μία διαφάνεια ανά σελίδα.
Σε μορφή για εκτύπωση: ps.gz (398KB),
pdf (549KB), έξι διαφάνειες ανά σελίδα.
Τελευταία
ενημέρωση των διαφανειών: 11/1/2005 (τελική
έκδοση).
Προγραμματιστική άσκηση
Παραδώστε τα παρακάτω με e-mail στο
διδάσκοντα το αργότερο τρεις ημερολογιακές μέρες μετά το τέλος της εξεταστικής
περιόδου. Η άσκηση είναι προαιρετική και μετράει θετικά μέχρι
του 20% της βαθμολογίας του μέρους του μαθήματος που σχετίζεται με τη θεωρία
γλωσσών προγραμματισμού.
Προδιαγράψτε μια γλώσσα εκφράσεων συνδυάζοντας χαρακτηριστικά
που παρουσιάστηκαν στις παραδόσεις με τίτλο Συστήματα Τύπων (2/11
και 30/11, βλ. σχετικές διαφάνειες). Η γλώσσα
σας θα πρέπει να περιέχει τουλάχιστον: τους βασικούς τύπους,
τον τύπο συναρτήσεων και μία ακόμα επέκταση. Για τη γλώσσα αυτή δώστε:
τη σύνταξη,
τη λειτουργική σημασιολογία, και
τους κανόνες τύπων.
Στη γλώσσα προγραμματισμού της αρεσκείας σας, υλοποιήστε έναν ελεγκτή
τύπων (type checker) και ένα διερμηνέα (interpreter)
βασισμένο στη λειτουργική σημασιολογία της παραπάνω γλώσσας. Μην ασχοληθείτε
με τη λεκτική και συντακτική ανάλυση των εκφράσεων, αλλά θεωρήστε ότι ο αρχικός
κώδικας δίνεται σε κατάλληλη αφηρημένη μορφή.
Ελέγξτε την ορθότητα της υλοποίησής σας με κατάλληλα παραδείγματα εκφράσεων.
Όσοι θα ήθελαν να χρησιμοποιήσουν μια γλώσσα συναρτησιακού προγραμματισμού
για την υλοποίηση του ελεγκτή τύπων και του διερμηνέα (μέρος 2 της άσκησης)
παραπέμπονται στη βιβλιογραφία, όπου μπορούν
να βρούν πληροφορίες για τις γλώσσες Haskell, Ocaml και Clean.