GCSE Computing – Machine Code, Low and High level programming languages revision

It’s time to revise the following stuff for GCSE Computing:

Binary / Machine Code:

Zeroes and Ones:

  • The only language understood by computers is binary, also known as machine code
  • This is because computers are electronic devices that can only tell the difference between the on and off states of an electric circuit
  • The numbers 1 and 0 are used by humans to represent these on/off values
  • That’s why things written in binary look like this: 01010010010001010101011001001001010100110100010100100001

Machine Instructions:

  • Instructions for a computer to follow must therefore be written in machine code
  • This was done by early computer programmers
  • Each sort of computer is different so they all need different binary instructions to perform the same task – different computers have different machine code

Programming Languages:


  • To make it easier to program computers a programming language was invented
  • It was called ‘Assembly‘ and was made up of a small set of command words called mnemonics which programmers typed instead of binary
  • Examples of mnemonics are “MOV”, “ADD” and “PUSH”
  • Computers could not understand Assembly so it had to be converted to machine code by an ‘assembler‘ before it could be run
  • Assembly is known as a ‘Second Generation’ programming language (with machine code being the first generation)


  • Programming languages can be classified into low-level and high-level languages
  • Assembly is a low-level language
  • This should not be confused with first, second and third generation programming languages


  • Low-level languages are more similar to machine code than they are to languages spoken by humans
  • They are not very developed and just offer quicker ways to write binary
  • This means they give the programmer close control over the computer because their instructions are very specific
  • Unfortunately they are hard to learn
  • Since the machine code for each computer is different, programs translated to machine code on one computer will not work on a different one: Low level languages are not very ‘portable’


  • High level programming languages are more developed than low-level languages so are closer to human spoken language
  • Some examples of high level languages are: C#, Visual Basic, C, C++, JavaScript, Objective C, BASIC and Pascal (the fact that they all have the letter C in their name is a coincidence. Some do not.)
  • (Those examples are also all ‘third generation’ languages)
  • High-level programming languages are easier for humans to write, read and maintain
  • They support a wide range of data types
  • They allow the programmer to think about how to solve the problem and not how to communicate with the computer. This is called abstraction
  • They are portable. (Read on to find out why!)

Converting to Machine Code


  • Just like low-level languages, high-level languages must be converted to machine code before a computer can understand and run them
  • This is done using a ‘translator
  • Different translators convert the same high level code into machine code for different computers
  • High level code ready to be translated into machine code is called ‘source code’
  • There are two different types of translator: Compilers and Interpreters


  • Compilers convert (or ‘compile’) the source code to machine code all at once
  • This is then stored as an executable file which the computer can run (for example, something ending with the ‘.exe’ file extension)
  • Errors in the source code can be spotted as the program is compiling and reported to the programmer


  • Interpreters convert the code as it is running
  • They take a line of source code at a time and convert it to machine code (which the computer runs straight away)
  • This is repeated until the end of the program
  • No executable file is created
  • If the interpreter comes across an error in the source code the only things it can do is to report the error to the person trying to use the program (or it may just refuse to continue running)

Great job.


About Matt

I like writing, filmmaking, programming and gaming, and prefer creating media to consuming it. On the topic of consumption, I'm also a big fan of eating.
This entry was posted in GCSE Computing Revision and tagged , , , , , , , . Bookmark the permalink.

7 Responses to GCSE Computing – Machine Code, Low and High level programming languages revision

  1. 11srus says:

    Thank you for putting effort into this :D really helped

  2. Pingback: GCSE Computing Revision – Binary Image Representation | Matt's blog

  3. Pingback: GCSE Computing Revision – Data Sizes | Matt's blog

  4. Pingback: GCSE Computing Revision – Converting to and from Binary Numbers and Understanding Binary | Matt's blog

  5. Pingback: GCSE Computing Revision – Programming Setup | Matt's blog

  6. Pingback: GCSE Computing Revision – Types of Testing and Types of Test Data | Matt's blog

  7. Pingback: GCSE Computing Revision – What an Algorithm is, How to write it and How to use it to plan a program | Matt's blog

Enter comment:

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s