This is part one of a series of videos about compilation. As you will see when you watch this series, compilation involves a diverse range of themes in the field of computer science including high and low level programming paradigms, the definition of context free grammars, the application of dynamic data structures such as stacks, linked lists, hash tables, graphs and trees, memory management, processor architectures, and more. This series will give you an insight into some of the concepts and features that are typical of many compilers. Part one is an overview of the stages of compilation including lexical analysis, syntax analysis, object code generation and optimisation. It also mentions intermediate forms of programs such as a parse trees, abstract syntax trees and three address code. All of these are covered in more detail later in the series.