In this type of loader, the instruction is read line by line, its machine code is obtained and it is directly put in the main memory at some known address. That means the assembler runs in one part of memory and the assembled machine instructions and data is directly put into their assigned memory locations. After completion, the assembly process assigns the starting address of the program to the location counter. The typical example ie WATFUR-77, a FORTRAN compiler which uses such "load and go" scheme. This loading scheme is also called as "assemble and go".
Fig. Compile and Go Loader
Advantages:- This scheme is simple to implement because assembler is placed at one part of the memory and loader simply loads assembled machine instructions into the memory.
Disadvantages:
- In this scheme, some portion of memory is occupied by assembler which is simply a wastage of a memory. As this scheme is a combination of assembler and loader activities this combination program occupies a large block of memory.
- There is no production of .obj file, the source code is directly converted to executable form. Hence even though there is no modification in the source program it needs to be assembled and executed each time which then become a time-consuming activity.
- It cannot handle multiple source program or multiple programs written in different languages. This is because assembler can translate one source language to another target language.
- The execution time will be more in this scheme as every time program is assembled and then executed.