It is the software that functions like the hardware without actual hardware.
Allows simulation of peripherals and I/O devices.
Allows checking of software before the hardware is available to the user.
Linker is used to link with the library and generation of executable file.
It is used for relocation process.
It is done during compilation also it can be done at run time by a relocating loader.
It is a program that takes one or more objects generated by compiler and combines them into a single executable program.
It is program which converts high level language program to machine language.
It also indicates the syntax errors in the program if any.
It generates object file corresponding to the target device.
Debugger is used to find the error and it keeps the control over the system environment and ability to test or follow the execution of the program.
Debugger allows the user to load program in to the system memory, executes the program by single stepping and detect logical errors in the program.