Compilers

Објавено: October 23, 2019
  1.    Course Title Compilers
  2.    Code 3ФЕИТ07Л015
  3.    Study program KTI
  4.    Organizer of the study program (unit, institute, department) Faculty of Electrical Engineering and Information Technologies
  5.    Degree (first, second, third cycle) First cycle
  6.    Academic year/semester III/6   7.    Number of ECTS credits 6.00
  8.    Lecturer
  9.    Course Prerequisites Passed: Data Structures and Algorithm Analysis

10.    Course Goals (acquired competencies):  Introducing to the structure and steps for designing compilers and interpreters. Upon completion of the course students will be able to independently design and create a compiler/interpreter for the appropriate programming language.

11.    Course Syllabus: Compiler/interpreter model; Structure and architecture of a compiler; Lexical analysis; Regular expressions; Symbol table; Introduction to parsing. Syntax analysis. Finite automata. Grammar. Top-down parsing. Bottom-up parsing. Semantic analysis and type checking. Run-time environment. Code Generation.  Interpreter. Assembler, disassembler, linker and loader. Optimization Techniques. From syntactic tree to code. Local optimization. Global optimization. An explicit and implicit way of managing memory. Register allocation. Memory Management. Functional and logic programs. Parallel and distributed programs.

12.    Learning methods:  Laboratory exercises, practical work and lectures

13.    Total number of course hours 2 + 2 + 1 + 0
14.    Distribution of course hours 180
15.    Forms of teaching 15.1. Lectures-theoretical teaching 30
15.2. Exercises (laboratory, practice classes), seminars, teamwork 45
16.    Other course activities 16.1. Projects, seminar papers 15
16.2. Individual tasks 30
16.3. Homework and self-learning 60
17.    Grading 17.1. Exams 10
17.2. Seminar work/project (presentation: written and oral) 40
17.3. Activity and participation 0
17.4. Final exam 50
18.    Grading criteria (points) up to 50 points     5 (five) (F)
from 51 to 60 points     6 (six) (E)
from 61 to 70 points     7 (seven) (D)
from 71 to 80 points     8 (eight) (C)
from 81 to 90 points     9 (nine) (B)
from 91 to 100 points   10 (ten) (A)
19.    Conditions for acquiring teacher’s signature and for taking final exam Laboratory exercises
20.    Language Macedonian and English
21.    Method of monitoring of teaching quality Internal evaluation and surveys
22.    Literature
22.1. Required Literature
No. Author Title Publisher Year
1 Aho A.V., Lam M.S., Sethi Р.,  Ullman J.D. Compilers: Principles, Techniques, and Tools, 2/E Addison Wesley 2007
2 Grune D.,Bal H.E., Jacobs C., Langendoen K.G. Modern Compiler Design John Wiley & Sons 2000
3 Appel, Andrew W. Modern Compiler Implementation in Java, 2nd ed. Cambridge 2002