4. Programming Languages

To create software requires a method of instructing the computer. 

Programming languages provide a more human way of instructing computers

There are a large number of programming languages available for use by programmers. Each has their strengths and weaknesses. 

Professional software developers require knowledge and expertise in the use of a range of programming languages. In this way they are able to select and use a language suited to the current project under development.

In this section we examine the different generations of programming languages, from machine language, then assembler, higher-level languages and finally declarative languages. 

We then examine the current trend towards the use of event driven languages compared to the more traditional sequential languages. Finally the process of translating higher-level languages is discussed.


Programming languages have traditionally been grouped into levels and generations. 

  • Each subsequent generation being closely related to hardware developments occurring at the time. 
  • Low-level languages include the first generation machine languages and the second-generation assembly languages. 
  • High-level languages are termed third generation. 
  • Declarative languages are included as part of the fourth and subsequent generations.

First and second generation languages are known as low-level languages as their instructions relate directly to the hardwired instruction set of the CPU. These languages are difficult for humans to understand but easy for machines to understand. Different CPUs require different low-level languages. As a consequence code written in a low-level language cannot be used on computers using a different CPU. Low-level languages are said to be machine dependent, they can only be used on a machine with the same CPU instruction set.

Third and subsequent generations of languages are said to be machine independent.
These languages are translated into machine instructions. By using different translators the same code can be used by a variety of CPU designs. Higher-level languages are more like English making them easier for humans to use and understand. They include commands to simplify common tasks. These built-in commands greatly reduce the size and complexity of the code. However they also limit the programmer, as they can only use the commands included in the language’s syntax.

Machine Code and High level Languages Using Interpreters and Compilers





Student Activity
Your task it to choose a topic from the list below and prepare a short report on what it is about – no videos needed.

1. Machine Language

2. Assembler Languages

3. High level languages (3rd Generation)

4. Declarative languages (4th Generation)

5. Event Driven Languages (Object Oriented)

6. Compilation

7. Interpretation

8. Natural languages

9. The future of language

10. Fuzzy Logic

11. * Libraries of Code


The reading below is a useful starting point for your task. Remember it only need go for a couple of minutes - however long you think you need to get across the main points of the topic.

https://drive.google.com/open?id=0BwzvXeA1LcQucktpVk5XOENfZGM