Programming languages

Algorithms are designed to solve problems. Programming languages are used to implement algorithms. They create the programs (software) that communicate instructions to a computer.

There are many different types of programming languages. But they all have the ability to:

  • input data from a device such as a keyboard
  • output data to a device such as a screen
  • process calculations like addition and subtraction
  • process decisions based on certain conditions being met
  • process repetition for a certain number of times, or while a condition is met, or until a condition is met
curriculum-key-fact
The phrase Turing complete is used to determine if a language really is a programming language. In order for a language to be Turing complete, it must be capable of simulating any other programming language.

Languages are defined as human-readable or machine-readable.

Human-readable instructions are encoded in a language that humans can use and understand, while machine-readable instructions are in a language that computers understand, and are in binary code.

Languages are also described as high level or low level. Low-level languages, such as assembly language, more closely reflect the mechanical workings of the CPU.

Diagram illustrating how high level language is changed into computer language

High-level languages include Java, JavaScript, C++, Ruby, BASIC or Python, while low-level languages include C, assembly language, and machine code.

A computer's CPU only understands (executes) series of binary numbers - so all programming languages are converted into binary code. Low-level instructions can be processed more speedily than high-level languages, but they are more difficult for people to read and write.

For major web applications and powerful games, developers need to know how to code in low-level languages in order to maximise the speed and efficiency of a program. Modern games are typically programmed using a variety of languages.

Google's Diana Gorea and Facebook's Jackson Gabbard explain why it's important to learn a few different programming languages