1.2.2 applications generation Flashcards

1
Q

What are the two main types of software?

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

why are both system and application software needed

A
  • Systems software controls hardware, provides platform for applications software, manages memory + provides a user interface
  • Applications software will allow tasks to be performed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is system software?

A
  • OS and utility software
  • also code translators, Library Program
  • Software designed to run computer’s hardware + applications, managing its resources (memory, processors + devices)
  • also provides platform for running application software.
  • system software is typically bundled with a computer’s OS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Library Programs (System Software)

A
  • contains useful functions that are frequently used by programs.
  • Simplifies the process of application development.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is utility software

A
  • software that performs specific task relating to upkeep of system
  • designed to keep computer safe + running efficiently as well as provide useful tools to manage files and apps.
  • sits alongside OS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what comes under utility software

A
  • antivirus / anti-malware
  • defragmenter
  • backup
  • compression
  • firewall
  • file repair
  • device drivers
  • file management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what useful analogy can be made about utility software

A
  • think of utility software like MOT
  • car = OS. if you don’t maintain it, it loses performance
  • so with computers, OS allows it to run. But without utility software to protect with firewalls and anti-virus, create backups and run defragmentation, it can lose performance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is application software?

A
  • Word processor, web browser, video editor, games, social networking, text and vice communication, graphics manipulation, spreadsheets, database etc.
  • A program which provides an interactive service to the user + allows them to perform a task.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

factors to consider when choosing applications (5)

A
  • functionality
  • hardware
  • availability
  • cost
  • reliability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what is a generic application and give example

A
  • application that doesn’t have specific/narrow purpose as you can use it to carry out different tasks and meet multiple needs
  • word processor / presentation tools
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what is a specific application and give example

A
  • highly specific and bespoke software. specific application software only installed on systems with direct need for it.
  • database software (beyond creating, managing and using database, it has little use)

(although you can duplicate functionality within more generic app like spreadsheet software, it may not suit needs)

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

for this scenario, recommend application software company may need:

  • an independent games development company that makes apps for mobile phones and tablets
A
  • word processor (produce progress reports, capture bug reports, notes at design meetings for new projects)
  • graphics manipulation (produce assets for game)
  • software development tools (write, test and debug code)
  • communication software (email team members, contact potential clients / distributors)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

what is hardware

A
  • physical parts of a computer system and its related devices both internal or external
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what is software

A
  • general term covering all programs that run on a computer system
  • falls into broad categories like application, system and utility
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is off the shelf software?

A
  • Software that is available to be purchased from a company as a full working package.
  • tends to be general application software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

list disadvantages of bespoke software (custom written)

(benefits of off the shelf software)

A
  • you have to wait for the product to be made
  • will cost a large amount of money to produce
  • has not been ‘tried and tested’
  • there are likely off the shelf alternatives
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does an antivirus / anti-malware do?

A
  • helps to keep computer + files safe by detecting and removing malicious programs which have been designed to harm a computer.

examples of malware (viruses, trojans, spyware, worms)

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

What does a disk defragmenter do?

A
  • reorganises files on hard disk, putting fragments of files and free space together so that files are stored contiguously in disk memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what does defragmentation reduce the movement of and why is this beneficial

A
  • reduces movement of read/write head across disk surface –> speeds up file access
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What do compression utilities do?

A
  • Reduces size of a file so it takes up less space and so can download faster over the internet
  • data is either lost (reduces quality of image/audio file) or represented in different way using binary (retains original data in new compressed format)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What does a file manager do?

A
  • manages/organises data storage. Allows files, directories and folders to be accessed, created, moved, copied, renamed and deleted.
    – Manage the storage of software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

what is file repair?
and what is a file repair facility often built into?

A
  • files can become corrupt / damaged
  • file repair software attempts to rectify these issues and restore file to original working state
  • a file repair facility is often built into certain apps as well as being a separate, dedicated software tool found in most OS’s or from independent vendors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What do backup utilities do?

A
  • Provides way to make a copy of data/files and store them on different storage medium so that if original is lost / corrupted in some way, it can be retrieved.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

how does backup software often come

