Programming languages and compilers

Programming languages and compilers

1.

Subject title

Programming languages and compilers

Програмски јазици и компајлери

2.

Code

F23L3S112

3.

Study program

Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерски науки, Компјутерско инженерство, Интернет, мрежи и безбедност, Информатичка едукација, Software engineering and information systems, Примена на информациски технологии, Софтверско инженерство и информациски системи, Компјутерски науки, Компјутерско инженерство, Интернет, мрежи и безбедност, Software engineering and information systems, Стручни студии за програмирање, Стручни студии за програмирање,

4.

Organizer of the study program (unit, institute, department, division)

Faculty of Information Sciences and Computer Engineering

5.

Study cycle (first, second, third)

Прв циклус

6.

Academic year / semester

4 / Летен

7. Number of ECTS credits

6.0

8.

Instructor

проф. д-р Миле Јованов

9.

Prerequisites for enrollment

Алгоритми и податочни структури или Примена на алгоритми и податочни структури

10.

Subject goals and competencies:


Students should understand the development and spectrum of programming languages, and understand the process of building a compiler that will upgrade them as programmers who have penetrated the core of programming languages.

11.

Subject content:


Spectrum of programming languages. Dissection of a compiler by studying the structure of a programming language. Development of grammars and syntax-oriented translators. Lexical analysis. Syntax and semantics, syntax trees. Parsing: bottom-up and top-down. Preprocessing, error correction, symbol tables. Type checking, semantic checking. Code generation. Code optimization. Bootstrapping. Compiler construction.

12.

Learning methods:


Предавања, вежби, проекти, семинарски работи

13.

Total available time fund

6.0 ECTS x 30 hours = 180 hours

14.

Time distribution

30 + 45 + 15 + 15 + 75 = 180 hours

15.

Forms of teaching activities

15.1.

Lectures - theoretical teaching

30 hours

15.2.

Exercises (laboratory, classroom), seminars, team work

45 hours

16.

Other forms of activities

16.1.

Project tasks

15 hours

16.2.

Independent tasks

15 hours

16.3.

Homework

75 hours

17.

Grading method

17.1.

Tests

0 points

17.2.

Seminar work / project (presentation: written and oral)

15 points

17.3.

Activities and learning

16 points

17.4.

Final exam

40 points

18.

Grading criteria (points / grade)

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.

Condition for signature and taking final exam

Реализирани активности 15, 16

20.

Language of instruction

македонски и англиски

21.

Quality assurance method

Анкети, разговор со студенти.

22.

Literature

22.1.

Mandatory literature

No.

Author

Title

Publisher

Year

2506

Alfred Aho, Monica S. Lam, RaviSethi, Jeffrey D. Ullman

Compilers-Principles, Techniques and tools

Pearson Education, Inc

2007

2507

F.J.F. Benders; J.W. Haaring; T.H. Janssen; D. Meert; A.C. van Oostenrijk

Compiler Construction A Practical Approach

2003

2508

Niklaus Wirth

Compiler Construction

Addison-Wesley

1996

22.2.

Additional literature

No.

Author

Title

Publisher

Year