1.2.2 Flashcards

1
Q

Describe and give examples of applications software

A

Performs generic tasks for the user.

Examples:
- Database (DBMS)
- Word processor
- Spreadsheet
- Graphics editor
- Desktop Publisher (DTP)

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

Describe and give examples of utility software

A

A program with one specific purpose

A piece of system software used for the maintenance of the system

Examples:
- Disk Defragmenter
- Compression Utility
- Anti-Virus/Malware
- Device driver
- Firewall

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

Describe open-source software

A

Source code is freely available for others to amend / recompile

Can be built on to tailor the program to specific needs without starting from scratch

Code open for bugs to be spotted and fixed.

Has the benefit of a community potentially improving the system

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

Describe closed-source software (propriety)

A

The source code is not made available

Distributed in binary form

There is no permission to amend the program code, so cannot be ‘tweaked’

Users are sold a license to use it (with conditions).

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

Describe and give examples of software libraries

A

Pre-written blocks of code that contain useful routines that can be imported into a program.

Examples: encryption and graphic routines

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

What are the benefits of libraries?

A

Relatively error-free as has already been tested by the author

Already written so are ready to use which saves time/money

Used multiple times for common tasks which reduces repeated code

The programmer can use code beyond their expertise

Written by an expert so should be efficient

Different source languages can be used to increase features

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

What are the negatives of using software libraries?

A

May significantly increase the size of the compiled file as the library contains many routines that aren’t being used.

Not written by the programmer so need to spend time familiarising themselves with it.

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

Describe machine code

A

The output of a translator

Uses binary notation (0101010101000011)

Dependent on architecture

Harder to program

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

Describe high-level languages

A

Not architecture specific

Can be recompiled for different architectures.

Close to English

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

Describe assembly language

A

Uses mnemonics to represent machine code instructions/opcodes

Consists of simple instructions

Specific to the instruction set of the given processor

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

What is a translator?

A

Software that converts code from high-level, or assembly, to machine code

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

What are the 3 types of translators?

A

Interpreter

Compiler

Assembler

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

Describe an interpreter and give an example of a language that would use one.

A

Translates source code every time the program is run

The user needs access to the source code to run the program

Will run on any machine

The slowest option for translators

Translates code line by line

Example: JavaScript

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

Describe a compiler and give an example of a language that would use one.

A

Machine dependent - different compilers are needed for each type of machine

Creates an executable program (.exe)

Users do not see the source code

Will run quicker than the other options.

Example: C#

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

Describe an assembler and give an example of a language that would use one.

A

Used to convert assembly language into machine code

Replaces mnemonic opcodes with machine codes

Replaces symbolic addresses with numeric addresses

Example Assembly Language

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

State the stages of compilation

A

Lexical Analysis

Syntax Analysis

Code Generation

Optimisation

17
Q

Describe the lexical analysis stage

A

Comments and whitespace are removed

The symbol table is started

Variable names like ‘count’ are added to a symbol table.

Reserved words like ‘WHILE’ are tokenized.

The series of tokens and symbol table is passed onto the next stage, syntax analysis

18
Q

Describe the syntax analysis stage

A

Receives output from the lexical analysis

Code is checked to ensure it follows the rules of the language

Uses abstract syntax trees to check syntax rules are followed.

The symbol table is completed

An error list is generated at the end of this stage

19
Q

Describe the code generation stage

A

Receives the abstract syntax trees from syntax analysis

The object code is created (machine code)

Turns the code into a format that the processor can understand

20
Q

Describe code optimisation

A

Ensures the code runs quicker and uses less memory.

The code from the prior stages may have been inefficient (instructions used that can be replaced by simpler ones.)

21
Q

Describe the purpose and types of linker

A

At the end of compilation, a linker is used to combine the object code with the library code to make the single executable file

Links the main program to libraries

can either include them in the final executable code (static)
…or get the executable code to point to the external libraries (dynamic)

22
Q

Describe the purpose of a loader

A

A program in an operating system (OS) used to load the executable file (exe)

Allocates the memory space to the executable module in the main memory.