1.2.2 Applications Generation Flashcards

1
Q

What are the two broad categories of software?

A

Systems software and Application software

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

What does systems software include?

A

OS, Utilities, Libraries, Translators

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

What does application software include?

A

Off the shelf and Custom made. Open source and Proprietary.
e.g. games, office suites, email clients, web browsers

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

What is systems software?

A

Low-level software needed to run the computer system and hardware, while providing a platform for application software to run on. The user typically doesn’t directly interact with the systems software but it ensures a high quality performance for the user.

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

What is application software?

A

Software designed to be used by the end user to perform a specific task. It requires systems software in order to run.

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

What is utility software?

A

Software designed to optimise the performance of the computer or to perform certain tasks. Each utility program has a specific function linked to the maintenance of the operating system.

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

What are examples of utility software?

A

Disk Defragmentation.
Automatic Backups.
Automatic Updating.
Antivirus.
Compression.

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

What is disk defragmentation?

A

Reorganises the data on magnetic hard drives where the data has become split up into fragments, stored throughout the memory.

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

How does Defragmentation work?

A

Puts all the associated data in a series of sequential blocks as well as organising the unused memory into one block.

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

How does defragmentation speed up the read/write speeds?

A

The read/write head doesn’t need to travel as far to read or write the data onto/of of the disk.

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

What are automatic backup utilities?

A

Utilities that regularly create copies of files automatically. The files to be backed up can be selected by the user and they can choose how often they are backed up as well as where they are stored.

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

What benefit does automatic backups have?

A

The user doesn’t have to think about doing regular backups. Set and forget. In the event of a fire, power failure, malicious attacks or other accident the files can be recovered.

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

What is an automatic updating utility?

A

A utility to ensure that the OS is always up to date with any updates being installed automatically when the computer is restarted. Some updaters will also check other software (including applications).

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

What benefit does automatic updating have?

A

Updates tackle bugs and security flaws to ensure that the system is less venerable to malicious attacks. Doing so automatically means the user doesn’t have to monitor this and the user is kept safer.

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

What is an antivirus utility?

A

Responsible for deleting potential threats to the computer (malware) and alerts the user to their presents. Advanced antimalware software will scan new data (e.g. emails and downloads) for viruses as a preventative measure.

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

What is a compression utility?

A

A utility that allows files to be compressed and decompressed. Especially useful when transferring files over the internet.

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

What is source code?

A

The code for a program written by the programmer in a high level language

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

What does open source and closed source refer to?

A

If the source code is accessible to the public

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

What is open source code?

A

Software where the source code is freely available for the user to view and modify legally if they would like to. It is free to use, distribute and modify.

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

What are the advantages of open source code?

A

Tends to be free - although could be sold.
Anyone can modify and improve it to meet their needs.
Bugs can be fixed quick as there is a community of developers working on it.
Get unlimited installs.
Allows developers to ‘get known’.

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

What are the disadvantages of open source code?

A

Updates can take longer to come out as there is no financial incentive to do so.
Lower security - as it can be developed in an unsecure environment.
Not as much documentation on how to do things.
Tends not to be as feature rich.
May be harder to use (accessibility).
Potential for malicious actions as the code can be modified.
Little to no customer support.
Developers have little to no financial gain.
May not be fully/thoroughly tested.

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

What is closed source software?

A

Software that typically requires the user to have a licence to use it. Users are unable to access the source code and doing so, without permission, is a criminal offence. The company producing the software holds the copyright.

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

What are the advantages of closed source software?

A

Thorough, regular and well-tested updates by the company producing the software.
Reliability and trust.
Better customer service and support.
Better security - developed professionally.

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

What are the disadvantages of closed source software?

A

Licences restrict how many people can use the software at once.
Can be expensive - either an upfront cost or a subscription.
(Not always. Some can be free but proprietary).
Forced to wait until the company fixes any errors or bugs - this can take longer as it will have to go through an approval process.
Users cannot modify and improve software themselves to meet their needs.
Privacy becomes an issue.
Old software may no longer be supported.
Features could be withheld until you pay for upgrades.

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

What is object code?

A

The code produced by a translator - Binary of the source code

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

What is machine code?

A

The general term for binary code. Object code is a form of machine code.

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

What is the main role of a translator?

A

Convert code into machine code so it can be understood by the computer.

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

What are the 3 main types of translators?

A

Assembler.
Interpreter.
Compiler.

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

What is an assembler?

A

A translator that translates assembly code into machine code.

30
Q

What is assembly code?

A

A low level language that uses mnemonics that directly relate to binary machine code. One assembly language code in one machine code instruction.

31
Q

What is the drawback of an assembler?

A

The instruction set is dependant on the hardware as each processor has its own set of instructions that it can execute.

32
Q

What is an Interpreter?

A

Translator that translate one line of source code into machine code at a time.

33
Q

How does an interpreter work?

A

When the program is running it reads each line individually and, if there are no syntax errors, will convert that line into machine code before running it. it then moves onto the next line.

34
Q

What are the advantages of an interpreter?

A

Easier to debug as errors are picked up at translation - no long error reports.
Allows for flexibility and experimentation with approaches to code.
makes testing easier as the whole code doesn’t need to be compiled each time a small change has been made.

