Software Flashcards
General purpose software
Software that can be used for a variety of tasks.
Includes office applications eg presentation software (creates presentations and posters/diagrams) and word processing software.
Likely to attract a lot of users and therefore can be sold at quite a low price.
Bespoke software
Software that is developed to meet the user’s specific requirements.
Developed for a specific task and/or user.
Unlikely that others would want to buy it therefore development costs and high.
Application software
Designed to perform tasks that a user wants to complete eg playing a game or sending an email.
Some may be pre-installed on a computer but often the user has to install the application software.
Examples: word processors, video games, communication software
Special purpose software
Software that can only be used for one particular task.
Eg scientific calculator software can only carry out calculations.
System software
Controls the hardware of a computer system eg operating systems.
OSs are loaded into RAM when the computer starts up and has access to the hard drive.
Provide a platform for application software to run on and a way for application software to interact with hardware.
Examples: translators, utility programs
Closed source software
Software for which the source code is not freely available.
Developed and provided to the user as a fully compiled, executable set of files.
Developers often provide support to users after purchase as users cannot make changes to the software.
User does not buy the software but a licence to use it.
Open source software
Software for which the source code is freely available to download.
Code can be inspected and modified by the user, so they can contribute to fixing errors and vulnerabilities in the code.
Usually free but the quality of the finished product can vary.
High level language
Used to write programs that are independent of the computer architecture they will run on.
Eg C++, Python
Easier for users to read and understand.
Must be translated before execution by a compiler or interpreter.
Low level language
Eg assembly language programs
Must be translated by assemblers.
Closer to machine code than high level so more difficult to read.
Compiler
Translates code into a form that can be executed but cannot be read by a human. Does not execute the code.
Most commercial applications are distributed as compiled code to protect the source code.
Stages: Lexical, syntax, semantic, code generation, optimisation
Errors are reported at the end of the compilation process and the program will need to be corrected then compiled again.
Once compiled, the executable file will not need to be translated again unless code is changed. Result is faster running time and does not need a translator to be installed to run the program.
Interpreter
Translate and execute each line of source code one by one.
When program is run, each line is syntax checked then converted into machine code. If a syntax error is found the program halts and it is reported. If a runtime error occurs the system crashes.
Errors are quick to identify and correct without having to translate the entire program every time.
Runs more slowly and the user must have an interpreter installed to run the program. Can be advantageous if the developer doesn’t know what platform will be used as translation is handled by the browser.
Assembler
Translate assembly code programs into executable code.
One-to-one relationship between assembly code and machine code so assembling is a relatively simple process.
Comments get removed and symbolic references are replaced with actual addresses.
Lexical analysis
The first stage of the compilation process.
Compiler removes white space and comments.
Code is tokenised and a symbol table is produced.
Identifiers are checked against a set of rules eg cannot start with a number or contain certain characters.
Reserved words such as print can only be used as keyword tokens.
Syntax analysis
Second stage of the compilation process.
Compiler checks that the tokens are in the correct order and that they follow the rules of the language.
Syntax rules differ between languages.
Abstract syntax tree
During the syntax analysis stage, an abstract syntax tree is created.
Maps the structure of the program, first dropping the brackets, semicolons etc that were used by the programmer.
If required tokens are missing from the tree or in the wrong place the compiler will report an error.
Every language produces a different AST depending on its syntax.