Describe and give examples of application software
Performs generic tasks for the user
Examples:
- Database (DBMS)
- Word processor
- Spreadsheet
- Graphics editor
- Desktop Publisher (DTP)
- Presentation Software
- Computer Aided Design (CAD)
Which category of software would be used to perform each of the following tasks?
Describe and give examples of utility software
A piece of system software, with one specific purpose, that is used for the maintenance of the system
Examples:
- Disk Defragmenter - puts fragmented files in consecutive storage locations
- Compression - reduces the amount of storage space files take up
- Anti-Virus/Malware - protects the computer against threats
- Backup - copies data to another storage device
- Encryption - scrambles data so it cannot be understood
Describe open-source software
Source code is freely available for others to amend / recompile
Describe closed-source software (proprietary)
The source code is not made available
Describe and give examples of software libraries
Pre-written blocks of code that contain useful routines that can be imported into a program.
What are the benefits of software libraries?
What are the negatives of using software libraries?
Describe machine code
Describe and give examples of high-level languages
Examples: C# and C++
Describe and give examples of low-level languages
Examples: Assembly and Machine Code
What is a translator?
Software that converts code from high-level, or assembly, to machine code
What are the 3 types of translators?
Describe an interpreter and give an example of a language that would use one.
Example: JavaScript
Describe a compiler and give an example of a language that would use one.
Example: C#
Describe an assembler and give an example of a language that would use one.
Example: Assembly Language
State the stages of compilation
Describe the lexical analysis stage
Describe the syntax analysis stage
Describe the code generation stage
Describe the purpose of code optimisation along with its pros and cons
The code from the prior stages may have been inefficient (instructions used that can be replaced by simpler ones.)
(+) Ensures the code runs quicker and uses less memory.
(-) Can have unexpected consequences if the code is optimised incorrectly
Describe the purpose and types of linker
Used at the end of compilation to combine the object code with the library code to make the single executable file. (Links the main program to libraries)
STATIC - Include full library in the final executable code
DYNAMIC - Points to the external libraries (adds a shortcut to it)
Describe the purpose of a loader