1.2.2: Applications Generation Flashcards

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

What can software be categorised as?

A
  • Applications Software or Systems Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Applications Software?

A
  • Used by the end user to perform one specific task
  • Requires systems software in order to run
    Examples: Word processing, Spreadsheets, Web Browsers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Systems Software?

A
  • Low-level software that is responsible for running the computer system smoothly, interacting with hardware and providing a platform for applications software to run
  • User does not directly interact with the Systems Software but the software ensures high performance for user
    Examples: Utility programs, OS, Device Drivers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are Utilities?

A
  • Key pieces of System Software necessary to ensure consistent, high performance of the OS
  • Each Utility has a specific function linked to the maintenance of the OS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Compression?

A
  • The OS provides Utilities that enable Compression and Decompression of files
  • Used when Compressing large files to be transmitted across the internet
  • Commonly used to Compress scanned files
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Disc Defragmentation?

A
  • Read/write times slow when the hard disc becomes full because files get fragmented as they are stored in different parts of memory
  • Disk Defrag Utility rearranges the contents of the hard drive so they can be accessed faster, improving performance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Antivirus?

A
  • Detecting potential threats, alerting user, and removing the threats
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Automatic Updating?

A
  • Ensures the OS is kept up to date, with any updates being automatically installed upon computer restart
  • Updates tackle bugs/security flaws
  • Ensure the system is less vulnerable to malware and hacking threats
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Backup?

A
  • Automatically creating routine copies of specific files selected by the user
  • How often files are backed up also specified by the user
  • In the event of a power failure, malicious attack, or other incident, the files are recoverable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Source Code?

A
  • Written by a programmer and refers to Object (AKA Machine) Code before it has been compiled
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What factors determine whether a user chooses Open or Closed Source software?

A
  • Depends on the suitability of the software to the task it will be used for
  • Costs: Implementation, Maintenance, Training of staff, Licenses
  • Functionality: Features available, Ease of use
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Open Source Software?

A
  • Can be used by anyone without a license and is distributed with the Source Code
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are advantages of Open Source Software?

A
  • Can be modified and improved by anyone
  • Technical support from online community
  • Can be modified and sold on
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are disadvantages of Open Source Software?

A
  • Support available online may be insufficient or incorrect, no user manuals
  • Lower security as may not be developed in a controlled environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is Closed Source (Proprietary) Software?

A
  • Requires the user to hold an appropriate license to use it
  • Users cannot access the Source Code as the company owns the copyright license
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the advantages of Closed Source (Proprietary) Software?

A
  • Thorough, regular, and well-tested updates
  • Company owning software provides expert support and user manuals
  • High levels of security as developed professionally
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the disadvantages of Closed Source (Proprietary) Software?

A
  • License restricts how many people can use the software at once
  • Users cannot modify and improve software themselves
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is a Translator?

A
  • A program that converts high-level Source Code into low-level Object (AKA Machine) Code, ready for execution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are Interpreters?

A
  • Translate and execute code line-by-line, stop and produce an error if the line contains an error
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What are the advantages of using an Interpreter?

A
  • Useful for testing sections of code and pinpointing errors
  • Time is not wasted compiling the entire program before it has been fully debugged
  • Code can be executed on a range of platforms as long as the right Interpreter is available (Interpreted code is more portable)
21
Q

What are the disadvantages of using an Interpreter?

A
  • May initially appear faster than compilers as code is instantly executed, but are slower as code must be translated each time it is executed
  • Interpreted code requires an Interpreter in order to run on different devices
22
Q

What are Compilers?

A
  • Translate high-level code all at once after carrying out diagnostics and reporting back errors
23
Q

What is the advantage of using a Compiler?

A
  • Code can be run without a Translator present
24
Q

What are the disadvantages of using a Compiler?

A
  • Initial Compilation process is LONGER than with an Interpreter or Assembler
  • If changes are made, the whole program must be recompiled
  • Once Source Code is Compiled to produce Machine Code, it can only be executed on certain devices: Compiled code is specific to a particular processor type and OS
25
Q

What is an Assembler?

A
  • Translate Assembly Code into Machine Code
26
Q

How does Assembly Code relate to Machine Code?

A
  • Each line of Assembly Code is equivalent to almost one line of Machine Code
  • Translated on an almost one-to-one basis
27
Q

Where can Assembly Code be used?

A
  • Assembly Code is platform specific, as the instructions are dependent on the instruction set of the processor
  • Considered to be low-level as it is ‘next level up’ from Machine Code
28
Q

What is the first stage of Compilation?

A
  • Lexical Analysis: Where any white spaces or comments are removed
29
Q

What happens during Lexical Analysis?

A
  • Remaining code after white spaces and comments are removed is scanned for keywords and variable and constant names
  • All keywords, variable and constant names are replaced with a token and information about the token is stored in a symbol table
30
Q

What are the token classes, with examples?

A
  • Identifier: Any function or variable name
  • Keyword: As, If, Else, Endif, Function, EndFunction, Return
  • Separator: [ ] &
  • Operator: + - * / ^ DIV MOD < > <= >=
  • Literal: (strings) Hello World!
  • Number: -4, 0, 3, 4
  • Quote: “ “
  • Bool: True, False

-Datatype: Integer, Decimal, String, Boolean

31
Q

What is the second stage of Compilation?

A
  • Syntax Analysis: Tokens are analysed against the grammar and rules of the programming language
  • Any tokens that break the rules of the programming language are flagged up as syntax errors and added to a list of errors
  • Examples of errors: Undeclared variable type, Incomplete set of brackets
  • Further detail about the identifiers is also added to the symbol table
32
Q

What is produced during Syntax Analysis?

A
  • An abstract Syntax Tree, a representation of the source code
33
Q

What is Semantic Analysis?

A
  • Where logic mistakes within the program are detected
  • Examples of Semantic errors: Multiple declaration, Undeclared identifiers
34
Q

What is the third stage of Compilation?

A
  • Code Generation: The abstract tree produced at Syntax Analysis is used to produce Machine Code
35
Q

What is the fourth stage of Compilation?

A
  • Code Optimisation: Searching through the code for areas to improve efficiency
  • Abstract Code converted into Object Tree
36
Q

What is Abstract Code?

A
  • The Machine Code produced before the final step (linker) is run
37
Q

What is the aim of Code Optimisation?

A
  • To make code faster to execute and use as little memory as possible
38
Q

How is Code Optimisation completed?

A
  • Redundant parts of code are detected and removed
  • Repeated sections of code may be grouped and replaced with more efficient pieces of code that produce the same result
39
Q

What is a danger of excessive Code Optimisation?

A
  • Excessive Code Optimisation may alter the way in which the program behaves
40
Q

What does a Linker do?

A
  • Responsible for linking external software modules and libraries included within the code
  • Also links any separately compiled subroutines into the Object Code
41
Q

What is Static Linking?

A
  • Modules and libraries are added directly into the main file (Increase in file size)
  • Any updates to modules and libraries externally will not affect the program (A specific version of a library can be used)
42
Q

What is Dynamic Linking?

A
  • Compiled versions of the required libraries are stored on the host computer (Addresses of modules and libraries are included in the file where they are referenced)
  • The OS links the required code from the library as the program is running
  • Files remain small and external updates feed through to the main file: There is no need to rewrite code
  • If the dynamic libraries change, the program may stop because it tries to call a subroutine the wrong way
43
Q

What is a Loader?

A
  • Programs provided by the OS that retrieve the library or subroutine from the given memory location when a file is executed
44
Q

What is the purpose of the Loader during Dynamic Linking?

A
  • It is responsible for loading the required libraries into memory
45
Q

What are Libraries?

A
  • Pre-compiled and tested programs that can be incorporated within other programs (Via either Static or Dynamic Linking)
46
Q

What are the advantages of Libraries?

A
  • Ready to use and error free
  • Can be reused within multiple programs
  • Often used to provide a specialised range of functions which would otherwise require a lot of time and effort to develop
  • Popular libraries include mathematical and graphical functions
47
Q

What are the benefits of using Libraries?

A
  • Quick and easy to use and hook into own code
  • Pre-tested: The user can be relatively sure they are free from errors
  • Pre-compiled: Are typically optimised to run quickly
48
Q

What are the drawbacks of using Libraries?

A
  • Adding functionality or making specific tweaks can be difficult - or impossible
  • Sometimes users are “black-boxed” from certain implementation
  • The user has to trust the developers will continue to maintain the library