Learning Outcomes
The students who will attend the course are expected to
• familiarize themselves with a critical approach in programming languages through the comparative analysis of their characteristics
• understand the conflicting design options in programming languages and how they can affect their acceptance
• understand the trends in the use of programming languages, in order to be prepared for new programming methods, paradigms and tools
• know the whole design cycle of programming languages
• gain experience in compiler construction
Course Content (Syllabus)
Introduction, Block-structured languages, Static and dynamic scope, Functions and procedures, Scoping rules, Memory management, Lexical structure of programming languages, Lexical analysis, Code generators, Programming language syntax, Syntax analysis: top-down and bottom-up, Programming language semantics: axiomatic, denotational and operational semantics, Semantic analysis: attribute grammars and symbol table, Code generation/synthesis: intermediate code and machine code, Type systems, Type and data representation.
Keywords
Block-structured languages, Programming language syntax & semantics, Code generation/synthesis, Type systems
Course Bibliography (Eudoxus)
1. Παναγιώτης Κατσαρός, Γεώργιος Μακρής, Αναστάσιος Τεμπερεκίδης, "Γλώσσες Προγραμματισμού και Μεταγλωττιστές", Κωδικός Βιβλίου στον Εύδοξο: 94702000
2. R. W. Sebesta, "Αρχές Γλωσσών Προγραμματισμού", 11η έκδοση, Εκδόσεις Μ. Γκιούρδας, Κωδικός Βιβλίου στον Εύδοξο: 68369373
3. Keith D. Cooper, Linda Torczon, "Σχεδίαση και Κατασκευή Μεταγλωττιστών", Κωδικός Βιβλίου στον Εύδοξο: 77108866
Additional bibliography for study
1. M. L. Scott, "Πραγματολογία Γλωσσών Προγραμματισμού", 2η έκδοση/2009, Εκδόσεις Κλειδάριθμος, ISBN: 978-960-461-230-7
2. K. C. Louden, K. A. Lambert, "Programming Languages - Principles and Practice", 3rd edition/2011, Cengage Learning, ISBN: 978-1111529413
3. A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman, "Compilers: Principles, Techniques, and Tools", 2nd edition/2006, Addison Wesley, ISBN: 978-0321486813
4. A. B. Tucker, R. E. Noonan, "Programming Languages - Principles and Paradigms", 2nd edition/2007, McGraw Hill, ISBN: 978-0071254397