1.2.2 Applications Generation Flashcards

1
Q

What are the two types of software?

A

Applications and systems

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

What is an application?

A

A program that can be run on a computer, allowing the user to carry out specific tasks.

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

Give examples of applications software

A

Word processing, spreadsheets, web browsers.

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

Give examples of systems software.

A

Library programs, utility programs, operating system, drivers

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

What are utilities?

A

System software with a specific purpose, usually related to maintenance.
(EG: Optimising computer performance, backing up files)

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

Provide examples of utilities

A

Compression, Disk defragmentation, antivirus, automatic updating, backup

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

Disk defragmentation

A

Rearranges contents of the hard drive so they can be accessed faster, thus improving performance.

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

Define open source software

A
  • Can be used by anyone without a license
  • Distributed with the source code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Define closed source

A

Requires the user to hold an appropriate license to use it. Source code cannot be accessed as the company owns the copyright license.

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

Pros: Open source

A

Pros
- Can be modified and improved by anyone
- Technical support from online community
- Can be modified and sold on

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

Pros: Closed Source

A

Pros
- Thorough, regular and well tested updates.
- Company owning software provides expert support and user manuals.
- High levels of security as developed professionally.

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

Cons: Open source

A

Cons
- Support available online may be insufficient or incorrect. No user manuals.
- Lower security, as it may have not been developed in a controlled environment.

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

Cons: Closed source

A

Cons
- License restricts how many people can use the software at once.
- Users cannot modify and improve software themselves

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

What three things must user consider when deciding between open source or closed source?

A
  • Relevance to task
  • Costs (implementation, maintenance, license)
  • Functionality (ease of use, features available)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a translator?

A

A program that converts high level source code into low level object code.

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

What are the three types of translator?

A

Compiler, Interpreter, Assembler

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

What does a Compiler do?

A

Compilers translate high level code into machine code all at once, after carrying out a number of checks and reporting back any errors.

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

What is compiled code specific to?

A

A particular processor type and operating system.

19
Q

Compiler Disadvantages

A
  • The initial compilation process is longer than using an interpreter or an assembler
  • If changes need to be made, the whole program must be recompiled.
  • Once code has been compiled, it can only be executed on certain devices.
20
Q

Compiler Advantages

A
  • Once code has been compiled, it can be run without a translator being present
21
Q

Interpreter

A

Interpreters translate and execute code line-by-line. They stop and produce an error if a line contains an error.

22
Q

Interpreter Disadvantages

A
  • Code must be translated each time it is executed.
  • Interpreted code requires an interpreter in order to run on different devices.
23
Q

Interpreter Advantages

A
  • Useful for testing sections of code and pinpointing errors
  • Interpreted code is more portable. As long as the right interpreter is available, code can be executed on a range of platforms
24
Q

What do assemblers do?

A

Translate assembly code into machine code. Code is translated on almost a one-to-one basis.

25
Q

What are the four stages of compilation?

A

Lexical analysis, Syntax analysis, code generation and optimisation.

26
Q

Syntax Analysis

A

1) Tokens are checked against the grammar and rules of the programming language. Any tokens that break the rules are flagged up as syntax errors, and added to a list of errors.
2) An abstract syntax tree is produced, which represents the source code in the form of a tree.
3) Semantic analysis is carried out, where logic mistakes within the program are detected.

27
Q

What are examples of syntax errors?

A

Incomplete set of brackets, undeclared variable type

28
Q

What are examples of semantic errors?

A

Multiple declaration, undeclared identifiers.

29
Q

Lexical Analysis

A

1) Whitespace and comments are removed from code.
2) The remaining code is analysed for keywords and names of variables and constants. These are replaced with tokens.
3) Information about the token associated with each keyword or identifier is stored in a symbol table.

30
Q

Code Generation

A

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

31
Q

Optimisation

A

1) Redundant parts of code are detected and removed.
2) Repeated sections of code may be grouped and replaced with a more efficient piece of code that produces the same result.

32
Q

What is the danger involved with the optimisation stage?

A

Excessive optimisation may alter the way in which the program behaves.

33
Q

What is a linker?

A

A piece of software which links external modules and libraries included within the code.

34
Q

What are the two types of linker?

A

Static and Dynamic

35
Q

Static Linker

A

Modules and libraries are added directly into the main file, increasing the file size.

36
Q

Dynamic Linker

A

Addresses of modules and libraries are included in the file where they are referenced. When the program runs, the loader retrieves the program at the specified address so it can be executed.

37
Q

Advantage of dynamic linker

A
  • Files remain small
  • External updates feed through to the main file, meaning theres no need to rewrite the code.
38
Q

What are loaders provided by? What do they do?

A

Programs provided by the operating system.
When a file is executed, it retrieves the library or subroutine from the given memory location.

39
Q

What are libraries?

A

Pre-compiled programs which can be incorporated within other programs using either static or dynamic linking.

40
Q

What are advantages of libraries?

A
  • They are ready to use and error free, which saves development time.
  • They can be reused within multiple programs.
41
Q

What do libraries often provide? Why is this useful?

A

A specialised range of functions.
These functions would require a lot of time and effort to develop, saving programmers from having to ‘reinvent the wheel’.

42
Q

What benefit does the optimisation stage provide?

A

Code is faster to execute.

43
Q

Benefit of using static linker

A

It allows you to use a specific version of a library, as updates to modules and libraries externally dont affect the program.