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

Γλώσσες Προγραμματισμού ΙΙ

https://courses.softlab.ntua.gr/pl2/

Γλώσσες Προγραμματισμού ΙΙ

Κατ' επιλογήν υποχρεωτικό μάθημα ροής Λ, 9ου εξαμήνου, κωδικός 3.4.58.9

Εξάμηνο: Χειμερινό 2004
Διδάσκοντες:
Γιάννης Μαΐστρος   ()   γρ. 2.1.5   τηλ: 210-772-2511
Νίκος Παπασπύρου   ()   γρ. 1.1.21   τηλ: 210-772-3393

 

Ανακοινώσεις

14/11/2005

Η βαθμολογία της επαναληπτικής εξεταστικής περιόδου (Σεπτέμβριος 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%, προκειμένου να πριμοδοτηθούν σπουδαστές με κλίση/ενδιαφέρον σε κάποιο από τα δύο μέρη)

Χρήσιμο υλικό από τις παραδόσεις του κ. Μαΐστρου, για το μέρος του μαθήματος που σχετίζεται με την επεξεργασία φυσικής γλώσσας, είναι διαθέσιμο στη σελίδα:

http://glotta.ntua.gr/nlp/courses/Lang2.htm

   ΠΡΟΣΟΧΗ: Τα παρακάτω αφορούν μόνο στο μέρος του μαθήματος που σχετίζεται με τη θεωρία γλωσσών προγραμματισμού.

Διαφάνειες

Οι διαφάνειες που θα χρησιμοποιούνται στις διαλέξεις είναι διαθέσιμες από την παρούσα σελίδα για τη διευκόλυνση των σπουδαστών, ώστε αυτοί να μη χρειάζεται να κρατούν εκτενείς σημειώσεις κατά τη διάρκεια των μαθημάτων. Η ύλη των διαφανειών παρουσιάζεται αναλυτικά στις σημειώσεις του μαθήματος. Μη σπεύσετε να εκτυπώσετε τις διαφάνειες στην παρούσα μορφή. Πρόκειται να τροποποιηθούν κατά τη διάρκεια του εξαμήνου.

Προγραμματιστική άσκηση

Παραδώστε τα παρακάτω με e-mail στο διδάσκοντα το αργότερο τρεις ημερολογιακές μέρες μετά το τέλος της εξεταστικής περιόδου. Η άσκηση είναι προαιρετική και μετράει θετικά μέχρι του 20% της βαθμολογίας του μέρους του μαθήματος που σχετίζεται με τη θεωρία γλωσσών προγραμματισμού.

  1. Προδιαγράψτε μια γλώσσα εκφράσεων συνδυάζοντας χαρακτηριστικά που παρουσιάστηκαν στις παραδόσεις με τίτλο Συστήματα Τύπων (2/11 και 30/11, βλ. σχετικές διαφάνειες). Η γλώσσα σας θα πρέπει να περιέχει τουλάχιστον: τους βασικούς τύπους, τον τύπο συναρτήσεων και μία ακόμα επέκταση. Για τη γλώσσα αυτή δώστε:
  2. Στη γλώσσα προγραμματισμού της αρεσκείας σας, υλοποιήστε έναν ελεγκτή τύπων (type checker) και ένα διερμηνέα (interpreter) βασισμένο στη λειτουργική σημασιολογία της παραπάνω γλώσσας. Μην ασχοληθείτε με τη λεκτική και συντακτική ανάλυση των εκφράσεων, αλλά θεωρήστε ότι ο αρχικός κώδικας δίνεται σε κατάλληλη αφηρημένη μορφή.
  3. Ελέγξτε την ορθότητα της υλοποίησής σας με κατάλληλα παραδείγματα εκφράσεων.

Όσοι θα ήθελαν να χρησιμοποιήσουν μια γλώσσα συναρτησιακού προγραμματισμού για την υλοποίηση του ελεγκτή τύπων και του διερμηνέα (μέρος 2 της άσκησης) παραπέμπονται στη βιβλιογραφία, όπου μπορούν να βρούν πληροφορίες για τις γλώσσες Haskell, Ocaml και Clean.

Παλαιότερα έτη

 

Διαλέξεις

Παράδοση 14/10/2004

Παράδοση 26/10/2004

Παράδοση 2/11/2004

Παράδοση 9/11/2004

Παράδοση 18/11/2004

Παράδοση 23/11/2004

Παράδοση 30/11/2004

Παράδοση 7/12/2004

Παράδοση 14/12/2004

Παράδοση 21/12/2004

Παράδοση 11/1/2005

 

Τελευταία αλλαγή: 14/11/05, 16:36.