General principles and techniques for disciplined low-level software design. BNF and basic theory of grammars and parsing. Use of parser generators. Basics of language and protocol design. Formal languages. State-transition and table-based software design. Formal methods for software construction. Techniques for handling concurrency and inter-process communication. Techniques for designing numerical software. Tools for model-driven construction. Introduction to Middleware.
Intended learning outcomes
Knowledge and understanding
To recognize the importance of compilers for programming languages
The student understands the stages of translating language instructions
That the student knows the steps of building towards a language
Explain to the student how translation operations are carried out
mental skills
To make the student aware of the dimensions of teaching plastic languages and their applications
That the student connects the concepts of the compiler industry with its other applications in reality
To understand the importance of translation processes
That the student analyzes the instructions embodied in a programming language
Practical and professional skills
The student should be able to analyze the operations of a system
That the student be able to link the sequence of procedures and their impact on each other
The student should be able to design a transformation to parse different texts
The student should be able to program parsing operations
General and transferable skills
The student acquires a skillful visualization of the relationship between the components of the software systems
That the student can formulate his idea to reach others
That the student realizes the importance of working in a team of programmers