System programming
Course: Applied Mathematics
Structural unit: Faculty of Computer Science and Cybernetics
Title
System programming
Code
ДВС.3.04.01
Module type
Вибіркова дисципліна для ОП
Educational cycle
First
Year of study when the component is delivered
2023/2024
Semester/trimester when the component is delivered
6 Semester
Number of ECTS credits allocated
3
Learning outcomes
LO 11. To be able to apply modern technologies of programming and software development, software implementation of numerical and symbolic algorithms.
LO 13. To use specialized software products and software systems of computer mathematics in practical work.
Form of study
Prerequisites and co-requisites
1. Know: general principles of designing algorithms for processing non-numerical information;
Java, 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 Java, ST and C ++ using software development tools.
Course content
Part 1. Object-oriented programming. Review lectures on the Java programming language
The concept of an object in the Java programming language. Structure of the object. Open and closed components of the object. Methods are members of an object. Description and definition of functions - members of the object. Defining and describing class methods.
The concept of a class as a private type. Object type. Syntax of type definition and type object. Constructors. finalize() method. Class methods. Method signature. Method overloading.
Generalized arrays. Object shells. The concept of reflection. The role of the JVM in the implementation of reflection. Methods of reflection. Exceptions and their handling. Hierarchy of exclusions.
Collections. Collection interfaces and the corresponding class hierarchy.
Part 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.
Lexical analysis. Functions of the lexical analyzer. Input and output data structures of the lexical analyzer. Finished machines. Methods of assignment of finite automata. Nondeterministic and deterministic finite automata.
Regular sets and regular expressions. Basic identities over regular expressions. Regular sets
and finished machines. Algorithm for converting a regular expression into a POLIZE.
Linear grammars and finite automata. Construction of a finite automaton based on rectilinear grammar. A system of linear equations in the algebra of regular expressions.
Programming of finite automata. Direct and indirect lexical analysis in speech processors. Construction of lexical analyzers based on finite automata.
Part 3. Development of language processors of programming languages (syntactic aspect).
..
Recommended or required reading and other learning resources/tools
1. V.V. Volokhov, B.I. Boyko, V.F. Kuzenko, S.S. Schoolboy Methodical recommendations to
laboratory workshop on building language processors from the course "System
programming" - K. Taras Shevchenko Kyiv National University, 2001. -
52 p.
2. Java 2. http://www.oracle.com/technetwork/java/javase/documentation/index.html.
3. Richard Antony. System Programming. 1st Edition. Morgan Kaufman. ISBN
9780128007297, 2015. – 548 p.
4. Cooper, Keith D., and Torczon. Engineering a Compiler, Morgan Kaufmann, 2004, ISBN 1-
55860-699-8.
5. 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.
6. Volokhov V.M. Presentation materials for lectures. 2018, 12 lectures in pdf format.
7. Aho A. Ulman J. Theory of syntactic analysis, translation and compilation. T1. M.
Peace. 1978.
..
Planned learning activities and teaching methods
Lectures, laboratory classes, consultations, independent work
Assessment methods and criteria
1. Control work (test): RN 1.1 - 9 points/ 5 points
2. Laboratory work (1 project): PH1.2 - 9 points/ 5 points
3. Laboratory work (1 project): RN 1.3 - 9 points/ 5 points
4. Laboratory work (1 project): RN 2.1 - 9 points/ 5 points
5. Laboratory work (1 project): RN 2.2 - 9 points/ 5 points
6. Laboratory work (1 project): RN 2.3, RN 4.1 - 15 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