1.2.2 - Applications Generation Flashcards
What is a Relational Database?
Allows the user to specify information about multiple tables, and the relationship between those tables.
What are Utilities? (List 2 Examples)
- A piece of software that performs a specific task and is usually related to the upkeep of the system
- Examples: Virus Checker, Disk Defragmenter, Compression, Automatic Update/Backup Software
What is an Open Source software?
Software for which the original source code is made freely available, and may be redistributed and modified.
Example: Linux
What is a Closed Source software?
Often referred to as Proprietary is a type of computer program for which the software code is not shared with the public for anyone to look at, or make changes to. Closed Source/Proprietary file types are often only able to be opened if you own a version of the software they were originally made in.
What is a Translator?
A program that converts high-level source code into low-level object code, which is then ready to be executed by a computer
What is an Interpreter?
A translator that translates code line by line during runtime
- Stops at the first error
- Needs to re-translate next time program is run
- Interpreted programs have the source code visible
What is a Complier?
A translator that translates high-level code into machine code all at once
What is an Assembler?
A program that translates (assembles) a program written in assembly language into machine code.
What is Complilation?
The translation process that produces an equivalent program in a low-level language. Complication involved analysing the language structure of the source program, determining if it is valid, and proceeding suitable machine code.
What is Lexical Analysis?
- Whitespace and comments are removed from the code.
- The remaining code is analysed for keywords and names of variables and constants.
- These are replaced with tokens and information about the token associated with each keyword or identifier is stored in a symbol table
What is Syntax Analysis?
- Receives and accepts the output from lexical analysis.
- Tokens are analysed against the grammar and rules of the programming language.
- Any tokens that break the rules are flagged up as syntax errors and added to an error list.
- An abstract syntax tree is built and error diagnostics are given.
- Further detail is added to the symbol table e.g. data type, scope and address.
- If there are no errors, it passes the code to code generation.
What is Code Generation?
The abstract syntax tree produced in the syntax analysis stage is used to produce
machine code.
What is Code Optimisation?
The stage of compilation that aims to make the executable program code is more efficient and use fewer resources/less memory by removing insignificant, redundant parts of code and grouping/replacing repeated sections of code with more efficient code that gives the same result.
Potential Dangers of Code Optimisation
- Can significantly add to the overall time taken for compilation.
- Excessive optimisation may alter the way in which the program behaves
What is a Linker?
A software tool links the main program to any external subroutines/libraries
- Static Linking - Includes external modules/libraries directly in the final executable code; can lead to excessively large executable files
- Dynamic Linking - Addresses of modules and libraries are included in the file where they are referenced.