Study resource
Classification of programming languages revision notes
Study Classification of programming languages with curriculum-aligned Revision Notes resources, practice links, and exam-focused support.
At a glance
revision notes
Resource type
Topic
Classification of programming languages
Revision notes
Classification of Programming Languages
The main classification
Programming languages have developed from forms closely connected to the processor towards forms that are more convenient for people to write and understand. The specification classifies machine code and assembly language as low-level languages. Imperative high-level languages are included in the high-level classification.
Machine-code language
Machine code is the low-level language directly represented as instructions that the processor can execute. Its instructions are expressed using binary patterns. Because the instructions are closely tied to the processor, machine-code programming provides very direct control over the operations performed. However, binary instructions are difficult for a programmer to read, write, check and modify. Machine code is also closely associated with a particular processor instruction set, so a program written for one processor may not be suitable for another.
Assembly language
Assembly language is also low level, but it represents machine-code instructions using symbolic operation names, often called mnemonics, rather than only binary patterns. An assembler translates assembly language into machine code. Assembly is therefore generally easier for a programmer to read and write than machine code, while remaining closely connected to the processor’s instructions. It still requires detailed knowledge of the processor and is less convenient to develop and maintain than a high-level language.
Imperative high-level language
An imperative high-level language describes a solution as a sequence of instructions that change the state of the program. It is high level because its statements are further removed from individual machine-code instructions than assembly language is. A compiler or interpreter is needed to translate or execute a high-level program so that the processor can carry out the required operations.
Comparison
Low-level programming can offer close control over the processor and can be appropriate when the exact machine operations matter. Its disadvantages include difficult programming, difficult maintenance and dependence on a processor’s instruction set. High-level programming is generally easier to understand, write and modify, but its statements do not provide the same direct representation of individual machine instructions.
Common errors
- Do not describe assembly language as machine code: both are low level, but assembly uses symbolic representations of instructions.
- Do not classify an imperative high-level language as low level merely because it contains instructions.
- Do not claim that low-level code is automatically faster in every situation; the key comparison here is its close relationship with the processor and the resulting advantages and disadvantages.
- Do not confuse the classification with the translation process: machine code is already in the processor’s instruction form, whereas assembly and high-level programs require translation or interpretation before execution.
Related topics
