1.2.2 Applications Generation Flashcards

1
Q

What is software?

A

general term which covers all computer programs

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

what is a generic application?

A

it does not have a specific or narrow purpose
can use it to carry out different tasks and meet multiple needs

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

What are some examples of generic applications?

A
  • wordprocessor
  • presentation software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a specific application?

A

has highly specific and bespoke uses
installed on systems where there is a direct need

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

What are the common categories of application software?

A
  • word processor
  • database
  • web browser
  • graphics manipulation
  • communication software
  • DTP
  • Presentation
  • video editing
  • email clients
  • games
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is utility software designed to do?

A
  • keep your computer safe
  • keep it running efficiently
  • provide tools to manage files + applications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does file repair software do?

A

software that attempts to correct corrupted or damaged files and restore the to a working state

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

what is back up software?

A
  • creates copies of data/files to protect them in case they are lost/corrupted ect.
  • can be manual, automatic or scheduled
  • can be full or incremental
  • can back up to different media or cloud
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

what is compression?

A

reduction of the size of files so it takes up less space and downloads faster over the internet
can be lossy or lossless

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

what must happen to compressed files before read?

A

must be extracted

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

what is defragmentation?

A

software which reorganises files on a hard disk, putting fragments of files and free space back together

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

why does defragmentation speed up file access?

A

reduces the movement of the read/write head across the surface of the disk

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

what does anti-malware software do?

A

keep computer and files safe from malware eg:
- viruses
- trojans
- worms
- spyware

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

what are the features of open source software?

A
  • users can modify + distribute software
  • can be installed on any number of computers
  • support provided by community
  • users have access to source code
  • may not be fully tested
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what are benefits and drawbacks of open source software for USERS?

A

Benefits:
- free
- wide community modification
Drawbacks:
- Can be poorly supported
- Somme features not well tested

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

What are the benefits and drawbacks of open source software for CREATORS?

A

Benefits:
- gets software out to wider community
Drawbacks:
- little-to-no financial gain

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

What are some features of closed source software?

A
  • protected by copyright, design and patent act
  • cannot modify
  • paid for + licensed per computer
  • supported by developers
  • tested prior to release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

what are the benefits and drawbacks of closed source software for USERS?

A

Benefits:
- Well supported, tested + professional built product
Drawback:
- cost or ongoing subscription

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

What are the benefits and drawbacks of closed source software for CREATORS?

A

Benefits:
- receive income for product
Drawbacks:
- constant demand from community for more features + improvements
- piracy issues

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

what is source code?

A

what humans write programs in
- descriptive and easy for us to understand, read, maintain and debug

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

what is machine code?

A

the pure binary form of source code

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

what is translation?

A

the process of converting source code to machine code

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

how is assembly code translated?

A
  • by an assembler
  • translates the mnemonics of the assembly code into their binary codes
  • typically a 1 to 1 relationship between each line of mnemonics and their binary equivalents
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

what can be used to translate high level languages?

A
  • interpreter
  • compiler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
how does an interpreter translate source code?
- line by line into the machine code
26
how does a compiler translate source code?
- compiler turns source code into object code - linker links any libraries used in the code - either converted into machine code - or, converted to intermediate code and then translated into machine code using an interpreter
27
what happens if there is an error in the code and it is being translated by a compiler?
it will not run unless all errors have been corrected
28
what happens if there is an error in the code and it is being translated by an interpreter?
it will run until it encounters an error and then stop
29
what are the advantages of an assembler?
- uses mnemonics - easier to remember - memory efficient - speed of execution is faster - hardware oriented - requires fewer instructions for same result
30
what are the disadvantages of an assembler?
- long programs cannot be executed on small computers - takes a lot of time to write a program as its is more complicated - difficult to remember syntax - lack of portability between computers
31
what are the advantages of a compiler?
- no need for translation at run time - speed of execution is faster - code is usually optimised - original source code secret
32
what are some disadvantages of compilers?
- source code is easier to write in a high level language but program will not run with errors which can make it hard - code needs to be recompiled when changed - designed for specific processor
33
what are the advantages of interpreters?
- easy to write source code + stops when finds an error - code does not need to be recompiled when changed - easy to try out commands when program has paused after finding an error
34
what are the disadvantages of interpreters?
- translator required at run-time - speed of execution is slower - code not optimised - source code required
35
what is a parse when compiling code?
a series of runs through the code by the compiler to perform different actions on the source code
36
what are the four stages of compilation?
lexical analysis syntax analysis code generation code optimisation
37
what is the first part of lexical analysis?
- lexer converts lexemes (words) into a series of tokens - it scans it letter by letter and when it encounters a white space, operator symbol or special symbol, it decides the lexeme is complete
38
how does the lexer check is a lexeme is valid?
checks it using a predefined set of rules
39
what is a side effect of lexical analysis?
white space and comments are removed as they are passed over by the lexer
40
what happens after a token stream has been created from source code during compilation?
the tokens from the token stream are added to a symbol table
41
what does syntax analysis do?
analyses the syntactical structure of the input (from the lexical analysis), checking if it is the correct syntax
42
how does syntax analysis check the syntax of code?
analyses the token stream against production rules to detect any errors in the code
43
what does syntax analysis accomplish?
- checks for errors and reporting them - building an abstract syntax tree (parse tree)
44
how do syntax diagrams work and how do they validate code?
after each token, it shows what should be after it. this means a line of code can be checked against it and if the line can travel through the diagram, it is valid
45
what is an abstract syntax tree?
a diagram created from the input token stream using the syntax diagrams of a particular language
46
what happens in an identifier is added to an abstract syntax tree?
- the symbol table is checked to see it exists - the information from the abstract syntax tree can be used to update the data type of the identifiers
47
how does code optimisation attempt to reduce execution time of a program?
- spotting redundant instructions and producing object code which achieves the sake effect as the source program - not necessarily in the same way - removing subroutines that are never called - removing variables and constant which are never referenced
48
what is a disadvantage of code optimisation?
increases compilation time
49
what is unreachable code?
a part of the program code which is never accessed because of programming constructs
50
what happens during code generation?
abstract code tree converted to object code
51
what is object code when referring to compilation?
the machine code produced before the final step (linker) is run
52
what is a library?
ready-compiled and tested programs that can be run when needed
53
what are the benefits of libraries?
- quick and easy to use in code - pre tested so relatively free from errors - pre compiled so optimised to run quickly
54
what are the drawbacks of using libraries?
- adding functionality or making specific tweaks is difficult of impossible - sometimes 'black boxed' from actual implementation - have to trust developers to maintain the library
55
what does a linker do?
responsible for putting appropriate machine addresses in all the external call and return instructions so all modules and external library routines are linked together correctly
56
what is static linking?
all required code from the libraries is included directly in the finished machine code
57
what is the issue with static linking?
- large executable program files
58
what is dynamic linking?
- compiled versions of the required libraries are stored on the host computer - os links the required code from the library as the program is running
59
what is the disadvantage of dynamic linking?
if the dynamic libraries change, the program may stop because it tries to call the subroutine in the wrong way
60
what is the loader?
part of the os which loads the executable program file (machine code) into memory, ready to run when using dynamic linking, it also loads the required libraries into memory