A
  • bundled with OS but can also be purchased by separate vendor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q
  1. what 3 ways can backups be set up
  2. what are the 2 types of backups
A
  1. set up to be manual, automatic or scheduled
  2. full and incremental backups
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

what is the purpose of the utility software: hardware drivers

A

– Purpose: Enable peripheral and OS to communicate
– Uses: To configure hardware e.g. used to install a new keyboard, mouse or printer

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

What is proprietary / closed source software?

A
  • software which is designed by a company and is supplied pre-compiled.
  • source code isn’t available so cant be modified (protected by Copyright Designs and Patents Act)
  • e.g. Microsoft word
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Give pros of closed source software.

A
  • Lots of documented support (support by developers who don’t release source code)
  • More likely to be free of bugs
  • Companies have a lot of resources providing security
  • more polished user friendly product
  • creators have financial gain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Give drawbacks of closed source software.

A
  • Software cannot be altered to make it more suitable for a specific user’s needs
  • Software costs money (required to have license per user or computer)
  • You have to wait for the company to update the software to fix bugs
  • demand from community for developments (creators)
  • piracy issues (creators)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What is open source software?

A
  • Software that is free for anyone to download + edit as its supplied with source code.
  • installed on any number of computers
  • can be developed by a community (support provided by community) and tweaked to suit an individual user’s needs.
  • e.g. Linux
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Give pros of open source software.

A
  • FREE!
  • community modification (code modified = more suitable for a specific user’s needs)
  • You do not have to pay for newer versions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Give drawbacks of open source software.

A
  • Lack of documented support
  • creators = little-to-no financial gain
  • Can be less user-friendly to use
  • Potential security issues with downloading code which could be edited by anyone
  • Quality of code can vary –-> more prone to bugs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What is general purpose software?

A
  • Off the shelf software which contains many features that will satisfy every potential users needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Give benefits of general purpose software.

A
  • Well tested
  • Relatively cheap
  • Lots of documentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Give a drawback of general purpose software.

A
  • Large file size as it contains so many features
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

What is special purpose software?

A
  • Can be off the shelf (such as SIMS for schools) or bespoke.
  • Software that is designed only for specific users but not average user.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What is bespoke software?

A
  • Software that is designed by a company exclusively for a user/organisation so that it can fulfill their exact needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Give a benefit of bespoke software.

A
  • guaranteed to fulfill the exact needs of the user.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Give a drawback of bespoke software.

A
  • expensive and time consuming to develop.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Give a benefit of off the shelf special purpose software.

A
  • available immediately and is cheaper than bespoke.
41
Q

Give a drawback of off the shelf special purpose software.

A
  • may not fulfill the exact need of the user and may contain many extra features, increasing file size.
42
Q

what is translation

A
  • process of converting source code to machine code
  • done by interpretation or compilation
43
Q

what is source code

A
  • descriptive and easy for us to understand, read, maintain and debug.
  • can be easily translated into machine code so that it can be processed by the CPU.
44
Q

What is a translator?

A
  • piece of software which translates code from one language to another, usually from a high level language (source code) to machine code since CPU can only understand binary machine code to be bale to process it.
45
Q

What are High-level languages

A
  • e.g. Visual Basic, C++, and Python
  • used to write programs that are independent of computer architecture they will run on.
46
Q

To move from high-level source code to executable machine code source code is required to be what

A
  • high-level source code –> executable machine code requires source code to be translated.
47
Q

What are the three main types of translator?

A
  • Compiler
  • Interpreter
  • Assembler
48
Q

what is an assembler?

A
  • converts low level assembly language (basic commands and operations) directly into machine-executable code (1 to 1 relationship) that can be recognised by a specific type of processor
49
Q

advantages of an assembler / assembly language

A
  • mnemonics easier to remember for when coding in assembly language
  • memory-efficient
  • speed of execution is faster
  • hardware orientated
  • requires fewer instructions to accomplish same result
50
Q

disadvantages of an assembler / assembly language

A

-long programs written is assembly language cant be executed on small computer
- takes lots of time to code program as it’s more complex in nature
- lack of portability between computers of different makes

51
Q

what is machine code

A
  • code that the processor understands
  • made of a opcode and operand
52
Q

what is Machine-executable code

A
  • Machine-executable code is processor dependent meaning that same source code has to be translated into different object codes for processors that use different instruction sets.
53
Q

what is byte code

A
  • Byte code is the intermediate code, partially translated by an interpreter so it can be compiled and executed by a VM
54
Q

why is bytecode being partially translated advantageous

A
  • partially translated to improve portability between different hardware
55
Q

fill the gaps:

same ________ can be created from different _____________ meaning same ____________ can be used to run bytecode regardless of o________ c_____ l____________

A
  • bytecode
  • languages
  • translator
  • original coding language
56
Q

what does translator check before deciding how to translate bytecode and why?

A
  • translator checks hardware before deciding how to translate so it can be executed on that computers hardware
57
Q

why does bytecode run slower than fully translated code

A
  • it still needs further translation
58
Q

what is object code

A
  • Code that has been translated into machine code, without its required library code.
59
Q

what is executable code

A
  • Fully translated code, ready to be processed by a CPU. (combination of object code and library code)
60
Q

What does an interpreter do?

A
  • translates one line of source code at a time into machine code as program running
  • each line executes before translating next line
61
Q

Give an advantage of interpreters

A
  • easier to debug code as the program runs up to the line where the error is. also allows beginners to try commands as it will pause if its an error
  • code doesn’t need to be recompiled when changed
  • beneficial for developers in testing stage (errors identified on line they occur)
62
Q

disadvantages of interpreters

A
  • translation software required at run-time
  • slower speed of execution (one line translated at a time)
  • code is not optimised
  • source code is required
63
Q

Give some examples of interpreted languages.

A

Python, JavaScript, Ruby

64
Q

What does a compiler do?

A
  • Translates entirety of source code into object code and then machine (executable) code to be processed by CPU
65
Q

Give an advantage of compilers.

A
  • When program has successfully compiled, the executable file will not need to be translated again
  • useful if you wish to create standalone executable file to enable it to be run on multiple platforms
  • faster execution times, as no further translation required (no need for translation at run time)
  • code usually optimised
  • high level language source code easier to write
66
Q

Give a disadvantage of compilers.

A
  • can be difficult to find bugs in compiled code as it is compiled all at once. (less effective at highlighting syntax errors)
  • wont run until error free
  • code needs to be recompiled when changed
  • designed for specific type of processor
67
Q

Give some examples of compiled languages.

A
  • C++
68
Q

compiling process stages. what are they?

A
  • Lexical Analysis
  • Syntax Analysis
  • semantic analysis
  • Code Generation & Optimisation
69
Q

What is compilation

A
  • Compilation is the translation process that produces executable object code from source code through stages including lexical and syntax analysis, code generation and linking library routines.
70
Q

what has to have happened before stages of compilation occur

A
  • source code must be created
71
Q

what is the purpose of each parse in order to get further from source code and closer to machine code

A
  • each parse is designed to carry out set of tasks and prepare code for next stage of compilation
72
Q

what is lexical analysis

A
  • comments and white spaces used to improve readability + indent code are removed by compiler as they aren’t necessary for executable code (this happens as a result of lexer)
  • lexer converts lexemes in source code into series of tokens –> each element is tokenised meaning its purpose is identified
  • each token added to a symbol table used by compiler to keep track of all of the elements identified in the program.
73
Q

name some different token classes

A
  • identifier (function or variable name)
  • keyword (if, else, function, return)
  • separator ()
  • operator (+ * / %)
  • literal (hello world)
  • number (0,6,8)
  • quote (“ “)
  • bool (True False)
  • datatype (int, str)
74
Q

what are lexemes

A

individual items broken into tokens e.g user_name or =

75
Q

what is syntax analysis

A
  • Once tokens assigned to the code elements, compiler checks that the tokens are in correct order + conform to rules of programming language used.
  • All programs have to be written in accordance to languages rules otherwise translator would be unable to translate code.
  • compiler analyses the syntactical structure of input checking that code has valid syntax + it produces a list of any syntax errors found.
  • Syntax analysis will produce an abstract syntax tree (AST) to represent program which will enable it to trace through the opcodes and operands, processing code in the correct order.
