Faculty of Engineering, Built Environment and Information Technology
This module will introduce the student to the fundamentals of compiler construction. These include: the structural difference between a high-level and a von-Neumann language, the meaning of syntax and semantics and what semantics-preserving correctness means; the concepts of regular expressions, finite automata, context-free grammars in the context of programming languages; the need to construct parse-trees for given programmes; the application of data structures and algorithms for the purpose of code-analysis, code-optimisation and register-allocation; and the limits of code-analysis in terms of undecideability and the halting problem. After successful completion of the module, the student will have an understanding of the importance of compilers and will understand how to implement a compiler, in terms of its components, the scanner, parser, type checker and code-generator for a given grammar.
The regulations and rules for the degrees published here are subject to change and may be amended after the publication of this information.
The General Academic Regulations (G Regulations) and General Student Rules apply to all faculties and registered students of the University, as well as all prospective students who have accepted an offer of a place at the University of Pretoria. On registering for a programme, the student bears the responsibility of ensuring that they familiarise themselves with the General Academic Regulations applicable to their registration, as well as the relevant faculty-specific and programme-specific regulations and information as stipulated in the relevant yearbook. Ignorance concerning these regulations will not be accepted as an excuse for any transgression, or basis for an exception to any of the aforementioned regulations.
Postal Address: University of Pretoria Private Bag x 20 Hatfield 0028