(This is the older material - click here - for current specification content)
14. Comparing Compiler & Interpreter
|Fast, creates executable file that runs directly on the CPU||
Slower, interprets code one line at a time
|Debugging is more difficult. One error can produce many spurious errors||
Debugging is easier. Each line of code is analysed and checked before being executed
|More likely to crash the computer. The machine code is running directly on the CPU||
Less likely to crash as the instructions are being carried out either on the interpreters' command line or within a virtual machine environment which is protecting the computer from being directly accessed by the code.
|Easier to protect Intellectual Property as the machine code is difficult to understand||
Weaker Intellectual property as the source code (or bytecode) has to be available at run time. For example if you write a Flash Actionscript application, you can easily get de-compilers that convert the p-code back into actionscript source code (unless you use encryption, but that is another story).
|Uses more memory - all the execution code needs to be loaded into memory, although tricks like Dynamic Link Libraries lessen this problem||Uses less memory, source code only has to be present one line at a time in memory|
|Unauthorised modification to the code more difficult. The executable is in the form of machine code. So it is difficult to understand program flow.||Easier to modify as the instructions are at a high level and so the program flow is easier to understand and modify.|
Copyright © www.teach-ict.com