3 stages of compilation| Compiler | |
| Advantages | Disadvantages |
| Translates source code into object code all at once in advance of execution |
Compiled object code will only work on the operating system it has been compiled for |
| Object code is ready to be executed without delay | Compiling can take a long time, which is not appropriate for on the fly testing |
| Errors are reported after compilation has completed |
The source code is optimised to run as efficiently as possible |
| Interpreter | |
| Advantages | Disadvantages |
| Source code can be translated into object code for more than one operating system |
Translates source code into object code one line at a time |
| Only the required code needs to be interpreted so this is efficient for quick testing |
Object code has to be generated so additional time is added to the execution time |
| Errors are reported as they are found | |
| Linker | |
| Advantages | Disadvantages |
| Writing programs in modules means they require less ram Saving memory costs |
Variable names can cause problems |
| The program and compiler don’t need to be in memory at the same time |
Documentation has to be written more in detail |
| If there Is a problem in a module only that module needs to be corrected |
|

| Custom written | |
| Advantages | Disadvantages |
| The requirements of the client can be met precisely with no features that are not necessary |
The entire development cost of the software is met by the client which makes it very expensive. |
| The developers of the software will ensure that the software is compatible with the hardware, software and data used by the client |
Software takes a very long time to develop |
| The client will have access to support from the company that developed the software |
It is likely that many bugs will be found while being used |
| Off the shelf | |
| Advantages | Disadvantages |
| Cost of software is spread between all the customers which means the cost is much lower. |
Some tasks that the needed to be carried out may not be possible and there will be lots of unrequired features.. |
| Off-the-shelf software is immediately available for the customer |
software may not be compatible with existing hardware. |
| bugs will have been identified and fixed, and patches will be released as more bugs are found |
May have compatibility issues |