1.2.2 System Application Generation Flashcards

1
Q

What is Software

A

The programs / sets of instructions that run on a computer system.

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

What are the 3 categories that software falls into

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

What is Application Software

A
  • Application Software is any software package that carries out a task and/or aids the user in producing something on a computer
  • It is designed to be used by the end-user to perform either generic or specific tasks (desktop publishing, word processors, spreadsheets)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why pick 1 application over the other

A
  • Easy of use
  • Cost
  • Speed
  • Hardware
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is source code

A
  • Source code is produced by developer’s and defines what they want their software to do
  • Easy to understand, maintain and debug for humans not computers
  • When software is described as open or closed it refers to if it is public or not
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is system software

A
  • Low level software that is responsible for running the computer system smoothly, interacting with hardware and generally providing a platform for applications to run
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is open-source software

A

Source code is freely available… …for others to amend / examine / recompile

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

What is closed- source software

A
  • Protected by the copyright Design and Patents Act
  • Users cant modify the software
  • Usually paid for and licensed per user or per computer
  • Tested by developer’s prior to release, although it may run better programs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the benefits of open source for the user

A
  • Software is free
  • Wide community modification and support and improved by anyone
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the benefits of open source for the creator

A
  • Gets their software out to the wider community
  • This means that a lot of the core functionality they need is already available (1) so the company just has to make amendments/additions specific to their system (1) saving time and money (1).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the disadvantages of open source software for the user

A
  • Can be poorly supported
  • Some features might not be well tested
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the disdvantages of creators for open source

A
  • Little-to-no financial gain
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the advantages of closer source for the creator and the user

A
  • Well supported tested and professional built product
  • They recieve an income for their product
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the disadvantages of closed source for the user and creator

A
  • Cost or ongoing subscription fee
  • Constant demand from community for more features and improvements
  • Piracy issues
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a knowledge based system

A
  • Using a knowledge based system, a user can interrogate a vast knowledge base to find a solution
  • The user enters the information they already have, and the knowledge based system infers an answer
  • If the system cant reach a conclusion, it requests more information
  • This process is continued until either the system has a high degree of confidence that it knows the solution or it has exhausted every line of inquiry that it doesnt know the solution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the different parts that make a knowledge based system

A
  • Knowledge base : a database containing expert knowledge
  • Inference Engine : Attempts to work out the answer to the user’s query by using the rule base
  • Rule Base: Links knowledge together through facts
  • User Interface: Allows the user to communicate with the system (HCI) stands for human computer inteface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What 3 decisions is the inference engine responsibke for

A
  • Whether it has enough information to arrive at an answer
  • Whether it requires more information
  • Whether it cant reliably come up with an answer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What does CAD stand for and what is it

A
  • Computer Aided Design
  • Enables designers to try out different designs for a product before physical production
  • Allows the designer to place parts together, scale to test how the design might react in the real world without making physical prototypes e.g designing a car.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What does CAM stand for and what is it

A
  • Computer Aided Manufactuing
  • Machines make products rather than people making them (small error margin)
  • Specifications are fed into CAM systems, which drives an assembly line
  • The specification say exactly what the product looks like, its materials and the steps required to assemble it
  • It relies heavily on sensors and actuators
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is utility software

A
  • A piece of software … – … with one purpose … – usually to do with the upkeep / maintenance of a computer.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the 4 main areas that utility software can be split into

A
  • File manager utility software
  • Compression software
  • Task Manager
  • Anti-virus Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What does file manager do

A

–Manages data storage / organises data storage

– Used for the deletion / sorting / moving / copying / creation of files / folders – Manage the storage of software

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

What is compression software

A
  • Reduces software and the overall size of files
  • Will complete this with lossless compression
  • Compressed files are unreadable until uncompressed by the same utility
  • A number of different files, folders and executables can be comprssed together, to create a single compressed file. The compression utility will retain files, details and structure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is Anti-Virus software

A
  • Anti-virus protects the system, scans system, alerts the user and deletes viruses found
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What do Task Managers do

A
  • Allow the user to view the processes currently running on a system and see what resources each one is using.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What are translators and what are the 3 types

A
  • The term translator is used to cover all the types of software that converts code from 1 form to another (high level source code into low-level object code)
    • Compiler
    • Interpreter
    • Assembler
27
Q

What is a compiler

