This module introduces topics include compiler design, lexical analysis, parsing, symbol tables, declaration and storage management, code generation, and optimization techniques. The aim of this module is to show how to apply the theory of language translation introduced in the prerequisite courses to build compilers and interpreters. It covers the building of translators both from scratch and using compiler generators. In the process, the module also identifies and explores the main issues of the design of translators. The construction of a compiler/interpreter for a small language is a necessary component of this module, so students can obtain the necessary skills.