PROGRAMMING LANGUAGES AND COMPILERS

Course Information
TitleΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ / PROGRAMMING LANGUAGES AND COMPILERS
CodeNCO-04-01
FacultySciences
SchoolInformatics
Cycle / Level1st / Undergraduate
Teaching PeriodSpring
CoordinatorPanagiotis Katsaros
CommonNo
StatusActive
Course ID600020394

Programme of Study: PPS-Tmīma Plīroforikīs (2019-sīmera)

Registered students: 441
OrientationAttendance TypeSemesterYearECTS
GENIKĪ KATEUTHYNSĪCompulsory Course427

Class Information
Academic Year2024 – 2025
Class PeriodSpring
Faculty Instructors
Weekly Hours5
Total Hours65
Class ID
600259893
Course Type 2021
Specific Foundation
Course Type 2016-2020
  • Scientific Area
Course Type 2011-2015
Specific Foundation / Core
Mode of Delivery
  • Face to face
Erasmus
The course is also offered to exchange programme students.
Language of Instruction
  • Greek (Instruction, Examination)
Prerequisites
General Prerequisites
Sufficient knowledge of the basic results of the Theory of Computation is required.
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
General Competences
  • Apply knowledge in practice
  • Adapt to new situations
  • Make decisions
  • Work autonomously
  • Work in teams
  • Be critical and self-critical
  • Advance free, creative and causative thinking
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
Educational Material Types
  • Slide presentations
  • Interactive excersises
  • Book
Use of Information and Communication Technologies
Use of ICT
  • Use of ICT in Course Teaching
  • Use of ICT in Communication with Students
Description
The course material is offered in Internet through the e-learning platform, which is also used for communicating with the students. The lectures take place by audiovisual teaching aids (electronic slides).
Course Organization
ActivitiesWorkloadECTSIndividualTeamworkErasmus
Lectures52
Laboratory Work13
Reading Assigment71
Exams74
Total210
Student Assessment
Description
The students can choose between (a) the evaluation based on their answers to an interactive test (10 %) and their performance in the final written exam (90 %) or alternatively (b) they can undertake a compiler construction project for a programming language and present it in an oral exam. Their study is successful if the weighted average of the three exams or their performance in the oral exam corresponds to a promotable grade (5). The evaluation criteria, the mid-term exam, the compiler construction project and the results for the students' performance will be announced in the moodle software e-learning platform.
Student Assessment methods
  • Written Exam with Short Answer Questions (Formative, Summative)
  • Written Exam with Problem Solving (Formative, Summative)
  • Labortatory Assignment (Formative, Summative)
Bibliography
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
Last Update
29-03-2023