Please enable JavaScript.
Coggle requires JavaScript to display documents.
Application generation (stages of compilation (lexical analysis (all…
Application generation
application software
software: any program which runs on any computer
application software
software which allows a user to carry out a task or aid them in producing something on a computer
examples
word processors
desktop publishing
spreadsheets
data managements
slideshow & presentation
multimedia & video editing
photo & graphics manipulation
communications, chat & IM
social networking
Email Clients
web browsers
gaming software
factors for selecting certain application software
speed
cost
hardware
memory requirements
convience
utility software
tends to be small software for very specific purpose
mainly used for maintenance of a computer system
examples
antivirus
disk defragmentation
compression
file maagers
fire walls
backing up
sources of software
open vs close sourced
close source is expensive while open sourced is very cheap or free
propriatary is more secure
open source is viable to attack
open source software can have thousands of developers
closed source has a dedicated team of developers
open source software can be less polished
the close source has a better finished
closed source
any software which is supplied pre-compiled the source code is not made available
often copyrighted by the company
proprietary software
property of a certain company
example
word, excel, power point
open source
any software which is supplied with its original source code
allowed to be redistributed as long as it is open source
most open source software is free of charge
encourages mass user development and creativity
example
Linux is an open source operating system
translators
assemblers
turns low level assembly language directly into machine code
one to one relationships
assembly code is not very portable (processor specific)
interpretors
high level code to object code or machine code
one to many relationship
takes high level code and turns it straight into machine code and then runs it
good for running the program immediately and will stop when an error occurs
needs access to whole source code (can run slowly)
compilers
high level code to object code or machine code
one to many relationship
takes the entire program and turns it into object code
object code can be distributed to any compatible system
stages of compilation
lexical analysis
all white space removed (tabs comments spaces)
code remaining turned into tokens
symbol table is created
syntax analysis
syntax of program is checked against the rules
abstract syntax tree created
if any code breaks the syntax rules errors generated
code generation
syntax tree converted into object code using linkers
code optimisation
code is optimised to run as fast as possible
involves removing redundant code
linkers loaders and the use of libraries
libraries
reusing code which do general tasks is a library
pre-compiled
pre-tested
linker
is to include links to any library files that is required in the program
static linking all the code required is included directly into the finished compiled code
can result in large files
dynamic linking: compiled versions of the libraries needed are stored by the computers OS links the code required directly into the program
dynamic cuts down on file size
loaders
loads the libraries into memory when the compiled code is run in dynamic linking