Abstract
- Tools that translates programming languages down the layers of Programming Abstraction
Compiler
- Translate Programming Language codes to Instruction or an intermediate code like Assembly language in C and Bytecode in Java
Preprocessor
- Text substitution tool
- It instructs the Compiler to do required pre-processing before the actual compilation
Assembler
- Translates Assembly language to Instruction