What is application software
Software that allows a user to perform a task or produce something
Examples of application software
What is a utility software
Small programs designed to help with the maintenance of a system.
Examples of utility software
What is source code
The program code written by the programmer, usually in high-level language
What is closed source software
Software only distributed as machine code
What is open source software
Software where the source code is made freely available and grants users the right to examine, modify and share it
ADV of open source
ADV of closed source
What is machine code
Instructions and data stored in binary, directly readable by the CPU
What is assembly code
A low-level language that uses single words or mnemonics to represent instructions
What is a assembler
A program that converts assembly code into machine code
What are low-level languages
These are languages closely tied to the architecture of the CPU. They use the CPU’s instruction set
What are high-level languages
These are designed to be easily read by humans. They tend to use a combination of English keywords and mathematical notation.
What is a compiler
A program that converts the entire high-level source code into an executable machine code file that is then executed
What is a interpreter
A program that reads and executes high-level source code line-by-line
What are the stages of compilation
What happens during lexical analysis
Identifies the parts that make up the program:
- comments and whitespace are removed
- the remaining code is turned into a series of tokens each representing a small discrete part of the program
- a symbol table is created to keep track of the variables and subroutines
What happens during code generation
The abstract code tree is converted to object code
What happens during syntax analysis
Checks the structure of a language:
- an abstract syntax tree is built from the tokens produced
- if any tokens break the rules of the language, syntax errors are created
What happens during code optimisation
Tweaks the code so it will run as efficiently as possible
What is object code
When code is compiled but yet to be run through a linker
What are libraries
Already written code to perform common complex tasks and packaged as libraries
ADV of libraries