1.2.2 Applications Generation Flashcards

(a) The nature of applications, justifying suitable applications for a specific purpose. (b) Utilities. (c) Open source vs closed source. (d) Translators:Interpreters, compilers and assemblers. (e) Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation). (f) Linkers and loaders and use of libraries.

1
Q

What is system software?

A

Software neede to run the computers application and hardware programs.

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

What is a utility program

A

A utility performs a specific task related to the upkeep of the system, examples include a firewall or a disk defragmenter.

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

How does a disk defragmenter work?

A

Files that have been split up and stored all over a magnetic disk are recombined into sequential blocks in order to speed up file reading.

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

What is open source software?

A

Software licenced for use but free and distributed with the source code with the ability to amend.

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

What is closed source software?

A

Also known as proprietary software, the software is not free and there are restrictions on its usage.

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

What are the benefits of software being open source?

A

Free of cost and the ability to tailor the program to specific needs.

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

What are the benefits of software being closed source?

A

Regular updates and technical support lines are often available.

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

What is assembly code?

A

Low-level language almost equivalent to machine code.

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

What must happen before assembly code is executed?

A

It must be translated into the equivalent machine code or an intermediate code (bytecode) by the assembler.

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

What is the input to an assembler called?

A

Source code.

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

What is the output of an assembler called?

A

Object code.

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

What is a compiler?

A

A program that translates high-level language into machine code.

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

How does a compiler work?

A

The source code is scanned several times each time performing checks and building up tables of information needed to produce the object code.

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

Why might different compilers be needed for different machines?

A

Machine code instructions a processor can execute is completely dependant on hardware as the instruction sets will be different in different processors, therefore object code is hardware specific so different compilers will be needed dependant on processor architecture.

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

What is an interpreter?

A

A programming language translator that looks at the source code line by line checking for syntax errors.

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

What is the purpose of an intermediate code?

A

Intermediate code such as byte code allows for platform independence since the bytecode can be run by a virtual machine, for example, Java Virtual Machine.

17
Q

What are the advantages of using a compiler over an interpreter?

A

Object code from a compiler executes faster than interpreted code and object code produced by a compiler can be run without the compiler present.

18
Q

What are the advantages an interpreter has an over a compiler?

A

Platform independence and useful for program development.

19
Q

What is a disadvantage of the interpreter?

A

An interpreted program might run slower than a compiled one since a statement has to be converted into machine code every time its encountered so if a loop has a single statement repeated 10 times, rather than convert it into machine code once its interpreted 10 times.

20
Q

What are the three stages of compilation?

A

Lexical analysis, syntax analysis and code generation and optimisation.

21
Q

What happens during lexical analysis?

A

White space is removed
All comments are removed
Simple error checking (Illegal identifiers and illegal values)
All keywords (variable names) are replaced by tokens.

22
Q

What happens during syntax analysis?

A

The code is tested to see if it forms a valid sentence in the language, it does this by expressing the language as a set of rules.
Parsing systematically applies the rules of the language to each statement to determine if it’s valid or not.
The semantics of the program will also be checked to make sure statements make sense.

23
Q

What happens during code generation?

A

Most high-level language statements are translated into machine code statements.

24
Q

What happens during code optimisation?

A

In order to reduce the programs execution time, redundant instructions are removed as well as other things to achieve the same net effect as the original program but by different means.

25
Q

What are the disadvantages of code optimisation?

A

Increases compilation time and might produce unexpected results.

26
Q

What does a linker do?

A

a linker can incorporate the code from the library with the main program into a single executable file.

27
Q

What does a loader do?

A

A loader is a small program held in ROM when the computer is turned on the loader sends instructions to load the OS by copying it from storage into RAM.

28
Q

What are the advantages of using a library?

A

Saves time and money

Pre-tested functions (so likely to work.)

29
Q

What is the advantage of using assembly code?

A

Direct control of hardware and the ability to write the exact instructions needed for a task.

30
Q

What is the advantage of high-level languages?

A

High-level languages are much easier to follow andd high-level code can be recompiled to meet different architectures meaning it’s not platform dependent.