Levels of Programming Languages (OCR GCSE Computer Science)

Revision Note

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

  • Since the invention of the computer, people have needed to learn how to communicate with them using programming languages

  • 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

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

High-Level Languages

What is a high-level programming 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

 

Last updated:

You've read 0 of your 5 free revision notes this week

Sign up now. It’s free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.