A compiler is a computer program that transforms a source code written in a programming language into a binary code that is executable on a target platform. Generally, a compiler consists of Lexical Analyser, Syntax Analyser, Semantic Analyser and Code Generator as shown in Fig below. Intermediate Code Generator and Code Optimizer are optional.
The Java compiler is implemented using GPPG in C#.
Visual Studio 2017