-translates high levels into machine code
-translates whole program to create an executable file, so doesn't tolerate errors
-doesn't need to be installed to run file
-can't see source code, so can't copy parts
Back
assembler
Front
converts assembly language to machine code
Back
high level language
Front
eg python, java
Back
low level advantages
Front
-processor-specific, so faster execution
-less memory used
-programmer has complete control over system components
Back
interpreter
Front
-translates high levels into machine code
-one line at a time, will run up to an error
-can see source code, open to copying
-must have installed to run code
Back
machine code
Front
-directly entered as binary
-long time, prone to errors
-doesn't need to be translated
Back
low level languages
Front
eg assembly language, machine code
Back
assembly language
Front
-next level up from machine code
-short names and symbols, readable
-less tedious, less prone to errors
-needs an assembler
Back
high level advantages
Front
-easy to learn
-faster to code as 1 statement can represent many machine code instructions
-easier to read as looks more like natural lang
-can be specialised for certain tasks, so efficient eg inbuilt functions
Back
low level disadvantages
Front
-harder to learn
-longer to code
-harder to debug
Back
high level disadvantages
Front
needs to be translated into machine code using a compiler/interpreter