Programming Languages and Translators
Aligned to the AQA 8525 specification
- Topic
- Computer systems
- Level
- Intermediate
- Reading time
- 9 min
- Published
- 9 June 2026
- Updated
- 1 July 2026
On this page
Key takeaways
- Low-level languages are close to the hardware and run fast but are processor-specific and hard to read, while high-level languages are readable, portable, and must be translated before execution.
- Machine code is binary that the CPU executes directly without translation, but it is specific to a processor family, so code for one CPU will not run on a different one.
- Assembly language uses human-readable mnemonics with a 1:1 correspondence to machine code, where each assembly instruction maps to exactly one machine code instruction.
- A compiler translates an entire program into a standalone machine code file before execution, while an interpreter translates and executes one statement at a time and produces no machine code file.
- An assembler translates assembly language into machine code; compilers and interpreters translate high-level languages, and an interpreter calls machine code routines rather than producing machine code itself.
How much of this have you taken in?
Quiz yourself on this section, free, no card needed.
Key terms
- Low-level language
- A language close to the hardware that runs fast but is processor-specific and hard for humans to read, such as machine code or assembly.
- High-level language
- A readable, portable language closer to human language that must be translated before execution, such as Python or Java.
- Machine code
- The lowest-level language, consisting of binary the CPU executes directly without translation.
- Assembly language
- A low-level language using human-readable mnemonics with a 1:1 correspondence to machine code.
- Mnemonic
- A short human-readable code, such as MOV or ADD, representing a single machine code instruction.
- 1:1 correspondence
- The relationship where each assembly instruction maps to exactly one machine code instruction.
- Compiler
- A translator that converts an entire high-level program into a standalone machine code file before execution.
- Interpreter
- A translator that translates and executes a high-level program one statement at a time, producing no machine code file.
- Assembler
- A translator that converts assembly language into machine code.
Frequently asked questions
A compiler translates an entire high-level program into a standalone machine code file before execution, so it runs fast and needs no source code at runtime. An interpreter translates and executes one statement at a time during execution, produces no machine code file, and needs the source code each run.
Machine code is binary that the CPU executes directly. Assembly language uses short human-readable mnemonics such as MOV, ADD, and JMP. They have a 1:1 correspondence, with each assembly instruction mapping to one machine code instruction, but they are not the same thing; an assembler translates between them.
Machine code is entirely specific to a processor or processor family, so code compiled for one CPU such as x86 cannot run on a different CPU such as ARM. High-level languages achieve portability because a compiler or interpreter handles the hardware-specific details, but the machine code itself is not portable.
Generate revision on any topic you study
Type any topic you're studying and Aicademy generates a complete lesson, quiz, and flashcard set, personalised to your level.
Lessons on anything
Structured, level-matched lessons on any topic you study
Practice quizzes
Find out what you actually know before the exam does
Flashcard sets
Lock in key concepts with instant revision cards
Ask Aica
Stuck on something? Get a clear explanation, any time
Boolean Logic: Gates and Truth Tables
The Fetch-Decode-Execute Cycle
Related lessons
8 min
Software Classification: System Software and Applications
GCSE Computer Science · AQA 8525
1 month ago
8 min
9 min