35
Q

What are the disadvantages of an interpreter?

A

Doesn’t produce an executable file.
The code must be translated each time it is run.
Runs slower as each line needs to be translated each time its needed.
Means that the code isn’t optimised as its left in its original state.
if being distributed the source code must also be provided to the user - meaning that it could be modified without permission. The user will also need an appropriate interpreter installed.

36
Q

What is a compiler?

A

A translator that translates all of the source code into machine code in one go.

37
Q

What is produced by a compiler?

A

An executable file

38
Q

What is the benefit of producing an executable file?

A

More easily distributed as the user doesn’t need to have an interpreter installed.
As the code produced is binary it is almost unreadable meaning the source code and any trade secrets are kept hidden.

39
Q

What are the advantages of a compiler?

A

Runs faster than non-compiled code.
user doesn’t need translating software installed saving money and storage.
During compilation the code is optimised to its most efficient form.

40
Q

What are the disadvantages of a compiler?

A

Code must be compiled in full and every time a change is made the code must be re-compiled. Means that you cant run only a small section of the code. All or nothing.
Compilers are specific to a processor as different processors have different programming approaches.
Produces a long error page at the end if compilation fails which can be challenging to understand and identify where the error comes from.

41
Q

What are the stages of compilation?

A

Lexical analysis.
Syntax analysis.
Object code generation.
Code Optimisation.

42
Q

What is each stage of compilation known as?

A

A pharse

43
Q

Where does lexical analysis occur?

A

A part of the compiler called the lexer

44
Q

What happens in lexical analysis?

A

The source code is scanned character by character to find lexemes which can be compared to the rules of the language to see if it is valid.

45
Q

What is a lexeme?

A

Keywords, constants, and variables

46
Q

How are lexemes identified?

A

White spaces, operators and special symbols define the start and end of lexemes

47
Q

What does the lexer do?

A

Ignore spaces and tabs. (not removed, just ignored).
Code comments are removed for efficiency.
Basic debugging and error checking takes place (invalid variable names, correct data types, causes of over and underflow).
All numbers are converted straight to binary.
Lexemes, strings, numbers operators and punctuation are replaced by symbols known as tokens - producing a symbol table.

48
Q

What is the symbol table?

A

A table that holds an entry for every keyword, operator and identifier in the program.

49
Q

What stages of compilation populate the symbol table?

A

Lexical analysis and syntax analysis.

50
Q

What information does the lexer put into the symbol table?

A

The identifier and the runtime address

51
Q

What is a potential issue with the symbol table?

A

Can become quite long when multiple lookups are needed which effects efficiency.

52
Q

What is produced with the symbol table?

A

The lexical/token stream, each identified by its token

53
Q

What is the role of syntax analysis?

A

Determine weather the sequence of input characters, symbols, items or tokens form a valid sentence in the language.

54
Q

Where does syntax analysis get the tokens from?

A

The lexical analyser

55
Q

How can the language be expressed?

A

A syntax diagram or Backus-Naur form

56
Q

What is parsing?

A

The process of applying the rules of the language to each statement of the source code.

57
Q

How are brackets checked in syntaxial analysis?

A

Using a stack that keeps track of when they are opened and closed

58
Q

What happens in syntax analysis?

A

Brackets checked.
Priorities of arrhythmic operators determined.
Expressions converted into a form that the machine code will more easily understand.
Debugging.
Semantics checked.
Error report returned

59
Q

How are expressions converted into a way more easily understood by machine code?

A

Reverse Polish

60
Q

How does syntax analysis act as a debugger?

A

Checking the sequence of keywords and symbols to ensure it follows the rules of the language

61
Q

What are semantics?

A

The meaning of the rules rather than the grammer of them.
e.g.
int(3.14) will error.
Both integers and floats are allowed but this is an incorrect use of them.

62
Q

What is an error report?

A

A report returned to the user listing all the errors that were found

63
Q

What happens in object code generation?

A

The complete object code can be generated.
Links to any libraries are made

64
Q

What happens in code optimisation?

A

Removal of unused functions.
Spotting and removing redundant instructions.

65
Q

What are redundant instructions?

A

Instructions that will never run. E.g. statements after a return:
return x
print(x)

66
Q

What issue can redundant instructions and unused functions cause?

A

Make the file much larger. As each high level instruction is made of many machine code instructions.

67
Q

What is the drawback of code optimisation?

A

Its a time consuming process and will greatly increase the compilation time.

68
Q

What are libraries?

A

Pre-compiled programs that can be incorporated into programs and loaded when required.

69
Q

What are the advantages of using libraries?

A

They are tested and error free - saving time debugging.
Programmers don’t have to write the code themselves to do common tasks - saving time in development and testing.
Libraries can be reused within multiple programs so they don’t have to be re-written each time.
Provide a specialised range of functions that would otherwise require lots of time and effort to develop.
Allows programmers to make use of someone else’s expertise.

70
Q

What is a linker?

A

Software that creates a connection, via machine code addresses, for when call and return functions are used. They make sure there are no conflicts between the modules in order to make the complete program.

71
Q

What is a loader?

A

Programs provided by the OS that can load the library and/or subroutines anywhere in memory.