1.2.2 - Applications Generation Flashcards

1
Q

What is a Relational Database?

A

Allows the user to specify information about multiple tables, and the relationship between those tables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are Utilities? (List 2 Examples)

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is an Open Source software?

A

Software for which the original source code is made freely available, and may be redistributed and modified.
Example: Linux

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a Closed Source software?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is a Translator?

A

A program that converts high-level source code into low-level object code, which is then ready to be executed by a computer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is an Interpreter?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a Complier?

A

A translator that translates high-level code into machine code all at once

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is an Assembler?

A

A program that translates (assembles) a program written in assembly language into machine code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Complilation?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Lexical Analysis?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Syntax Analysis?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Code Generation?

A

The abstract syntax tree produced in the syntax analysis stage is used to produce
machine code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Code Optimisation?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Potential Dangers of Code Optimisation

A
  • Can significantly add to the overall time taken for compilation.
  • Excessive optimisation may alter the way in which the program behaves
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a Linker?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is a Loader?

A

The part of the OS that loads the executable program file into memory, ready to be run

17
Q

What are libraries? Give an example

A
  • Sections of code pre-written by other authors containing useful routines.
  • Examples - Encryption, Graphics, ‘Random’ in Python
18
Q

Advantages of using Libraries

A
  • Saves time because no need to rewrite code
  • Uses expertise of others to complete tasks that require specialist knowledge
  • Code has already been tested so the programmer doesn’t have to test it themselves
19
Q

Disadvantages of using Libraries

A
  • May significantly increase size of compiled file as library contains many routines that aren‘t being used.
  • Not written by the programmer so introduces uncertainty about how well it fits into existing code