Section 4 Chapter 21 - Programming Language Classification Flashcards
Accumulator
A special memory location where calculations are carried out
Control unit
A part of a computer that decodes instructions
Machine code
The binary digits that computers can understand
Components of a machine code instruction
Opcode and operand
Abstraction
When data and programs are defined in a way similar to their meaning, leaving out the details of implementation
Low level language
A language that reflects how the computer actually carries out the instruction: Machine code and Assembly language
High level language
A language that allows a programmer to think and code in terms of algorithms without worrying about how each tiny step will be executed in machine code
Imperative language
A language where each instruction is a command to do something e.g. Java
Declarative language
A language where you specify what you want done but now how you want it done e.g. SQL
Assembly Language
A low level language that uses mnemonics for the opcode and decimal/hexadecimal for the operand. It translates directly to machine code.
Timeline of languages
Machine Code (LL) (First Generation)
Assembly Language (LL) (Second Generation)
FORTRAN, BASIC (HL)
C, Java, Python (HL)
Advantages of using a LL language
Can make the best use of limited memory/processing power as they can be better optimised and can run faster.
Where LL languages are still used (2)
Embedded Systems
Drivers
Disadvantages of LL languages (3)
Can take a long time to write a program
Very prone to bugs and errors
Forces the programmer to be thinking about every little detail rather than the bigger picture
Relationship between imperative languages and low level languages
High level imperative languages are the natural abstraction of low level languages as each instruction directly relates to one or more multiple commands.