Application Generation Flashcards

1
Q

application software

A

designed to be used by the end to end user to perform a specific task

eg. word processing, spreadsheets, web browsers. skype

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

system software

A

low level software that is responsible for running the computer system smoothly. closely interacts with hardware. and is needed for the computer to function. runs in the background users don’t usually access it.

eg. library programs, utility programs, operating system, device drivers.

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

utilities

A

piece of system software to ensure consistent high performance of the os. each utility has a unique functions linked to the maintenance of the os

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

compression

A

compress and decompress large files that are transmitted across the internet

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

Disk defragmentation

A

rearranges content of the hard disk drive so that they can be accessed faster removing fragments by putting memory together and free space.

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

Antivirus

A

responsible of detecting potential threats to the computer. thus alerting the user and removing the threat.

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

Automatic updating

A

ensures the operating system is kept up to date. which updates automatically downloaded when computer is restarted. this is done to ensure that the system is less venerable to hacking/malware.

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

Backup

A

full backup and incremental backup are specified by the user. backups are done so that files can be recovered in an event of data loss, power failure fire etc.

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

source code

A

is the object code before it has been compiled.

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

open source software

A

can be used by anyone whiteout needing a license and the source code is available for anybody to access and modify,

pro:
can be modified and improved by anyone
technical support from online community

cons:
incorrect insufficient support
low security

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

closed source software (propriety )

A

proprietary software refers to the software which is solely owned by the individual or publisher who developed it source code is not available and cannot be modified by users. need a license.

pro:
regular well tested updates
expert support and user manuals
high level of security

cons:
subscription cost
cant modify and improve/ distribute software
restricts how many users can use this

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

what must the user consider?

A

Costs, implementation, maintenance, training of staff, license
Functionality, features available, ease of use

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

translators

A

program that translates high level source code into low level object code so it can be ready to execute by the computer.

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

assembler

A

translates assembly code into machine code. 1 line of assembly = 1 line of machine so translated on 1-1 basis

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

compiler

A

translates high level code into machine code all at once. takes longer than an interpreter. if need to change program must be recompiled.

compiled code is specific to a particular processor type and operating system. Code can be run without a translator being present.

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

interpreter

A

translates and executes high level code into machine code line by line. stop when error is found.

slower than running compiled code as code must be translated each time it is executed.

useful for testing sections of code.
requires an interpreter to run on different devices but its more portable as can be executed if interpreter is present.

17
Q

lexical analysis - stage 1

A

whitespace and comments are removed. allocate tokens. and information about tokens are stored in a symbol table.

18
Q

syntax analysis - stage 2

A

check if code tokens are in the correct order, and that tokens follow the language rule. if not they are flagged with an syntax error.

Semantic analysis is also carried out at the syntax analysis stage, where logic mistakes within the program are detected.
Examples of semantic errors: multiple declaration, undeclared identifiers

abstract syntax tree (AST) is created (maps the structure of the program, first dropping the brackets, semicolons, etc, that were used by the programmer. If required tokens are missing from the tree, or in the wrong place, the compiler will report an error)

19
Q

code generations - stage 3

A

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

20
Q

optimalisatioin - stage 4

A

searches code to make it execute faster

The optimizer may identify redundant or repeated code, and remove or rearrange the code as necessary.

21
Q

linkers

A

responsible for linking external modules and libraries
included within the executable code.

static: Modules and libraries are added directly into the main file. increases the size of the file. updates of libraries and modulus will not affect the program. therefore any version of it can be used.

dynamic: Addresses of modules and libraries are included in the file where they are referenced. files remain small and external updates feed
through to the main file; there is no need to rewrite the code.

22
Q

loaders

A

When a file is executed, the loader retrieves the library or subroutine from the given memory location. (memory address which has been relocated)

23
Q

use of libraries

A

libraries are pre-complied programs which can be incorporated using static or dynamic linking.

  • ready-to-use and error free, so save time
    developing and testing modules
  • can be reused within multiple programs
  • save programmers from having to ‘reinvent
    the wheel’