Introduction to compilers

Course: Software Engineering

Structural unit: Faculty of Computer Science and Cybernetics

Title
Introduction to compilers
Code
ННД.32
Module type
Обов’язкова дисципліна для ОП
Educational cycle
First
Year of study when the component is delivered
2022/2023
Semester/trimester when the component is delivered
6 Semester
Number of ECTS credits allocated
4
Learning outcomes
LO07. Know and apply in practice the fundamental concepts, paradigms and basic principles of operation of languages, tools and computing facilities of software engineering. LO13. Know and apply methods of algorithm development, software design and data and knowledge structures design. LO15. Choose with motivation programming languages and development technologies to solve problems of software construction and maintenance. LO16. Have the skills of team development, approval, design and release of all types of software documentation.
Form of study
Full-time form
Prerequisites and co-requisites
1. Know: basic principles of computer architecture, elements of discrete structures, particularly, sets, theory of computation, graphs, fundamental concepts of object-oriented programming and their use in C++ and/or Java programming languages. 2. Be able to: write code in programming language C/C++ or Java. 3. Have basic skills: of software testing and debugging.
Course content
The aim of the discipline is mastering basics of programming language compiler construction, study of compiler structure, principles of lexical and syntactic analyses. As a result of studying the discipline, the student must: know types of language processors, general structure of compiler, approaches to lexical and syntactic analyses, respective topics of automata and formal language theories, principles for design of main subsystems of operating systems, algorithms commonly used in these subsystems; be able to develop lexers and parsers for programming languages with different levels of abstraction, read and understand source code of system software.
Recommended or required reading and other learning resources/tools
1. Aho A. Compilers: Principles, Techniques, and Tools, 2nd ed. / Aho A., Lem M., Sethi R., Ullman J. — Addison Wesley, 2007. — 1007 p. 2. Tanenbaum A. Modern Operating Systems, 4th ed. / Tanenbaum A., Bos H. — Pearson, 2014. — 1136 p. 3. Hopcroft J. Introduction to Automata Theory, Languages, and Computation, 3rd ed. / John Hopcroft, Rajeev Motwani, Jeffrey Ullman. — Prentice Hall, 2006. — 750 p.
Planned learning activities and teaching methods
Lectures, laboratory classes, independent work, test, homework, defense of laboratory work, exam.
Assessment methods and criteria
Intermediate assessment: 1. Test: LO1.1, LO1.2 — 25 points. 2. Test/continuous assessment: LO4.1 — 10 points. 3. Labs 1-3: LO2.1, LO2.2, LO3.1 — 30 points. Final assessment (exam): - maximum number of points: 35 points; - learning outcomes to be assessed: LO1.1, LO1.2. - exam form: written, based on google-forms. - assignments with answers filled in the form field directly or uploaded as image, answers are time-limited. Students that earned less than 25 points are not admitted to exam.
Language of instruction
Ukrainian

Lecturers

This discipline is taught by the following teachers

Oleksii I. Chentsov
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics
Oleh O. Suprun
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics