Unit 1.2.2 Applications Generation Flashcards

1
Q

What is hardware?

A

The physical components of a computer system and its related devices, both internal and external (e.g., motherboards, RAM, keyboards etc).

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

What is software?

A

A set of instructions, data or programs used to operate a computer and execute specific tasks.

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

What are examples of application software?

A
  • Word processors
  • DTP
  • Spreadsheet
  • Database management
  • Graphics manipulation
  • Text/voice communication
  • Gamers
  • Email clients
  • Web browsers
  • Multimedia/video editing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is application software?

A
  • Perform specific tasks for end-user (e.g., word processing, media playback).
  • Application software is intended to be used by people to accomplish their goals.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is utility software?

A
  • Designed to help manage and tune system or application software.
  • It is used to support the computer infrastructure and operating system.
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 you with useful tools to manage your files and applications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the 5 types of utility software?

A
  • File repair
  • Backup
  • Anti malware
  • Degragmentation
  • Compression
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is file repair?

A
  • Files can become corrupt or damaged for a number of reasons.​
  • This software attempts to correct these issues and restore the file to its original state.​
  • They are often built into certain applications, as well as being a separate, dedicated software tool found in most Operating Systems.​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is backup?

A
  • It is essential to back up important files.​
  • Backups can be set manual, automatic or scheduled and they can be performed as a full or incremental backup.​
  • Can be done to different media or an off-site cloud system.​
  • Backup software often comes with your OS but can also be purchased separately.​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is compression?

A
  • Compression reduces the size of a file, so it takes up less space and downloads faster over the Internet.​
  • Compressed files must be extracted before they can be read.​
  • Data is either lost, reducing the quality of an image or audio file (lossy)
  • Or data is represented in a different way using binary, retaining the original data in a new, compressed format. (lossless).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is defragmentation?

A
  • Reorganises files on a hard disk, putting fragments or files and free space back together.​
  • This reduces the movement of the read/write head across the surface of the disk, which speeds up file access.​
  • Solid-state drives should not be defragmented (no moving parts) - it’s unnecessary and reduces the driver’s lifespan.​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is anti malware?

A
  • Helps keep the computer and files safe from many types of malware (viruses, trojans, worms and spyware.).
  • All OS come with malware protection already built in, configured and turned on.​
  • Companies also specialise in dedicated anti-malware programs.​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is open-source software?

A
  • Users have access to the source code
  • Users can modify and distribute the software
  • Can be installed on any number of computers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is closed-source (proprietary) software?

A
  • Protected by Copyright Design and Patents Act
  • Supported by developers who don’t release source code
  • Usually paid for and licensed per user/computer
  • Tested by developers prior to release, although it may run beta programs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the advantages of open-source software (for users)?

A
  • Software is free
  • Wide community modification
  • Bugs are quickly resolved
  • Users can add functionality to suit their own needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the disadvantages of open-source software (for users)?

A
  • Poorly supported
  • Some features may no be well tested
  • Lack of single point of contact for support
  • Interfaces may not be user-friendly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the advantages of open-source software (for creators)?

A
  • Gets software put to a wider community
  • No pressure for updating software as the users can do that
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are the disadvantages of open-source software (for creators)?

A
  • Little to no financial gain
  • Others can copy or distribute software
  • Licenses have limited warranty
  • No liability/copyright protection
  • Costs money to run
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the advantages of proprietary software (for users)?

A
  • Well supported, tested and professional built product
  • Designed with a user-friendly interface
  • A point of contact for customer service and support
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What are the disadvantages of proprietary software (for users)?

A
  • Cost or ongoing subscription fee
  • Limited support if specific issue is unaddressed by vender or they are unresponsive
  • Limited functionality which don’t tailor to user’s needs
21
Q

What are the advantages of proprietary software (for creators)?

A
  • Receive an income from their product
  • Protected by copyright law
  • Tailored support
22
Q

What are the disadvantages of proprietary software (for creators)?

A
  • Constant demand from community for more features and improvements
  • Piracy issues
23
Q

Why is translation required in computers?

A

Source code is used by humans as it is easier to understand, read, debug and maintain.

But for machines, the code needs to be in binary to understand and execute it.

24
Q

What is the process of translation?

A

Converting the source code into pure binary machine code.

25
Q

What are the three types of translators?

A
  • Assembler
  • Compiler
  • Interpreter
26
Q

What is an assembler?

A
  • Translates assembly language into machine code. ​​
  • Takes basic commands and operations from assembly code and converts them into binary code that can be recognised by a specific type of processor.​​
  • The translation process is typically a one-to-one process from assembly code to machine code.​​
27
Q

