1.2.2 Flashcards
What is applications software?
Software which is designed to be used by the end user to perform a task
What are some examples of applications software?
- word processor
- web browser
- spreadsheet software
What is systems software?
Software which is responsible for the smooth running of a computer, interacting with hardware devices and generally providing a platform for applications software to run
What are some examples of systems software?
- OS
- device drivers
- utility programs
What is utility software?
Software which maintains consistent, high performance of the computer by completing maintenance tasks
What are some examples of utility software?
- compression
- disk defragmentation
- encryption
- antivirus
- backup
- automatic updatint
What is source code?
The code written by the programmer before it has been compiled
What is open source software?
Software which can be used by anyone without a licence and users have access to the source code
What is closed source software?
Users must have an appropriate licence to use the software and they do not have access to the source code
What are the advantages of open source software?
- anyone can modify and improve software
- tech in cal support provided by online community
- can be modified and sold on
What are the disadvantages of open source software?
- less secure
- online support may be insufficient
What are the advantages of closed source software?
- secure
- regular, thorough, well-tested updates
- expert support provided
What are the disadvantages of closed source software?
- users cannot modify/improve software
- number of users that can access software is limited
What is a translator?
A program that converts high-level source code into low-level object code
What are the three types of translator?
- compiler
- assembler
- interpreter
What is the compiler?
A program that converts high level code to machine code all at once
What are the advantages of using a compiler?
- can be run without a translator present
- all errors picked up at start
What are the disadvantages of using a compiler?
- initial compilation process slow
- specific to OS/ processor
What is an interpreter?
A program that translates and executes source code to machine code line by line
What are the advantages of using an interpreter?
- not OS/ processor specific
What are the disadvantages of using an interpreter?
- slower to run
- requires an interpreter to run
What is an assembler?
A program that translates assembly code to machine code
What are the 4 stages of compilation?
- lexical analysis
- syntax analysis
- code generation
- code optimisation
What happens during lexical analysis?
- all white space and comments are removed
- all keywords/variable names are replaced with tokens
- tokens put into symbol table
What happens during syntax analysis?
- the tokens are checked agains the grammar rules of the language
- anything that breaks rules is flagged up
- abstract syntax tree is created
What happens during code generation?
- machine code produced using abstract syntax tree
What happens during code optimisation?
- code checked for any areas which can be made more efficient
- redundant code removed
What are linkers?
A piece of software which links external modules and libraries included in the code
What are static linkers?
The modules and libraries are added directly into the main file
What are dynamic linkers?
The address of the modules and libraries are referenced in the main file
What is a loader?
A piece of code which retrieves the library or module from the given memory location
Why do we use libraries?
- they are error free
- readily compiled
- save time
- ready to use
- don’t need to reinvent the wheel