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


Κωδικός 3.4.3320.9
Εξάμηνο 9o
Κατηγορία
Ώρες Διδασκαλίας - Ώρες Εργαστηρίου 3 - 1
Διδάσκοντες Ζωή Παρασκευοπούλου
Σύνδεσμοι Helios, Ιστοσελίδα Μαθήματος
Πλατφόρμα Διδασκαλίας Τμήμα 1: Microsoft Teams

Περιγραφή

Το μάθημα εστιάζει στις θεωρητικές βάσεις των γλωσσών προγραμματισμού, καθώς και σε πρακτικές πτυχές σχεδιασμού και υλοποίησης, καλύπτοντας ένα ευρύ φάσμα προηγμένων θεμάτων. Συγκεκριμένα, εξετάζονται: - Σημασιολογία γλωσσών προγραμματισμού: Η τυπική μαθηματική περιγραφή της συμπεριφοράς των γλωσσών προγραμματισμού. - Συστήματα τύπων: Ο ρόλος των τύπων στον σχεδιασμό γλωσσών, με έμφαση σε προχωρημένα συστήματα τύπων. - Ορθότητα προγραμμάτων: Τυπικές προδιαγραφές προγραμμάτων και τεχνικές για την απόδειξης τους (επαλήθευση της ορθότητας προγραμμάτων). - Μετασχηματισμοί προγραμμάτων: Τεχνικές βελτιστοποίησης και αναδιάρθρωσης κώδικα, με διατήρηση της σημασιολογίας του. - Ανάλυση προγραμμάτων: Στατικές και δυναμικές μέθοδοι για την κατανόηση της συμπεριφοράς των προγραμμάτων και τη διασφάλιση της αξιοπιστίας τους. - Ασφάλεια γλωσσών προγραμματισμού: Μελέτη γλωσσικών αφαιρέσεων (language abstractions) που διασφαλίζουν την ασφαλή διαχείριση μνήμης (memory safety) και αποτρέπουν κοινά σφάλματα. Το μάθημα περιλαμβάνει τόσο θεωρητικό σκέλος, όπου αναλύονται σε βάθος οι παραπάνω έννοιες και οι μαθηματικές βάσεις τους, όσο και πρακτικό σκέλος, όπου δίνεται έμφαση στην εφαρμογή αυτών των εννοιών σε σύγχρονες τεχνολογίες και γλώσσες προγραμματισμού (π.χ. Haskell, Rust, WebAssembly), που επιτρέπουν την ανάπτυξη ασφαλών και αξιόπιστων συστημάτων λογισμικού.