76
Q

what is an Abstract syntax tree (AST)

A
  • created during syntax analysis stage
  • maps structure of program dropping brackets, semicolons, etc. that were used by programmer.
  • Every language produces a different AST depending on its syntax.
77
Q

If required tokens missing from AST or in wrong place, what does compiler do

A
  • If required tokens missing from AST or in wrong place, the compiler will report an error.
78
Q

what is the purpose of an AST

A
  • map program’s structure which will enable it to trace through the opcodes and operands to process code in correct order.
79
Q

what is Semantic analysis

A
  • semantic analysis is used to flag/highlight logic errors
80
Q

what is Code generation

A
  • Following prior stages, separate program is created that is distinct from original source code.
  • The code that is generated = object code
  • During this stage, compiler converts AST into object code meaning all source code is translated into object code
81
Q

what stage of compilation provides the major distinguishing feature between compilation and interpretation and why.

A
  • Code generation = major distinguishing feature between compilation and interpretation since interpreters don’t produce a separate executable file.
82
Q

what is Code optimisation

A
  • The optimiser identifies redundant (lines that have no impact on program) or repeated code + remove or rearrange code as necessary
  • This ensures it runs efficiently + faster so that it minimises the amount of memory it requires to run.
83
Q

when can code optimisation happen and what does it depend on

A
  • Optimisation can happen during or after code generation, depending on the compiler.
84
Q

what do High-level languages come with pre-written and where relevant precompiled?

A
  • libraries.
85
Q

what are Libraries

A
  • pre written, ready-compiled and tested collections of code that allows programmers to import functionality into their own programs (give you access to specialist functions)
86
Q

give example of library in python

A
  • math library (.factorial, .pi, .trunc, .remainder, .sqrt etc)
87
Q

How are libraries used to compile code?

A
  • code to perform complex tasks already written, compiled + packaged as a library
  • so, compiler can simply access this instead of recompiling
88
Q

What are the advantages of using libraries?

A
  • save time, code is not rewritten
  • pre-compiled so are optimised to run quickly
  • Library code from reliable source has usually been thoroughly tested –> efficient + reliable.
  • quick + easy to use. programmers aren’t required to have expertise to use
89
Q

What are the disadvantages of using libraries?

A
  • adding functionality or making specific tweaks can be difficult / impossible
  • you can become “black-boxed” (function usually hidden from / mysterious to user) from actual implementation
  • you have to trust developers will continue to maintain library + tested it completely
90
Q

someone programming in windows OS can call what library. And to do what?

A
  • Dynamic Link Libraries
  • contains sub-routines written to carry out common task on windows OS like “save as”
91
Q

what is a linker

A
  • software tool used to combine compiled code with necessary library code during compilation, resulting in a single executable file (executable code)
  • linker resolves all of the cross-references between the several object code files and creates a single executable file.
92
Q

why are linkers required

A
  • a programmer may have made use of libraries so linker is required to link library code to object code to produce executable code which can be processed by CPU.
93
Q

what are static linkers

A
  • link + load the various library code to program’s main code to produce program’s executable file during compilation
  • results in large executable program file but all the code needed to run the program is always present.
94
Q

what are dynamic linkers

A
  • OS links up library code when it is required at runtime (it will not be compiled together with program)
  • results in smaller size of compiled machine code
  • but if dynamic library changes or required linker is not present on host computer when certain library code is required, program cannot run.
95
Q

for dynamic linking, where are compiled versions of required libraries stored?

A
  • compiled versions of required libraries stored on host computer
96
Q

what are Loaders

A
  • Part of OS that is responsible for loading executable program file into memory (copies executable code into RAM) as part of execution stage, ready to be run.
97
Q

if using dynamic linking, what must loaders also be responsible of doing

A
  • loaders will be responsible for loading required libraries into memory
98
Q

which application emulates the use of loaders and in what way

A
  • process of loading can be emulated by the LMC
  • assembly code in left-hand pane is loaded into available memory locations by loader.
  • Once program halted, the memory locations are freed for use by other programs