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 |