2.2 Applications Generation Flashcards
What are 2 types of software?
applications software
systems software
What is applications software?
Software designed to be used by the end-user in order to perform specific tasks.
What are some examples of applications software?
desktop publishing
word processing
spreadsheets
web browsers
graphics design
What is systems software?
Low-level software that is responsible for interacting with hardware and providing a platform for applications software to run on.
What are some examples of systems software?
library programs
utility programs
operating system
device drivers
What is utility software?
Systems software that has a specific function linked to the maintenance and upkeep of the operating system.
What are some examples of utilities?
compression software
defragmentation software
antivirus software
backup software
device drivers
What does compression software do?
Compresses/decompresses files. Compression of files increases file transfer speeds and reduces the storage space they take up by removing unnecessary data.
What does disk defragmentation software do?
Rearranges the contents of the hard drive so that programs are stored contiguously and there are blocks of free space. This speeds up read/write times.
What does antivirus software do?
Detects potential threats to the computer, alerts the user and removes them.
What does backup software do?
Creates copies of important files in case they are lost during a malicious attack or power cut.
What is open source software?
Software where the source code is distributed with the program and available for anyone to use.
What is closed source software?
Software where the source code is privately owned and you must hold an appropriate license to use the software.
What are the advantages of open source software?
can be modified and improved by anyone
can be modified and sold on or modified to your own specific needs
technical support from online community
What are the disadvantages of open source software?
online support may be insufficient or incorrect
lower security as the software isn’t developed in a controlled environment
What are the advantages of closed source software?
typically well tested and regular updates
company that owns the software may provide user manuals and expert support
high levels of security as developed in a professional environment
What are the disadvantages of closed source software?
license may restrict how many people can use the software at once
users cannot modify the software to their individual needs
What is a translator?
A program that converts high level source code into low level machine/object code which can be executed by the computer.
What are 3 types of translator?
compiler
interpreter
assembler
How do compilers work?
They translate the high level code into an executable file made up of machine code all at once.
What are the advantages of compilers?
the executable file can be ran without a translator
the executable file can be ran quickly many times as there is no need for further translation
What are the disadvantages of compilers?
initial compilation process may take long and doesn’t execute the code
if changes are made to the source code, the whole program must be recompiled
the executable file can only be run on certain devices as the machine code is specific to computer architecture
How do interpreters work?
Translate and execute code line by line and stop and produce an error message if necessary.
What are the advantages of interpreters?
Instantly compile code
useful for testing code and pinpointing errors
code can be executed on a range of platforms as long as the right interpreter is available so the code is more portable
What are the disadvantages of interpreters?
code must be translated every time its executed
code requires an interpreter in order to run
What do assemblers do?
Translate assembly code to machine code on a (almost) line to line basis.
What is assembly code?
Low level code that is the ‘next level up’ from machine code. This code is still specific to computer architecture and the processor’s instruction set.
What are the 4 stages of compilation?
lexical analysis
syntax analysis
code generation
optimisation
What happens during lexical analysis?
input - source code
comments and whitespace are removed
variables and subroutines are stored in a symbol table
keywords are converted into a series of tokens
output - series of tokens and symbol table
What happens during syntax analysis?
input - series of tokens and symbol table
code is checked to ensure it follows the syntax rules of the language
tokens are used to produce an abstract syntax tree
if any syntax rules are broken, errors are reported and the compilation process stops
output - abstract syntax tree and symbol table
What happens during code generation and optimisation?
object/machine code is generated from the abstract syntax tree
redundant parts of code are detected and removed to make the code take up less space in memory
repeated sections of code may be grouped and replaced to make the code execute faster
What is a library?
A precompiled external program that can be incorporated within other programs.
What are the advantages of libraries?
typically ready to use and error free
saves time developing and testing modules of code
can be reused within multiple different programs
What are the disadvantages of libraries?
need to understand the different functions in the library and know their names
if the library contains bugs, you can’t fix them and must wait for the developers of the library to
What is a linker?
A piece of software that is responsible for linking external libraries/modules that have been included within a program’s code.
What is a loader?
A program that retrieves an external library from a given memory address.
What are 2 types of linker?
static
dynamic
How does a static linker work?
Libraries are directly added into the program increasing the file size but meaning external library updates will not impact the program as it uses a specific version.
How does a dynamic linker work?
The address where a library is stored is added to parts of the program where the library is referenced. When the program is run, the loader retrieves the library so that the code can be executed.