SLR 05 - Application Generation Flashcards
What is Hardware?
The Physical parts of a system and related devices
What is Software?
The general term for all programs on a device
What are systems software examples?
Windows
Linux
Mac OS
IOS
What are examples of utility software?
Anti-Virus
Defragmentation
Backup
Compression
Firewalls
What are examples of applications?
Presentation
Word Processor
Spreadsheets
Communicaton
Apps
Multimedia
Editing
What is utility software designed to do?
Keep your coomputer safe and running
What are the types of backups?
Full or incremental backup systems
What is defragmentation software?
It reorganises files to reduce the movement of the read/write head on the HDD
What are the features of open source software?
Users can modify and distribute the software
It can be installed on any number of devices
It has community support
Users can access it’s source code
It may not be fully tested
What are the benefits and detriments for users with open source software
Software is free
It has poor support and it may not be well tested
What are the benefits and detriments for Developers with open source software
Software has better outreach
It has little financial gain
What are the features of closed source software
Its protected by the CDPA
No user modifications are allowed
It must be paid for and licsenced per user per device
It has developer support
It’s tested prior to release
What are the benefits and detriments for users with Closed source software
It is well supported
It is costly
What are the benefits and detriments for developers with Closed source software
They have financial gain from the product
They may have issues with piracy
In what type of code do programmers write?
Source Code
Why is source code used?
It is easy to understand, maintain and debug
What software translates source code into machine code?
Interpreter or Compiler
What software translates assembly code into machine code?
Assembler
What is the problem with compilers?
If code has an error the program won’t run
What is a library in programming?
Read-compiled programs that run as needed
What is a Dynamic Link Library
Is a set of subroutines to execute common windows tasks
What are the benefits of DLLs?
They’re quick and easy to use
They’re pretested so lack errors
They’re precompiled and therefore run quickly
What are the drawbacks of DLLs?
They’re hard to tailor to specific tasks
You must hope developers continue maintenance
What do linkers do?
They place the right address for code to return instructions from libraries
What are the methods for linkers?
Static linking or Dynamic
How does static linking work?
All required libraries are stored in the executable file, resulting in large files
How does dynamic linking work?
Libraries are stored on devices, the OS links code from the library at run-time
What are loaders?
It’s a part of the OS that loads executable files into memory, this includes libraries when using dynamic linking
What are the stages of compilation?
- Lexical Analysis
- Syntax Analysis
- Code Generation
- Code Optimisation
What happens during Lexical Analysis?
The code is scanned letter by letter, for every white space it decides a lexeme is complete
It checks that the lexeme is valid and turns it into a token
Tokens are inserted into a symbol table
What does Lexical Analysis remove?
White spaces and comments
What happens during Syntax Analysis?
Tokens are recieved as inputs
It checks the source code is in correct syntax
This checks and reports errors
It compiles line by line
What happens during Code Generation and Optimisation?
Machine Code is generated
It removes redundant instructions, subroutines and variables