Levels of Programming Languages (Cambridge International IGCSE Computer Science)
What is a programming language?
Exam Hint Cambridge IGCSE 0478 expects you to explain the difference between low-level and high-level languages, and name advantages and disadvantages of each. This page is structured to mirror the format used in real exam questions.
-
A programming language acts as a bridge between what humans understand and what a computer understands
-
Early computers were complex and instructions would have to be in written in binary code, 0s and 1s
-
This process was slow, taking days to program simple tasks
-
Over time, new generations of programming languages have enabled people to become faster and more efficient at writing programs as they resemble human language
-
Generations of programming languages can be split in to two categories:
-
Low-level
- First generation
- Second generation
-
High-level
- Third generation
-
Low-Level Languages
Spec point —
4.2.1· "1 Explain what is meant by a high-level language and a low-level language, including the advantages and disadvantages of each"
Low-Level Languages
What is a low-level language?
- A low-level language is a programming language that directly translates to machine code understood by the processor
- Low-level languages allow direct control over hardware components such as memory and registers
- These languages are written for specific processors to ensure they embed the correct machine architecture
First generation
- Machine code is a first-generation language
- Instructions are directly executable by the processor
- Written in binary code
Second generation
- Assembly code is a second-generation language
- The code is written using mnemonics, abbreviated text commands such as LDA (Load), STA(Store)
- Using this language programmers can write human-readable programs that correspond almost exactly to machine code
- One assembly language instruction translates to one machine code instruction
- Needs to be translated into machine code for the computer to be able to execute it
| Advantages | Disadvantages |
|---|---|
| Complete control over the system components | Difficult to write and understand |
| Occupy less memory and execute faster | Machine dependent |
| Direct manipulation of hardware | More prone to errors |
| Knowledge of computer architecture is key to program effectively |
Exam Hint When describing low-level languages, don’t just say “they are faster” , you must say they allow direct control over hardware or memory, which leads to greater efficiency. Be specific to earn the mark.
High-Level Languages
Spec point —
4.2.1· "1 Explain what is meant by a high-level language and a low-level language, including the advantages and disadvantages of each"
High-Level Languages
What is a high-level language?
-
A high-level programming language uses English-like statements to allow users to program with easy to use code
-
High-level languages allow for clear **debugging **and once programs are created they are easier to maintain
-
High level languages were needed due to the development of processor speeds and the increase in memory capacity
-
One instruction translates into** many machine code instructions**
-
Needs to be translated into machine code for the computer to be able to execute it
-
Examples of high-level languages include:
- Python
- Java
- Basic
- C++
| Advantages | Disadvantages |
|---|---|
| Easier to read and write | The user is not able to directly manipulate the hardware |
| Easier to debug | Needs to be translated to machine code before running |
| Portable so can be used on any computer | The program may be less efficient |
| One line of code can perform multiple commands |
Exam Hint Students sometimes confuse machine code and assembly. Remember:
Machine code = binary (1st generation)*
Assembly = mnemonics (2nd generation, needs assembler)*
Was this revision note helpful?