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. Κ. Λάζος, Π. Κατσαρός, Ζ. Καραϊσκος, "Μεταγλωττιστές Γλωσσών Προγραμματισμού: Θεωρία & Πράξη", 3η έκδοση/2004, ISBN: 960-87723-4-6
Κωδικός Βιβλίου στον Εύδοξο: 68383471
2. R. W. Sebesta, "Αρχές Γλωσσών Προγραμματισμού", 11η έκδοση, Εκδόσεις Μ. Γκιούρδας, ISBN: 978-960-512-698-8, Κωδικός Βιβλίου στον Εύδοξο: 68369373
Additional bibliography for study
1. K. C. Louden, K. A. Lambert, "Programming Languages - Principles and Practice", 3rd edition/2011, Cengage Learning, ISBN: 978-1111529413
2. A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman, "Compilers: Principles, Techniques, and Tools", 2nd edition/2006, Addison Wesley, ISBN: 978-0321486813
3. A. B. Tucker, R. E. Noonan, "Programming Languages - Principles and Paradigms", 2nd edition/2007, McGraw Hill, ISBN: 978-0071254397
4. M. L. Scott, "Πραγματολογία Γλωσσών Προγραμματισμού", 2η έκδοση/2009, Εκδόσεις Κλειδάριθμος, ISBN: 978-960-461-230-7