Learning objectives

Describe the purpose of an operating system, and outline how it manages memory, files, processes, input and output devices and security on behalf of the user and of applications

Distinguish system software, application software and utility software, and state the purpose of utilities such as disk formatters, defragmenters, backup software, virus checkers, disk repair and disk contents analysis software and file compression software

Compare a compiler with an interpreter on when translation happens, whether an executable file is produced, speed of execution and how errors are reported, state the role of an assembler, and explain how a language such as Java is compiled only as far as an intermediate code, which is then interpreted

(A Level) Describe the stages of compilation — lexical analysis, syntax analysis, code generation and optimisation — and state what the symbol table and the stream of tokens each contain

Describe the facilities of an integrated development environment, including prompts, auto-completion, dynamic syntax checks, prettyprint and expanding and collapsing code blocks while editing, breakpoints, single stepping and variable watches while debugging, and explain how each helps the programmer

(A Level) Explain what a virtual machine is, describe how a translator produces intermediate code that an interpreter then runs on any host machine, and evaluate the benefits and drawbacks of this approach

Explain what a developer gains from building on program libraries, dynamic link library (DLL) files among them, and the drawbacks of relying on them

Continue with a revision plan

These learning objectives are available to everyone. Sign in with an eligible plan to read the full note and worked examples.