A
  • Converts source code written in high-level languages into object code then machine code all at once after carrying out a number of check and errors.
  • Whole code translated before it is run
28
Q

What is an interpreter

A
  • It translates each line of code into machine code, line by line
  • Takes the first line of machine code, translates it and executes it before moving onto the next
29
Q

What is an Assembler

A
  • Assemblers translate assembly code into machine code
  • Each assembly code instruction has a 1-1 mapping with machine code instruction (1 instruction = 1 line of machine code)
30
Q

What are the 2 phases of assembly code into machine code. What is the work needed to be done before the CPU can execute

A
  • The assembly code contains variables, labels and are converted into machine code in a 2 phase process
    • Phase 1: Labels and variables are converted into memory addresses and stored in a symbol table
      • Variables map to the memory location that s used to store the value, lables map to the exact position of the instruction it needs to jump to
    • Phase 2: Converts the mnemonics into their binary representation
31
Q

What is a symbol table

A
  • A symbol table is produced as the assembler works through its first phase
  • In order to store a variable (COUNT) an address must be set up in the next available memory address after the prgram
  • When a label is encountered, the memory address of where it was defined is placed in the symbol table
  • Once it has been produced the assembler goes over the code and replaces every variable/label with its memory address
32
Q

As programmers what would we like a our source code to be like

A
  • Close to english
  • Easily read, modified and interpreted by humans
33
Q

What are the 4 main stages of compiliation

A
  • Lexical Analysis
  • Syntax Analysis
  • Code Generation
  • Code Optimisation
34
Q

What happens in Lexical Analysis (First Stage)

A
  • Each line is read and the compiler converts lexemes into a series of tokens
  • A pair is created: token (type of data lexeme is) (variables, constants) and the lexeme (component of source code).
  • White space (extra lines) are stripped out. Encountering white space, operator or symbol - lexeme is complete
  • It then checks if the lexeme is valid using a predefined set of rules that allow every lexeme to be indentified as a valid token
  • Variables, and subroutines stored in symbol table
35
Q

Explain what type of software you would classify compression as

A
  • A compression program is a utility. It is a small program with 1 purpose and helps with system upkeep
36
Q

State 3 roles of the Operating System

A
  • Manages Hardware of the system
  • Manages programs installed and being run
  • Manages Security of the system
  • Provides an interface between the user and the computer
37
Q

What happens in Syntax Analysis (second)

A
  • Checks if tokens are in the right order and follow rules of language
  • Does this by analysing token stream against production rules to detect any errors and builds an abstract syntax tree (abstract syntactic structure of source code) - follows syntax diagrams to check everything is correct
    • When an identifier is added, symbol table is checked to see if it exists
    • Information from AST is used to update data type of identifiers
  • Where it breaks the rules of the language errors are generated. If no rules are broken then it’s passed on to the next stage…
38
Q

What is syntax

A
  • The rules governing the arrangement of words and phrases to create well-formed sentences
39
Q

What is the Machine Code Generation Stage of Compiliation (third) First part of this stage

A
  • Can only start when AST is made (no errors)
  • Is done by mapping parts of the AST to blocks of machine code - blocks are known as machine templates
  • The compiler will look for common tasks and match to machine code templates
  • Code mapping is done by finding common AST patterns and matching to blocks of machine code - continues until whole tree is mapped
40
Q

