Development of language processors
Course: Applied Mathematics
Structural unit: Faculty of Computer Science and Cybernetics
Title
Development of language processors
Code
ДВС.3.04.02
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
3
Learning outcomes
LO 13. To use specialized software products and software systems of computer mathematics in practical work.
LO 11. To be able to apply modern technologies of programming and software development, software implementation of numerical and symbolic algorithms
Form of study
Prerequisites and co-requisites
1. Know: general principles of designing algorithms for processing non-numerical information;
C and C++ programming languages at the basic level; technologies and methods of design and programming.
2. Be able to: develop specifications taking into account the established requirements; demonstrate the processes and results of professional activity.
3. Have elementary skills: programming in C and C++ using software development tools.
Course content
Content module 1. Review lectures on the Java programming language
An example of a simple Java program. The concept of a package in the Java language. The role of the JVM in program execution. The concept of an object in the Java programming language. Open and closed components of the object.
The concept of a class as a private type. Type definition syntax. Constructors. The role of GC is in dynamic memory management. finalize() method. Class methods. Method signature. Method overloading.
Generalized arrays. The concept of reflection. The role of the JVM in the implementation of reflection. Methods of reflection. Exceptions and their handling. Hierarchy of exclusions.
Interfaces in the Java language. Collections. Framework of interfaces in the collection system.
Content module 2. Development of language processors of programming languages (lexical aspect).
The concept of a speech processor. Types of language processors. The main phases of the speech processor. The structure of a language processor of the translator type and the interpreter type. The main blocks of the speech processor.
Lexical analysis. Functions of the lexical analyzer. Finished machines. Methods of assignment of finite automata. Minimal finite automata.
Regular sets and regular expressions. Basic identities over regular expressions. USE of regular expression.
Linear grammars and finite automata. Construction of a finite automaton based on rectilinear grammar.
Methodology for building lexical analyzers based on finite automata.
Content module 3. Development of language processors of programming languages (syntactic aspect).
Generative grammars. Classification of grammars according to Chomsky. Generating grammars and classes of automata equivalent to them. Analysis of the chain W in the grammar G.
Vending machines.
Definition of LR(k)-grammar. Examples.
Verification of the LR(1)-condition for an arbitrary KS-grammar.
Recommended or required reading and other learning resources/tools
1. Volokhov V.M. Prezentatsіinі materіali do lektsіi. 2018, 13 lektsіi u pdf-formatі.
2. V.V. Volokhov, B.І. Boiko, V.F. Kuzenko, S.S. Shkіl-niak. Metodichnі rekomendatsії do
laboratornogo praktikumu pobudovi movnikh protsesorіv z kursu „Sistemne
programuvannia” – K. Kiїvs-kii natsіonal-nii unіversitet іmenі Tarasa Shevchenka, 2001. –
52 s.
3. Java 2. http://www.oracle.com/technetwork/java/javase/documentation/index.html.
4. Richard Antony. System Programming. 1st Edition. Morgan Kaufman. ISBN
9780128007297, 2015. – 548 p.
5. Cooper, Keith D., and Torczon. Engineering a Compiler, Morgan Kaufmann, 2004, ISBN 1-
55860-699-8.
6. Alfred Aho, Monica Lam, Ravi Sethi. Compilers: Principles, Techniques, and Tools 2nd
Edition. ISBN-13: 978-0321486813, 1040 p. https://www.amazon.com/Compilers-Principles-
Techniques-Tools-2nd/dp/0321486811.
7. Akho A. Ul-man Dzh. Teoriia sintaksicheskogo analiza, perevoda i kompiliatsii. T1. M.
Mir. 1978.
Planned learning activities and teaching methods
Lectures, laboratory classes, consultations, independent work
Assessment methods and criteria
1. Control work (test): PH 1.1 - 8 points/ 5 points
2. Laboratory work (1 project): PH1.2 - 8 points/5 points
1. Control work (test): pH 1.3 - 8 points/ 5 points
3. Laboratory work (1 project): RN 2.1 - 8 points/5 points.
4. Laboratory work (1 project): RN 2.2 - 8 points/5 points.
5. Laboratory work (1 project): PH 2.3, PH 4.1 -20 points/ 11 points
- the final evaluation (in the form of an exam) is indicated:
- the maximum number of points that can be obtained by a student: 40 points;
- learning outcomes that will be evaluated: PH1.1, PH1.2, PH 1.3, PH 2.1
- form of implementation and types of tasks: written
Types of tasks: 3 theoretical and 2 practical tasks
Language of instruction
Ukrainian
Lecturers
This discipline is taught by the following teachers
Departments
The following departments are involved in teaching the above discipline