Course details
Code
CS-540
Name
Advanced Topics in Programming Languages Development
Program
Postgraduate
Areas
Information Systems and Human-Computer Interaction
Algorithms and Systems Analysis
Description
Ο κύριος στόχος του μαθήματος είναι η παρουσίαση και μελέτη ειδικών προχωρημένων και μοντέρνων θεμάτων: (α) σχεδίασης και υλοποίησης γλωσσών προγραμματισμού και ολοκληρωμένων περιβαλλόντων ανάπτυξης με έμφαση σε δυναμικές γλώσσες (dynamic languages) και γλώσσες ειδικού πεδίου (domain specific languages), και (β) τεχνολογίας λογισμικού με έμφαση σε μεταπρογραμματισμό (metaprogramming), γενικό προγραμματισμό (generic programming), προχωρημένα σχεδιαστικά πρότυπα (design patterns) και αυτοπροσαρμογή (self adaptation). Σε γλώσσες προγραμματισμού έμφαση θα δοθεί στα εξής θέματα: 1. Classes and Inheritance - class-based / object-based inheritance, typed / untyped inheritance, mixin inheritance, classes / prototypes, object protocols, construction / destruction, garbage collection, finalizers. 2. Languages in a language - syntax patterns, grammar emulation, rapid design, semantics implementation. 3. Integrated development environments - circular extensibility, remote deployment, multiple languages, source level debugger, code visualizers. 4. Virtual machines - lookup caching, garbage collection, debugger linkage, instruction set design, just-in-time compilation, concurrency support.Σε τεχνολογία λογισμικού έμφαση θα δοθεί στα εξής θέματα: 1. Metaprogramming - meta-programs, compile-time meta-programming (CTMP), staged languages and runtime code generation, quasi quotes and meta-level shifting. 2. Generic programming - generic algorithms, type parameterization, concepts and constraints, concept lifting, associated types, retroactive modeling. 3. Design patterns - lazy initialization, object recycler, template method, studying patterns for missing language features like State, Decorator, Visitor and Iterator. 4. Self adaptation - autonomic systems, self management, adaptive systems, self reasoning, adaptive dynamic assembly.
ECTS
6
Prerequisites
CS-340
Course website
Course email
hy540 AT csd DOT uoc DOT grShow email