applications generation Flashcards
applications software
used by the end user to perform one specific task. requires system software in order to run
spreadsheets, web browsers
systems software
low-level software responsible for running a computer smoothly, provides platform for applications software to run. user doesnt interact with systems software but it ensures high performance for user
operating system device drivers
what are utilities
key piece of system software ensuring high performance of OS.
examples of utilities
compression
disk defragmentation
anti virus
automatic updating
backup
compression
os provide utilities that enable files to be compressed and decompressed.
disk defragmentation
as hard disk becomes full, read/write slows down.
cause files become fragmented theyre stored in different parts of memory
disk defragmenter utility rearranges hard drive contents so they can be accessed faster improving performance
antivirus
responsible for detecting potential threats to computer alerting user and removing these threats
automatic updating
ensures os is up to date updating automatically
tackles bugs and threas ensuring system is less vulnerable
backup
creates routine copies of specific files selected by user
how often files are backed up are also selected by the user
so in like power failure files can be recovered
open source
used by anyone without a license and is distributed with the source code
open source advantages
can be modified and improved by anyone
can be modified and sold on
technical support from online community
open source disadvantages
support available online may be insufficient or incorrect no user manuals
lower security as may not be developed in controlled enviroment
closed source
user needs an appropriate license to use it
users cant access code and company owns copyright license
closed source advantages
thorough well tested updates
high levels of security developed professionally
company owns software provides expert support and user manuals
closed source disadvantages
license restrics how many people can use sofware at once
users cant modify and improve software themselves
why user chooses open or closed source
suitability of software for task theyll be using it for
cost
functionality
translator
program that converts high level source code into low level object code then executed by computer
different types of translators
compiler
interpreter
assembler
different types of translators
compiler
interpreter
compiler
translates high level code into object code at once performing checks and reporting errors.
initial compilation slower then interpreters or assemblers
if changes are needed entire program needs to be recompiled
is particular to processer and os so can only run on compatible devices
once comiled can be executed without needing a translator
interpreters
translates and executes code line by line stopping when finding an error.
appears faster then compiler but overall slower can codes translated each time it runs
useful for testing and debugging sections of code
interpreted code is portable can run on diff devices as long and appropriate interpreter is available
assembler and assembly code
translate assembly code into machine code
assembly code is low level language next level up from machine code
is platform specific instructions are dependant on the instuction set of the processor
stages of compilation
lexical analysis
syntax analysis
code generation
optimisation
lexical analysis
whitespace and comments are removed from code
rest is analysed for keywords names of variables and constance
replaced with tokens and info abt token associated and stored in symbol table
syntax analysis
tokens are analysed against grammar and rules of programming language
any tokens that break the rules are flagged as syntax errors and added to a list of errors
abstract syntax tree is produced
represents source code in form of a ree
semantic anaylsis is carried out
code generation
abstract syntax tree produced in the syntax analysis stage is ues to produce machine code
optimisation
searches through code for areas where it could be made more efficient
aim is to make code faster to execute can add time to compilation tho
insufficient parts are removed
repeated sections could be grouped together and replaced with more efficient piece of code
danger tho cause excessive optimisation could change code behaviour
optimisation
searches through code for areas where it could be made more efficient
aim is to make code faster to execute can add time to compilation tho
insufficient parts are removed
repeated sections could be grouped together and replaced with more efficient piece of code
danger tho cause excessive optimisation could change code behaviour
linkers
piece of software linking enternal modules and libraries included within the code
2 types of linkers
static
dynamic
static
modules and libraries are added directly into main file
increases file size
any updates wont affect program
dynamic
adresses of modules and libraries are included in file where they are referenced
when programs run loader retrieves file at specific adress so it can be executed
advantage is files remain small and external updates go into main file so no need to rewrite the code
loaders
programs provided by os
when file is executed loader retrieves library or subroutine from given memory location
us of libraries
pre compiled programs can be incoporated within other programs using static or dynamic linking
read to use and error free so save time with development and testing
can be reused with multiple programs