What is the difference between a high-level and a low-level programming language?
medium
What is a key characteristic of object-oriented programming languages that distinguishes them from procedural languages?
easy
Explain one advantage and one disadvantage of using a high-level language compared to a low-level language.
medium
What is a domain-specific language (DSL) and give two examples?
medium
Which of the following is an example of a high-level programming language?
easy
Explain why high-level languages are described as "portable".
medium
Which statement best describes a low-level programming language?
easy
A programmer writes "x = a + b" in Python to add two numbers. Explain how this single line of high-level code relates to the work the CPU must actually carry out.
medium
Which of the following is true of high-level languages?
easy
Explain why high-level languages are generally considered easier for beginners to learn than low-level languages.
easy
What is machine code?
easy
What does an assembler do?
easy
Which of the following is an example of an assembly language instruction?
easy
State two characteristics of machine code.
easy
Why is assembly language described as being specific to a particular processor?
medium
Explain the relationship between an assembly language instruction and a machine code instruction.
medium
Which of the following best describes why machine code is difficult for humans to read?
easy
Explain why writing a large, complex program directly in assembly language would be impractical.
medium
In assembly language, the mnemonic "ADD" is typically used to represent which operation?
easy
Explain why a program written in machine code for one type of processor will not run on a processor with a different architecture.
medium
What does a compiler do?
easy
What does an interpreter do?
easy
State two advantages of using an interpreter during software development compared to compiling the full programme each time.
medium
A student claims that a compiler and an interpreter do the same job. Evaluate this claim, identifying one similarity and two differences.
hard
At what point does a compiler report syntax errors in a program?
easy
Explain why a compiled program typically runs faster than an interpreted program.
medium
Which translator produces a standalone executable file that can be run without the original source code or translator being present?
medium
Explain why an interpreter is often preferred during the development and testing stages of writing a program.
medium
A software company is distributing a finished commercial application to customers, who should not be able to view or edit the source code. Which type of translator is most appropriate, and why?
medium
Explain what is meant by a "Just-In-Time" (JIT) compiler and how it combines features of compilation and interpretation.
hard
State FOUR features of an IDE that help programmers.
easy
What is the purpose of a debugger?
easy
State three features of an Integrated Development Environment (IDE) that assist a programmer.
easy
What is the purpose of syntax highlighting in an IDE's code editor?
easy
What is the "run environment" feature of an IDE?
easy
What does the "auto-complete" feature of an IDE editor do?
easy
Explain what a "breakpoint" is and how it is used with a debugger.
medium
Which IDE feature is most useful for identifying a syntax error in your code before you try to run the program?
easy
Explain the benefit of a "variable watch" window when debugging a program.
medium
Which of the following is generally NOT considered a core feature of an IDE?
medium
Why might a programmer choose to write a device driver in assembly language rather than a high-level language?
medium
Explain why a low-level language might be preferred when programming an embedded system with very limited memory (e.g. a small microcontroller).
medium
A real-time control system (e.g. for an aircraft) must respond to sensor input within a guaranteed, very short time. Why might assembly language be preferred for parts of this system?
hard
Explain why low-level languages are often used when a program needs to directly access specific memory addresses or hardware registers.
medium
In game development, which part of a game is most likely to be written in (or close to) a low-level language for performance reasons?
medium
Explain why a programmer developing software for brand-new hardware, for which no high-level language compiler yet exists, might have to use a low-level language.
hard
A company maintains a 30-year-old system written entirely in assembly language, which is still in use. Why might it sometimes still be necessary to work directly in assembly language when maintaining this system?
medium
Describe the main trade-off a programmer must consider when deciding whether to use a low-level language instead of a high-level language for a project.
medium
Why might parts of an operating system kernel be written in a low-level language?
hard
Explain why low-level languages allow more precise control over a computer's memory and registers than high-level languages.
medium
Explain what bytecode is and why it is used by languages such as Java.
medium
What is a transpiler and give one example of its use?
hard
Put the following stages of compilation into the correct order: code generation, lexical analysis, syntax analysis.
medium
Explain what happens during the "lexical analysis" stage of compilation.
medium
What is the purpose of "syntax analysis" (parsing) during compilation?
medium
Describe what happens during the "code generation" stage of compilation.
medium
What is the purpose of the "linking" stage that often follows compilation?
hard
Explain why a program that calls a function from a standard library (e.g. a maths library) requires a linking stage before it can run as a standalone executable.
hard
What is an "object file" produced during compilation?
hard
Explain what is meant by "optimisation" during the compilation process.