A compiler is a program that reads a program written in one language (source language ) and converts into the equivalent program in a different language or the target language.

As an important part of this translation, compilers also reports users the presence of errors in programs.

Compilers are sometimes classified as single pass and multipass, load -and - go

depending on how they are constructed air what operation they have to perform.

The Analysis - synthesis mode of compilation:

The analysis part breaks up the source program into constituents pieces and creates an intermedeite representation of the source program.

The synthesis part constructs the desired target program form intermediate representation.