What are the advantages of an assembler?

A
  • Programs written in machine language can be replaced with mnemonics, which are easier to remember.​​
  • Memory-efficient.​​
  • Speed of execution is faster.​​
  • Hardware-oriented.​​
  • Requires fewer instructions to accomplish the same result.​​
28
Q

What are the disadvantages of an assembler?

A
  • Long programs written in such languages cannot be executed on small computers.
    ​​
  • It takes lot of time to code or write the program, as it is more complex in nature.​​
  • Difficult to remember the syntax.​​
  • Lack of portability between computers of different makes.​​
29
Q

What is a compiler?

A
  • Translates source code from high-level languages into object code and then machine code to be processed by the CPU.​​
  • The whole program is translated into machine code before it is run.​​
30
Q

What are the advantages of a compiler?

A
  • No need for translation at run-time.​​
  • Speed of execution is faster.​​
  • Code is usually optimised.​​
  • Original source code is kept secret.
31
Q

What are the disadvantages of a compiler?

A
  • Source code is easier to write in a high-level language, but the program will not run with syntax errors, which can make it more difficult to write the code.​​
  • Code needs to be recompiled when the code is changed.​​
  • Designed for a specific type of processor.​​
32
Q

What is an interpreter?

A
  • Translates source code from high-level languages into machine code, ready to be processed by the CPU.​​
  • The program is translated line by line as the program is running.​​
33
Q

What are the advantages of an interpreter?

A
  • Easy to write source code, as the program will always run, stopping when it finds a syntax error.​​
  • Code does not need to be recompiled when code is changed.​​
  • Easy to try out commands when the program has paused after finding an error – making interpreted languages easy for beginner programmers to learn to write code.​​
34
Q

What are the disadvantages of an interpreter?

A
  • Translation software is required at run-time.​​
  • Speed of execution is slower.​​
  • Code is not optimised.​​
  • Source code is required.​​
35
Q

Why does source code need to be compiled?

A

As programmers we write source code to be close to English and easily read, modified and interpreted by humans.​

A processor cannot run source code as it needs to be turned in machine code.​

36
Q

What are the 4 stages of the Compilation process?

A
  1. Lexical Analysis
  2. Syntax Analysis
  3. Code Generation
  4. Code Optimisation
37
Q

What happens in Lexical Analysis?

A
  • Comments and white space removed​
  • Remaining code turned into a series of tokens.​
  • Symbol table is created to keep track of variables and subroutines.​
38
Q

What happens in Syntax Analysis?

A
  • Abstract syntax tree is built from tokens produced in the previous stages.​
  • Errors generated if any tokens break the rules of the language.​
39
Q

What happens in Code Generation?

A
  • Abstract code tree converted to object code.​
  • Object code is the machine code produced before the final step (linker) is run.​
40
Q

What happens in Code Optimisation?

A

Tweaks the code by:

  • Spotting redundant instruction and producing object code that achieves the same effect as the source program (but not necessarily by the same means)
  • Removing subroutines that are never called
  • Removing variables and constants that are never referenced
41
Q

Why does code need to be optimised?

A
  • Reduces the execution time of the program
  • Ensure it operates with less memory / power
42
Q

What is a library?

A

A suite of useful subroutines written by other authors and already tested.

They can be used in GUI routines, database access routines, encryption and graphics.

43
Q

What are the advantages of using libraries?

A

+ Quick and easy to use and hook into your own code
+ Pre-tested so likely to be error-free
+ Pre-compiled, so are typically optimised to run quickly

44
Q

What are the disadvantages of using libraries?

A
  • Adding functionality or making specific tweaks can be difficult or impossible
  • Could be ‘black-boxed’ from the actual implementation
  • Must trust that developers will continue maintaining the library
45
Q

What is the purpose of the linker?

A
  • Putting the appropriate machine addresses in all the external call and return instructions, so all modules and external library routines are linked together correctly
  • Links any separately compiled subroutines into the object code.
46
Q

What are the two methods that linkers can use?

A
  • Static Linking
  • Dynamic Linking
47
Q

What is Static Linking?

A

All the required code from the libraries is included directly in the finished machine code – this can result in large executable program files.​

48
Q

What is Dynamic Linking?

A
  • Compiled versions of the required libraries are stored on the host computer.
  • The OS links the required code from the library as the program is running.
  • While this cuts down on the size of compiled machine code, if the dynamic libraries change, the program may stop because it tries to call a subroutine in the wrong way.​
49
Q

What is the purpose of the loader?

A

The part of the operating system that loads the executable program file (machine code) into memory, ready to be run.​

When using dynamic linking, it will also be responsible for loading the required libraries into memory.​