Assemblers , interpreters , compilers and Java Flashcards
Machine Code
Is a low level language
Pros:
- Works with low powered computers
Cons:
- Difficult to learn
- Hard to enter without errors
- Machine specific
Assembly language
A low level language
Pros:
- Easier to undertand
- Works with low powered machines
- Easier to enter without making mistakes
Cons:
- Is machine specific
Assembler
Program that converts assembly language to machine code
Low level language
Little or no abstraction from a computers instruction set architecture
High level language
Language with strong abstraction from the computers instruction set architecture
Pros:
- Easier to learn
- Easier to understand code
- Harder to make mistakes
- Not machine specific
Cons:
- Requires more processing power
- Doesn’t allow for same level of control as as low level code
High level language
Language with strong abstraction from the computers instruction set architecture
Pros:
- Easier to learn
- Easier to understand code
- Harder to make mistakes
- Not machine specific
Cons:
- Requires more processing power
- Doesn’t allow for same level of control as as low level code
Interpreter
Translates high level code to low level line by line at run time
Interpreters pros / cons
Pros:
- Going through code line by line helps with debugging
- Quicker to re interpret than re compile
- Not machine specific
Cons:
- requires more processing power
- Translated at run time (makes slower)
- Needs interpreter to be present at run time
- Source code is not protected
Compiler
Translated high level code to low level in one go
Compiler pros / cons
Pros:
- Compiled code is faster then interpreted
- Only machine code is present
- Difficult to decipher (programers can protect intellectual rights)
- Does not need an interpreter to be present at run time
Cons:
- Requires more processing power than Low level language
- Program creation is slower , as you have to compile each time you make changes
- Is specific to each OS (a different version of the app)
Java
Is designed to be a hybrid between a compiler and interpreter
Compiles code into java byte code
Faster to interpret
Not machine specific
- Needs java virtual to interpret java byte code
- Harder to decipher than interpreted code but not compiled