1.2.2 Application Generation Flashcards

1
Q

Applications Software and examples

A

Applications Software : Used by end user to perform specific task for user.
- requires systems software to run

e.g.
- DBMS Software (For storing, retrieving, manipulating and managing data.)
- Word Processor (For creating, editing, formatting and printing text documents.)
- Email Software (Communicate with each other / customers via Email)
- Web Browser (For browsing the web and accessing information online.)
- Spreadsheets (For organising, calculating and analysing numerical data.)
- Integrated Development Environment (IDE) (developing, testing and debugging software code)

e.g. Store data on stock with DBMS and make letters for customers with Word Processor and communicate with other staff with Email and buy stock online with web browser and do accounts and salaries with spreadsheet software.

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

Systems Software

A

Systems Software : Low level software responsible for running computer system by interacting with hardware.
- Allows applications software to run
- User doesn’t directly interact with it

e.g.
- Operating system and utility software

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

Utility Software + Examples (5)

A

Utility Software : Specialist software that often comes with OS.
Provides additional functionality and helps maintain the computer.
- Piece of systems software with single specific purpose and supports operating system.

e.g.
- Encryption … scrambles meaning of data files with key incase intercepted.
- Disk Defragmentation … organises file segments on secondary storage so faster to access by storing contiguously.
- Compression … reduces size of files so faster to transmit and store
- Backup … makes regular copies of files to recover incase lost.
- Antivirus … detects and removes threats.

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

Open Source and Advantages (4) and Disadvantages (2)

A

Open Source : Can be used by anyone without a licence and source code can be seen and redistributed.

Advantages:
- Can be modified to tailor to specific needs
- Can be modified and sold
- Can debug yourself
- Cheaper
- Vast knowledge in communities

Disadvantages:
- Lower security as developed in uncontrolled environment so may contain bugs
- Support may be insufficient or incorrect
- if software is very specific open source solution may not be available.

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

Closed Source and Advantages (3) and Disadvantages (3)

A

Closed Source : Requires licence to use and distributed without source code as copyrighted (often sends compiled executable)

Advantages:
- High levels of security as developed professionally - more scrutiny
- Regular and well-tested updates
- Expert support and user manuals provided by company

Disadvantages:
- Costs money for licence
- Cannot modify and improve themselves - developer has to make new features
- Cannot fix bugs themselves

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

Translator and Assembler

A

Translators : Convert source code into machine (low level object) code that can be executed by computer

Assembler : Converts processor architecture specific assembly code (Low Level) into machine code.
- Translates on 1:1 basis, one line of assembly = one line of machine code

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

Lexical analysis

A

Lexical analysis : First stage of compilation
- Whitespace and comments removed
- info on Variables and constants added to symbol table
- Key words / Statements are replaced by tokens, info on tokens stored in symbol table
- Code prepared and outputted for next stage of compilation

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

Syntax analysis

A

Syntax analysis : Second stage of compilation
- Accepts tokens passed from previous stage
- Tokens checked against rules of programming language
- Tokens that break are added to errors that is stored as list
- Errors generated and error diagnostics given
- Detail added to symbol table
- Abstract syntax tree produced
- If no syntax rules broken then passes onto next stage

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

Code Generation

A

Code Generation : Third stage of compilation
- Abstract syntax tree used to produce machine code

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

Optimisation

A

Optimisation : Fourth stage of compilation
- Ensures code runs quicker / uses less less memory (redundant parts and repeated sections removed)
- Searches through code for areas to make more efficient (takes time)
- Redundant code detected and removed while Repeated sections grouped and replaced with more efficient code

  • Code likely inefficient due to unnecessary instructions
  • Excessive optimisation - alterations in program behaviour and time consuming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Linkers

A

Software used to link the main code to libraries to make final executable after compilation.

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

Loaders

A

Loader retrieves libraries at address into memory to be executed by program in dynamically linked libraries.

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

Libraries

A

Libraries : Are pre-compiled programs that are already written that contain useful subroutines.

Advantages:
- Saves time as prewritten - no need to rewrite code
- Pre - tested so likely to work and debugging easier and faster with less errors
- Draws on expertise of other programmers - complete complex tasks

Disadvantages :
- Increases file size but library contains many routines that will not be used.
- Not written by programmer - programmer needs to familiarise themselves with it and relying on third party that may not maintain library.

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

Types of Linkers

A

Static : Modules and libraries added directly to executable file.
- This increases file size.
- A specific version is used so updates to modules will not affect programs.

Dynamic : Address of Modules and Libraries added to executable files.
- Loader retrieves at address into memory to be executed.
- File size remains small
- Updates feed through without need to recompile or rewrite so more flexible

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

Compiler and Interpreter

A

Compiler : Translates Entire source code into machine code once, creating executable file (processor specific)
- Reports all errors at the end so worse debugging
- Faster execution time but longer initial compilation time
- Don’t need source code to execute once compiled so useful for closed source software.

Interpreter : Translates source code line by line
- Faster to start execution and easier to debug as reports errors as it finds them.
- Slower execution time as need to translate each time to run and require interpreter and source code to execute.
- Can run off of many architectures as translate from high level code each time

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