Application Generation Flashcards
application software
designed to be used by the end to end user to perform a specific task
eg. word processing, spreadsheets, web browsers. skype
system software
low level software that is responsible for running the computer system smoothly. closely interacts with hardware. and is needed for the computer to function. runs in the background users don’t usually access it.
eg. library programs, utility programs, operating system, device drivers.
utilities
piece of system software to ensure consistent high performance of the os. each utility has a unique functions linked to the maintenance of the os
compression
compress and decompress large files that are transmitted across the internet
Disk defragmentation
rearranges content of the hard disk drive so that they can be accessed faster removing fragments by putting memory together and free space.
Antivirus
responsible of detecting potential threats to the computer. thus alerting the user and removing the threat.
Automatic updating
ensures the operating system is kept up to date. which updates automatically downloaded when computer is restarted. this is done to ensure that the system is less venerable to hacking/malware.
Backup
full backup and incremental backup are specified by the user. backups are done so that files can be recovered in an event of data loss, power failure fire etc.
source code
is the object code before it has been compiled.
open source software
can be used by anyone whiteout needing a license and the source code is available for anybody to access and modify,
pro:
can be modified and improved by anyone
technical support from online community
cons:
incorrect insufficient support
low security
closed source software (propriety )
proprietary software refers to the software which is solely owned by the individual or publisher who developed it source code is not available and cannot be modified by users. need a license.
pro:
regular well tested updates
expert support and user manuals
high level of security
cons:
subscription cost
cant modify and improve/ distribute software
restricts how many users can use this
what must the user consider?
Costs, implementation, maintenance, training of staff, license
Functionality, features available, ease of use
translators
program that translates high level source code into low level object code so it can be ready to execute by the computer.
assembler
translates assembly code into machine code. 1 line of assembly = 1 line of machine so translated on 1-1 basis
compiler
translates high level code into machine code all at once. takes longer than an interpreter. if need to change program must be recompiled.
compiled code is specific to a particular processor type and operating system. Code can be run without a translator being present.
interpreter
translates and executes high level code into machine code line by line. stop when error is found.
slower than running compiled code as code must be translated each time it is executed.
useful for testing sections of code.
requires an interpreter to run on different devices but its more portable as can be executed if interpreter is present.
lexical analysis - stage 1
whitespace and comments are removed. allocate tokens. and information about tokens are stored in a symbol table.
syntax analysis - stage 2
check if code tokens are in the correct order, and that tokens follow the language rule. if not they are flagged with an syntax error.
Semantic analysis is also carried out at the syntax analysis stage, where logic mistakes within the program are detected.
Examples of semantic errors: multiple declaration, undeclared identifiers
abstract syntax tree (AST) is created (maps the structure of the program, first dropping the brackets, semicolons, etc, that were used by the programmer. If required tokens are missing from the tree, or in the wrong place, the compiler will report an error)
code generations - stage 3
The abstract syntax tree produced in the syntax analysis stage is used to produce
machine code.
optimalisatioin - stage 4
searches code to make it execute faster
The optimizer may identify redundant or repeated code, and remove or rearrange the code as necessary.
linkers
responsible for linking external modules and libraries
included within the executable code.
static: Modules and libraries are added directly into the main file. increases the size of the file. updates of libraries and modulus will not affect the program. therefore any version of it can be used.
dynamic: Addresses of modules and libraries are included in the file where they are referenced. files remain small and external updates feed
through to the main file; there is no need to rewrite the code.
loaders
When a file is executed, the loader retrieves the library or subroutine from the given memory location. (memory address which has been relocated)
use of libraries
libraries are pre-complied programs which can be incorporated using static or dynamic linking.
- ready-to-use and error free, so save time
developing and testing modules - can be reused within multiple programs
- save programmers from having to ‘reinvent
the wheel’