[Unit 1.2.2] Applications Generation Flashcards
applications generation
define “applications software”
allows user to perform a task or produce something
what are the 8 different applications
word processors
spreadsheet software
presentation software
database software
desktop publishing software
image editors
web browsers
games
what are the advantages of applications becoming more cloud based
dont worry about installation
dont worry about updating software
access app anywhere
can collaborate on document with multiple users.
define “utility”
program has one specific purpose - usually maintenance. (built in or stand alone)
what are the 9 different types of utility programs
defragmentation
anti-malware
disk checkers
disk formatters
partitioning software
compression software
file explorers
backup utilities
encryption software
what is defragmentation
file split up in multiple sections, slows computer
defragmentation software groups each file contiguously. and groups free space together at the end
what is anti-malware software
detects and blocks threats
what are disk checkers
check for corrupted files
what are disk formatters
prepare device to store files, erasing previous content
what is partitioning software
dividing up space so OS sees as separate devices
what is compression software
reduce data in files by recognising patterns that are repeated.
save space, faster to transmit
what are file explorers
manage data storage
allow files to move,copy,delete, rename
what are backup utilities
automatic backups of specified data
copied to a different location in case original is corrupted
ensures important data is safe
what is encryption software
data scrambled into cipher text
vital for transmitting personal data over network.
define “closed source software”/”proprietary software”
executable machine code file distributed.
by commercially sold software
what are the advantages of closed source software
more polished
customer support
reliability
warranty/guarantee
what does “more polished” mean when talking about open/closed source software
easier to install
easier to use
more attractive UI
what are the disadvantages of closed source software
expensive
users cant change code
bugs only fixed by company
older versions not maintained
define “open source software” (OSS)
publicly available source code that can be modified and distributed
what are the advantages of OSS
free
user can add features
user can fix bugs
software rapidly developed
older software supported
what are the disadvantages of OSS
doesn’t come with warranty/guarantee
doesn’t have customer support
may not get regular updates
less polished
define “low level language”
specific to instruction set of processor.
they are not portable
low level of abstraction
define “portable” in terms of translators
can be used on different types of CPUs
define “high level language”
human readable, high level of abstraction
code is portable
one line is multiple lines of machine code
define “translator”
software converts source code into machine code
what are the three types of translator
assembler
compiler
interpreter
what are the two parts to machine code
opcode
operand
define “opcode”
tells CPU what operation to do (add store etc)
define “operand”
tells CPU what data to use in operation
define “assembly code”
uses mnemonics to represent opcodes
1:1 line ratio
not portable
fast and efficient as high control over CPU and hardware
what is assembly code used for
embedded systems
device drivers
define “assembler”
program converts assembly to machine code
define “compiler”
whole program converted from high level language to machine code in one go
creating executable machine code file
what are the advantages of a compiler
runs faster (only translates once)
executable code cant be read (closed source software)
what are the disadvantages of a compiler
must wait for entire program to translate
if change is made, recompile whole program
executable code is specific to instruction set
define “interpreter”
translates source code one line at a time
what are the advantages of an interpreter
errors shown line by line
errors reported as encountered (dont wait for whole program to translate)
run on any platform (that has interpreter)
what are the disadvantages of an interpreter
must have interpreter installed
interpreter takes up memory
translating line by line is slower than running compiled machine code
source code must be available to user
what are the four stages of compilation
lexical analysis
syntax analysis
code generation
code optimisation
what is lexical analysis stage of compilation
source code read character by character and broken into tokens.
identifies basic syntax errors (misspelled key words)
what is removed during lexical analysis
comments and white space
what is syntax analysis of compilation
source code checked by parser to ensure it follows rules of programming language.
if an error is found it is added to the compiler report
what does the parser produce during syntax analysis
Abstract Syntax Tree (AST)
what is the purpose of producing a AST during syntax analysis
removes unnecessary syntax like parenthesis
simplifies code optimisation
helps understand hierarchy of operations
what is the code generation stage of compilation
compiler converts source code into object code
what is the code optimisation stage of compilation
compiler tweaks source code to improve performance
when does code optimisation happen during compilation
throughout the entire process
what does code optimisation, optimise for during compilation
optimises for speed OR memory efficiency.
what is a library
collection of pre-written code developers reuse
what are the advantages of libraries
no need to rewrite code
already tested and debugged
app remains small
some functionality requires specific expertise
what are the disadvantages of libraries
library must be well written and robust
specialist libraries can be expensive
if library is missing program will crash
what is a linker
software that combines libraries with object code to create a single executable file
what is an API
application programming interface
allows different computer programs to interact with each other (how you use libraries)
how does a linker work
when compiled, object file contains references to libraries.
linker resolves these references
what is a static linked library
library code put directly into program
end user doesn’t have to have library installed
increases the file size
what is a dynamic linked library
libraries not added to code.
libraries stored by OS and loaded when program runs.
makes program smaller
user must have library installed
what is the loader
part of the OS that’s responsible for loading the executable file into memory from secondary storage.