Programming Languages and Translators
Aligned to the AQA 7517 specification
- Level
- Foundational
- Reading time
- 7 min
- Published
- 13 June 2026
- Updated
- 1 July 2026
On this page
Key takeaways
- Machine code is binary instructions the processor executes directly with no translation, and it is completely hardware-specific to one processor family.
- Assembly language uses human-readable mnemonics with a one-to-one mapping to machine code instructions, and an assembler converts it to machine code.
- A compiler translates an entire high-level program to machine code or bytecode before execution, so it runs faster and needs no source code present at runtime.
- An interpreter translates and executes source code line by line at runtime, producing no output file and requiring the source code on the target machine.
- Bytecode is an intermediate, hardware-independent representation that cannot run directly on the processor and is executed by a virtual machine such as the JVM.
Something not quite clicking?
Ask Aica to explain any part of this differently. Free, takes 30 seconds.
Key terms
- Machine code
- Binary instructions, each an opcode plus operand(s), that the processor executes directly with no translation and that are hardware-specific.
- Assembly language
- A low-level language using human-readable mnemonics that map one-to-one to machine code instructions and are tied to a particular instruction set.
- High-level language
- A machine-independent language close to natural language and mathematical notation, such as Python, Java or C++.
- Source code
- The human-readable program written by a developer before translation into object code.
- Object code
- The executable machine code produced by translating source code, understood by the processor but not by humans.
- Translator
- A program that translates source code into object code; assemblers, compilers and interpreters are translators.
- Assembler
- A translator that converts assembly language source code into machine code, one mnemonic becoming exactly one machine instruction.
- Compiler
- A translator that converts an entire high-level program into machine code or bytecode before execution, reporting errors as a complete list.
- Interpreter
- A translator that translates and executes source code line by line at runtime, reporting errors immediately at the failing line.
- Bytecode
- A compact, hardware-independent intermediate representation executed by a virtual machine rather than directly by the processor.
- Virtual machine (VM)
- Software such as the JVM that executes bytecode at runtime, interpreting or JIT-compiling it on any platform.
Frequently asked questions
A compiler translates the whole program to machine code or bytecode once before execution, runs faster, and needs no source at runtime. An interpreter translates and executes line by line at runtime, is slower, produces no output file, but is easier to debug as errors are reported immediately at the failing line.
No. Bytecode is an intermediate form between source code and machine code that cannot be executed directly by the processor. It requires a virtual machine such as the JVM or CLR to run it, which interprets or JIT-compiles it on any platform.
No. Assembly language uses human-readable mnemonics like LDA and ADD, while machine code is binary. They have a one-to-one correspondence, but they are distinct, and an assembler is required to convert assembly into machine code.
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
Software, Operating Systems and System Software
Logic Gates and Circuits
Related lessons
5 min
6 min
5 min