1. Compiler :
Compiler, as name suggests, is a process that is used to convert code into machine instructions. It simply translates source code from high-level programming language to low-level machine language. It is basically a complex software that performs both code optimization and code generation. It also makes end code more efficient which is optimized for execution time and memory space.
2. Debugger :
Debugger, as name suggests, is a process used to remove bugs from code. It simply allows testing and debugging other programs. Sometime, it also provides two modes of operations i.e., full and partial simulation. It is used to prevent incorrect operation of software or system. It also uses instruction-set simulators instead of running a program directly on processor to achieve higher level of control over its execution.
Difference between Compiler and Debugger : Compiler Debugger
It is a computer program used to translate high-level language into set machine language. It is a computer program used to test and debug target programs. It generally allows computer to run understand program without need of programming software used to create it. It generally allows you to uncover and diagnose errors in computer software. It is very important to convert text that programmer writes into format that CPU understands. It is very important to provide maximum useful information of data structures and allows easy interpretation. It takes less time as compared to debugger. It takes more time as fixing some errors may introduce others. Compiled programs might have some errors or bugs. Debugged program cannot have any errors. It has capability to detect syntax Errors and compile time errors. It provides more capabilities to detect errors in programs as compared to compiler. It generates IL (Intermediate Language) code. It checks IL code line by line. It is more difficult task to design and develop a compiler. It is less difficult to design and develop a debugger as compared to compiler. It performs various tasks such as pre-processing, parsing, semantic analysis, lexical analysis, etc. It performs various tasks such as check and change data contents, detect and remove existing potential errors, etc.