Component 5 - Key Definitions Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

The nature of applications, justifying suitable applications for a specific purpose.

A

This is common sense – you should be able to suggest an appropriate application for a given task. For example “suggest an application for the gathering and storage of large volumes of customer information” you would suggest… a database!

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

Utilities

A

Small programs which usually run in the background. They normally have one specific purpose and are often used for the maintenance of systems. For example, a backup utility would run regularly and save changes to the backup device specified. Other examples include anti-virus, compression, encryption and file management

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

Open source vs closed source

A

Open source is where the code for a program is made freely available. Usually it can be used, re-used, changed and re-released as necessary. It can be excellent for the rapid development of new systems and can reduce workload because parts of the code will be pre-written. The only downside is there is no guarantee as to the quality of the code, how robust it will be and whether it will be supported in future.
Closed source or “proprietary” code is usually the property of a company or individual that has chosen not to share the code with anyone outside their organisation. This is usually done to protect the intellectual property of the developer and enable them to make money from their work/creations

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

Translators/Interpreters, compilers and assemblers

A

Tools used to turn high level code into machine code. Remember that the CPU cannot understand anything other than binary strings which relate to an instruction in the instruction set.
Assemblers are specific to assembly language and are one of the first types of translators to be developed. They allow the quick conversion of assembly in to machine code, usually producing an executable. An assembler will take care of some memory management, the automatic calculation of addresses and simple variable control, but they offer very little support to developers beyond that.
Compilers take high level code and convert to an executable in one go. They link/load other libraries as necessary and build this code into the executable automatically. Compiled programs usually run more quickly than interpreted and can be easily distributed between similar systems
Interpreters are usually used to provide cross platform compatibility for code – think java script on the WWW. An interpreter is installed on the local machine which takes the code, converts it as it is executed,
producing machine specific code as it does so. This has the huge advantage of “write once, run anywhere” but has the obvious overhead of several different interpreters needing to be created.

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

Stages of compilation (lexical analysis, syntax analysis, code generation and optimisation

A

Compilation is not a simple operation of “code in, binary out.”
Lexical analysis removes unnecessary data and information such as comments and spaces, it outputs a token stream which represents the code written.
Syntax analysis takes the token stream and checks it is valid and outputs an abstract syntax tree
Code generation is the complex part which parses the syntax tree and then generates appropriate machine code for each part, links in external libraries and produces the executable.
Optimisation is carried out by the compiler to increase execution speed and reduce executable size. For example, it may re-order the instructions into a sequence it thinks is more likely to happen

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

Linkers and loaders and use of libraries

A

External code libraries allow developers to use standard code, which is fully tested and robust. Operating systems are full of libraires, and developers are free to make their own. A 3d game engine would be an example of this.
Libraries contain code which is likely to be used over and over again in programs, so instead of re-inventing the wheel, we put it in a library and simply import it into our code and reference it.
The problem with this is that executables can rapidly grow in size and so we mostly use dynamic linking of libraries (DLL’s in Windows) which means that the code can reference a library, but then it is only loaded into memory when it is required, saving space.
Static libraries, such as those which may be created by a developer themselves, are included in the executable. This has one advantage – it is guaranteed that the library is available. Dynamic libraries may not be present for some reason or may have been updated and now be incompatible

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