High-level vs low-level languages
A high-level language (HLL) resembles natural English (e.g. Python, Java): it is easy to read/write/debug and machine-independent (portable). A low-level language (LLL) is close to the hardware: machine code (binary, run directly by the CPU) and assembly language (mnemonics such as LDA, ADD, STO). Low-level benefits: direct hardware manipulation + efficiency; downsides: hard to read/debug and machine-dependent.
Why translators exist; the three types
A CPU can only execute machine code (binary), so high-level or assembly source must be translated to machine code before it runs — hence translators. The three: a compiler translates a whole high-level program at once into a separate executable file; an interpreter translates and runs a high-level program one line at a time and makes no stand-alone executable; an assembler translates assembly (mnemonics) into machine code — the translator for a low-level language.
Compiler vs interpreter; the IDE
Compiler: translates the whole program at once into an executable file; on errors it reports all and will not run until recompiled. Interpreter: runs one line at a time, stopping at the first error; slower. Interpreter to develop, compiler for the finished program (faster to run). An IDE gathers write/test/debug tools in one app: code editor, translators, run-time environment, error diagnostics, auto-completion, auto-correction, prettyprint.
Drawn from real examiner reports.
Match the translator to its language
An assembler translates assembly language (mnemonics) into machine code — it does not translate a high-level language, and a compiler/interpreter does not translate assembly. A high-level language is translated into machine code (the binary the CPU runs), not "into assembly". Keep it straight: HLL → compiler/interpreter → machine code; assembly → assembler → machine code.
Compiler vs interpreter: the real contrast
A vague "a compiler/interpreter translates the code" scores nothing — it does not separate them. Contrast: a compiler translates the whole program at once into an executable, reporting all errors afterwards; an interpreter runs one line at a time, makes no executable, and stops at the first error. Compiler for the final program, interpreter while developing.
June 2023 (s23) examiner report, Paper 1: "Few candidates were able to accurately and technically describe the operation of a compiler. The most common mark point awarded was for stating an executable file is created... Some candidates described the benefits of a compiler, rather than the operation." Error reporting was also flagged as weak.
Do not swap high- and low-level benefits
Candidates assume "high-level" means "harder" and credit the wrong language with the wrong benefit. Lock it down: high-level → easy to read/write/debug and machine-independent (portable); low-level → direct hardware manipulation and tighter memory/efficiency control. The word "high-level" does not make it the hardware-control language — that is low-level.
June 2023 (s23) examiner report: "Candidates also often confuse the benefits of low-level and high-level languages." Examiners note this may stem from reading the word high-level as meaning more difficult.
Wrong reason: secure from hackers
Asked why a programmer would use a low-level/assembly language, weaker candidates write "more secure from hackers" — not a syllabus reason, not creditable. The headline benefit is direct access to and control of the hardware (registers, ports, memory), useful for device drivers and embedded systems, and it can use less memory. Give the hardware-control reason, not security.
June 2023 (s23) examiner report, Q7: reasons to use a low-level language were often given as "more secure from hackers" (not creditable). November 2022 (w22) Q7: the main accepted assembly benefit was to "directly access and manipulate the hardware."
Only three translators exist
Asked to name the translator for a language, candidates sometimes give something that is not a translator at all. There are exactly three: compiler, interpreter, assembler. Match to the language: high-level → compiler or interpreter; assembly → assembler. Do not offer "IDE", "editor" or a language name.
June 2023 (s23) examiner report, translator-naming item: "Some candidates were able to give the correct translator. Many candidates gave an answer that was not a type of translator."
Machine code vs assembly (both low-level)
Both are low-level, but not the same. Machine code is written in binary and is the only language the CPU executes directly. Assembly language uses mnemonics (LDA, ADD, STO) instead of binary and must be assembled into machine code first. Definition trap: assembly is "a low-level language that uses mnemonics" — not "a language made of binary" (that is machine code).
Operation, not advantage
"Describe the operation" scores on how it works, not why it is good. Compiler: translates the whole program at once into an executable, then reports all errors. Interpreter: translates and runs one line at a time, stopping at the first error. Give advantages only when asked.
Fix the language axis
For high-level vs low-level, fix the axis the question names: reading/writing (high easy, low hard), debugging (high easy), machine independence (high portable, low tied to one CPU), hardware control (low direct, high indirect). Answer only on the named axis.
An IDE is a workshop, not one tool
An IDE is the whole workshop, not one tool: a translator plus editor, run-time environment and helpers. Bank the functions — code editor, run-time environment, error diagnostics, auto-completion, prettyprint — and give two or three. Name a function, never a language.
This sub-topic has four parts: high-level vs low-level languages, the need for translators, the compiler vs interpreter vs assembler, and the functions of an IDE. Marks are won and lost on precise two-element definitions, especially compiler vs interpreter.
Full notes, flashcards, Q&A and the topic quiz for every premium subject.
Premium plans are US$8.99/month or US$49.99/year — first month free.
Studying with a parent's blessing? Show them this.