Preprocessor, Assembler, Compiler, Linker
Preprocessor: A preprocessor is a program that processes the source code before it is compiled. It typically performs tasks such as macro expansion, file inclusion, and conditional compilation. The preprocessor is a part of the compilation process that runs before the compiler.
Compiler: A compiler is a program that converts the source code written in a programming language into machine code that can be executed by a computer. It analyzes the source code, checks for syntax errors, and translates it into a form that can be executed by the computer.
Linker: A linker is a program that combines object files generated by the compiler into a single executable file or library. It resolves references between different modules, ensuring that all the necessary code is present and that the modules are linked in the correct order.
Assembler: An assembler is a program that converts assembly language code into machine code. It reads the source code written in assembly language, which is a low-level programming language, and generates machine code that can be executed by the computer. Assemblers are typically used for low-level programming tasks where direct control over hardware resources is required.