when we write any program in a particular language at the end it will give some output to us. To give such a desirable output it will pass through different tools and at the end it will give the output. There are six tools through which our program passes. Output of each tool is an input to the next tool. Six tools are as follows
1] Editor :
Editor is a such type of tool in which we can write our program. Suppose,we are writing a c program like demo.c. The extension of program vary according to language.
e.g gedit,notepad, notepad++
2] Preprocessor :
Preprocessor process the line begins with # symbol. # symbol is called as Preprocessor directives. It gives the direction to the preprocessor removes the white spaces, comments. Task of preprocessor is the macro expansion, header file inclusion and generate the intermediate file with the extension .i
Compiler can convert the intermediate code into machine dependable language i.e assembly language. It generate the file with the extension .s or .asm.
Assembler can convert the machine dependable code into machine understandable code. It generate the file with the extension .obj
Linker can link the obj file generated by assembler with another obj and generate the executable file with the extension .exe
Loader can load the executable file generated by linker on the RAM. That time our program become a process & operating system can allocate the memory to that process, that memory is called as process address space. Our program get executed and output is display on the screen by the operating system.
Thanks! I hope this article is helpful for you :)