What is the Machine Code Generation (2nd part of this stage

A
  • Once we are at a low-level language, can make use of architecture of CPU such as general registers (to minimise memory access)
  • General registers are assigned to parts of the code
  • There arent enough registers - will be recycled as program is executed
  • Machine code generation must decide to what registers are assigned to which instructions
41
Q

What is Machine Code Optimisation

A
  • It attempts to reduce the execution time of the program and use little memory as possible by:
    • Spotting redundant instructions and producing object code that achieves the same effect as the source program but may not by same means
    • Remove subroutines that are never called
    • Removing variables and constants that are never referenced
    • Removes the number of jumps/branches code makes
42
Q

What are library modules

A
  • Libraries are compiled, error free pieces of software written by expert programmers so save time developing and testing modules
  • They contain useful routines which perform common tasks such as sorting or searching encryption and graphics
43
Q

Why does using a library help programmers

A
  • Relatively error free/ has already been tested
  • Ready to use / saves time/already been written
  • Used multiple times / common tasks / reduces repeated code
  • Programmer expertise
  • Different source languages
44
Q

What are the drawbacks of library modules

A
  • May (significantly) increase size of compiled file
  • as library contains many routines that aren‘t being used.
  • Not written by the programmer …so introduces uncertainty / require further testing /programmer needs to spend time familiarisingthemselves with it
45
Q

What are linkers

A
  • Links the main program to libraries ..can either include them in the final executablecode ..or get the executable code to point to the externallibraries
  • There are 2 methods to pull in the libraries it needs:
    • Static Linking
    • Dynamic Linking
46
Q

What is Static Linking

A
  • All required code from the libraries is included directly in the finshed machine code - results in large executable program files
47
Q

What is Dynamic Linking

A
  • Compiled versions of the required libraries are stored in the host computer.
  • The OS links the required code from the library as the prgram is running
  • This cuts down on the size of the compiled machine code, if the dynamic libraries change, the program may stop
48
Q

What are loaders

A
  • The loader is a small utility that will load the Direct Link Library (DLL) file on request , rather than linking it when it is being compiled
  • It is part of the OS 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
49
Q

What are the different software that can be used

A
  • Presentation Software - convey info. Used in meeting/educational.
  • Desktop Publishing - creation of publication. Templates.
  • Spreadsheet Packages - numbers/financial information
  • Word Processor
  • Drawing Packages - Allow user to draw images Bitmap: uses pixels, Vector: made of lines/shapes can be resized without loss of quality.
  • Database Packages: Data organised into tables, fields/records. Search and sort data quickly.
50
Q

What are the advantages of CAM

A
  • They will always produce products that are exactly the same
  • Dont get tired
  • Dont make mistakes (unless they break down)
  • Work 24 hours of the day
51
Q

Exam Question: How does an application differ from a utility

A
  • Application performs tasks for the user (rather than the computer)
  • Performs generic (rather than specific tasks)
52
Q

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
53
Q

What are the disadvantages of a compiler

A
  • Program will not run with syntax errors, makes it more difficult to write code
  • Code needs to be recompiled when the code is changed
  • Designed for a specific type of processor
54
Q

Advantages of an interpreter

A
  • Easy to write source code as the program will run and stop when it finds a syntax error
  • Code doesnt need to be recompiled when code is changed
55
Q

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
56
Q

Exam Question: Describe what is meant by the term Javascript (2)

A
  • A programming language that runs in a web browser (1)
  • that can be embedded into HTML (1)
  • with tag (1)
  • to add interactivity to a page (1)
57
Q

Exam Question: Explain how Linux being open-source would benefit the games company

A
  • This means that a lot of the core functionality they need is already available (1)
  • so the company just has to make amendments / additions specific to their system (1)
  • saving time and money (1).
58
Q

What is a device driver?

A
  • Used to configure hardware
  • To enable peripheral and OS to communicate
59
Q

What are the differences between open source and closed source?

A
  • – Open source has the source code freely available… – …
  • to amend/copy/redistribute/recompile –
  • Whereas closed source is distributed in binary form only/the source code is not made available…
  • – There are licensing conditions restricting the redistribution/there is no permission to amend the (program) code
60
Q

What is the purpose of the lexical and syntax analysis stages?

A
  • Lexical analysis is necessary to put the code into a format which can be read and processed (i.e. parsed) by the syntax analyser.
  • Syntax Analysis is necessary to ensure the code is valid in as much as it meets all the structural rules of the language. This guarantees it will run (though it might not do as expected and may still have occurrences of runtime errors).
61
Q

What is the purpose of the machine code generation and machine code optimisation stages?

A
  • Code generation is necessary to turn the code into a format that the processor can understand (i.e. binary machine code). The code optimisation whilst not necessary, does ensure the code runs quicker or using less memory.
62
Q

What is the purpose of a linker?

A
  • Linking is necessary to ensure the library code is incorporated into the final program.
63
Q

Exam Question: What is syntax analysis stage? (5)

A
  • Statements / tokens are checked
  • against the rules / grammar of the language
  • Errors reported as a list
  • Error diagnostics given
  • Detail added to symbol table… …eg data type / scope / address
  • Receives output from lexical analysis / passes code to code generation
64
Q

Exam Question: Early computers were programmed in binary machine code. Today most programmers use high-level languages. Explain why the programmer could use intermediate code for the final product.

A
  • Can be used in a virtual machine
  • Portable/ can be used on any machine
  • Protects the source code from being copied