Περιεχόμενο μαθήματος

Περιεχόμενο μαθήματος

Η ύλη περιλαμβάνει μια σύντομη εισαγωγή στις διάφορες οικογένειες γλωσσών προγραμματισμού, θέματα σχεδιασμού των γλωσσών προγραμματισμού, αρχές σύνταξης κσι συντακτικής ανάλυσης, δεδομένα και πράξεις. Εισαγωγή στις συναρτησιακές γλώσσες με αυστηρό σύστημα τύπων με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. ML ή Haskell). Συμπερασμός τύπων και πολυμορφισμός. Ονόματα και εμβέλεια. Εγγραφές δραστηριοποίησης. Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό με χρήση κάποιας αντίστοιχης γλώσσας (π.χ. C++, Java ή C#). Διαχείριση μνήμης. Μηχανισμοί χειρισμού εξαιρέσεων. Παράμετροι και πέρασμα παραμέτρων. Εισαγωγή στις γλώσσες λογικού προγραμματισμού και στη θεωρητική τους θεμελίωση με χρήση της γλώσσας Prolog.

Μαθησιακοί στόχοι

Μαθησιακοί στόχοι

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

Προτεινόμενα συγγράμματα

Προτεινόμενα συγγράμματα

Programming Language Pragmatics), Michael Scott, εκδόσεις Κλειδάριθμος

Βιβλιογραφία

Βιβλιογραφία

Χρήσιμοι Σύνδεσμοι

Online Course Material

E-books & on-line tutorials

Βιβλία:

Extra υλικό (για extra ψάξιμο...)

Μέθοδοι διδασκαλίας

Μέθοδοι διδασκαλίας

Διδασκαλία καθ' έδρας. Όπως φαίνεται και στον οδηγό σπουδών, το μάθημα έχει και εργαστηριακό μέρος. O σκοπός των εργαστηρίων, στα οποία η παρακολούθηση ναι μεν δεν είναι υποχρεωτική αλλά συνιστάται, είναι να βοηθήσουν την καλύτερη κατανόηση κάποιων χαρακτηριστικών των γλωσσών προγραμματισμού που θα παρουσιαστούν στις διαλέξεις, την εξοικείωση των σπουδαστών με τα περιβάλλοντα προγραμματισμού που θα χρησιμοποιηθούν για τις ασκήσεις του μαθήματος, και την παροχή χρήσιμων συμβουλών και εμπειριών για την επίλυση των ασκήσεων. Κάποιες από τις Πέμπτες του μαθήματος θα χρησιμοποιηθούν για εργαστήρια. Πιθανώς να προγραμματιστούν εργαστήρια και σε μέρες διαφορετικές από Πέμπτες ανάλογα με τη διαθεσιμότητα των PC Labs της Σχολής και την εξέλιξη του εξαμήνου.

Μέθοδοι αξιολόγησης

Μέθοδοι αξιολόγησης

Γραπτές εξετάσεις.

Προαπαιτούμενα

Προαπαιτούμενα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών, Προγραµµατιστικές Τεχνικές, Εισαγωγή στην Επιστήµη των Υπολογιστών.

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

Βοήθεια για τις ασκήσεις

Περισσότερα

  • Άσκηση 1: Σχετικά με την SML/NJ (download και documentation)
  • Άσκηση 1: Κάποιες περισσότερες πληροφορίες και tutorials για την ML
  • Άσκηση 2: Σχετικά με το κατέβασμα του Java(TM) SE Development Kit 6 Update 25 από την ORACLE
  • Άσκηση 3: Κάποια συστήματα Prolog (η σειρά εμφάνισής τους είναι αλφαβητική) που μπορείτε να επιλέξετε να χρησιμοποιήσετε και κάποια σύντομα σχόλια για αυτά:
    • GNU Prolog Τα κύρια πλεονεκτήματα αυτού του συστήματος είναι ότι μεταφράζει τα προγράμματα σε γλώσσα μηχανής και ότι έχει επεκτάσεις για λογικό προγραμματισμό με περιορισμούς (constraint logic programming).
    • SWI Prolog Το πιο φιλικό προς το χρήστη σύστημα και μάλλον η καλύτερη επιλογή για αρχάριους και για όσους (ακόμα) δουλεύουν σε περιβάλλον Windows. Το σύστημα περιλαμβάνει έναν ωραίο debugger. Όμως είναι το πιο αργό από όλα τα συστήματα αυτής της λίστας.
    • YAP (Yet Another Prolog) Πλήρες σύστημα Prolog που έχει υιοθετήσει πολλές επεκτάσεις (attributed variables, tabling, parallelism, ...) της γλώσσας. Αρκετά καλή επιλογή για όσους δουλεύουν σε Linux. Επιπλέον, είναι το πιο γρήγορο από τα συστήματα αυτής της λίστας.

Οι βρίσκονται αναρτημένς στα έγγραφα