60 credits including 15 credits in mathematics and 30 credits in computer science, including Operating Systems and a second course in computer programming.
A compiler translates a computer program from a high-level language, such as C or Java, to machine code, the internal representation in the computer. Compilation takes several steps. The first step is lexical analysis, to separate the program into "words". The syntactic analysis finds the structures. Code generation is often done in two steps, via an intermediate code to machine code. Often the code is improved through code optimisation. The methods and tools from compiler design are useful for other forms of translation, for example from XML to a data structure.