SLR 5 Flashcards
Nature of Applications
What should you call an app?
Application software
What are some types of Utility Software?
Antivirus
Defragmentation
Backup
Firewalls
Compression
What should you call apps similar to Word?
Word processor
What should you call apps similar to PowerPoint?
Presentation Software
What are specific applications?
Apps with little use, only 1 purpose
Very specific for its set task
What should be said instead of
“I would recommend Microsoft word”?
“I would recommend a word processor”
What are generic applications?
Apps which can be used for multiple purposes
What are Utilities?
Software which is designed to keep your computer safe, keep it running efficiently and provide useful tools for managing files
What are some common types of Utilities?
File repair, backup, compression, defragmentation, anti-malware, file management and device drivers
What are the types of backup?
Full backup- creates copies of all data files
Incremented backup- copies any data that has been changed
Backups can also he manual, automatic or scheduled
What is defragmentation?
The process of reorganising your files on a hard disk, putting fragments of files and free space back together
Reduces movement of the read/write head across the surface of the disk, which speeds up file access
Can damage SSDs due to their lack of moving parts
What do translators do?
Takes our code, source code, and turns it into object/machine code
What is open source software?
Users can modify and distribute the software
Can be installed on any number of computers
Users can access the source code
May not be fully tested
What are the benefits of open-source software for users and creators?
Users- software is free, wide community modification is allowed
Creators- gets their software out to a wider community
What are the drawbacks of open-source software for users and creators?
Users- can be poorly supported, some features may not be well tested
Creators- little to no financial gain
What is closed source software?
Software protected by the copyright and patents act
Users can’t modify the software
Paid for by the user
Supported by developers who don’t share source code
Tested prior to release
What are the benefits of closed source software for users and creators?
Users- Well supported and tested, professionally made
Creators- they receive income for the product
What are the drawbacks for closed source software for users and creators?
Users- must be paid for
Creators- constant demand from the community for more features and improvements, piracy issues
What is a library?
Ready compiled and tested programs which can be called when needed
What is a Dynamic Link Library (DLL)?
A library that contains subroutines written to carry out common tasks on the OS
What are the benefits of libraries?
Quick and easy to use to add to your code
Pre-tested, so you can be relatively sure they’re free of errors
Pre-compiled so they typically are optimised to run quickly
What are the drawbacks of libraries?
Adding functionality or specific tweaks can be difficult or impossible
You can get black boxed from your own implementation, so you can see how efficient it is because you can’t view it
Must trust the developer will maintain the library
What are linkers?
Responsible for putting the appropriate machines addresses in all the external call and return instructions so all modules and the external library routines are linked together correctly
Also links any separately compiled subroutines into the object code
What are two methods linkers use?
Static linking - implements required code into the object code, can result in large executable files
Dynamic linking - the OS links required code while the program runs to decrease the file size
What is a loader?
A loader is a part of the OS that loafs the executable program file into the memory, which allows it to be ran
Responsible for loading the required libraries into the memory
How is source code translated into machine code?
The 4 stages of compilation
What are the 4 stages of compilation?
Lexical analysis
Syntax analysis
Code generation
Code optimisation
Each phase prepares the code for the next stage of compilation
What happens in lexical analysis?
A lexer transforms lexemes in the source code into tokens by scanning each word letter by letter
A white space decides when a lexeme is complete
A token looks like this:
[tokenclass:token]
Once the token stream is created those tokens are placed into an input table
What happens in syntax analysis?
Receives inputs in token form and analyses the structure of the input, checking if the syntax is correct or not
An abstract syntax tree is built as a result
What happens in code optimisation?
Attempts to reduce execution time of the code by:
Takes redundant code and rewrites it in a new way with the same outcome
Removes subroutines that are never called
Removes variables and constants that are never referenced
However, compilation time will increase due to this process