1.2.2 Applications Generation Flashcards
Applications software
Designed to be used by the end user to complete one specific task
4 types of application software
Off the shelf, bespoke, proprietary and open source
Database management software
Used to manage data in a database without having to access the database manually
Off the shelf software
Ready made software available for anyone to purchase
Bespoke software
Software that is custom created for a specific user
Open source software
Allows anyone to access the source code
Open source licenced but free to use
Anyone can sell a modified version but the owner has to accept changes to the source code
Open source advantages and disadvantages
+ free licence, people collaborate to improve it, new versions need the same licences
- can’t make money, support must be paid for
Closed source/ proprietary software
Does not allow access to the store code, users must pay the company for the licence to use the software. There are restrictions on how it can be used
Proprietary advantages and disadvantages
+ Support is usually free, can be free, free updates
- Source code not easily available, cannot be altered/shared
Freeware
Software is free to use but source code is unavailable
Systems software
Low-level software responsible for running the computer system smoothly, providing a platform for applications software
Examples of systems software
Operating systems, utility programs, library programs, translators
Disk defragmenter
Rearranges your data so that it is stored contiguously
Automatic backup
Stores your data in servers elsewhere in case of an issue. Automatic so you don’t forget to do it
Automatic updating
Upgrades the system software to upgrade performance and removes bugs without us remembering to do it
Virus checking
Uses firewalls to stop viruses getting onto devices and anti-malware to fix them, minimises risk of viruses affecting you
Compression software
Stores the data in a smaller area, allowing you to store more data and instructions.
File manager
Allows the users to move/view/rename/open their files
Low Level Language
e.g. machine code (made up of operand and opcode) - first generation language
assembly code (opcode replaced with mnemonic ) - second generation language
Used in embedded systems/mobile phones
Low Level Language advantages and disadvantages
+ fast, uses little space, manipulates individual data
- hardware specific
High Level Language
Appear similar to English
One instruction is the equivalent to many in assembly code
What are compilers, assemblers and interpreters?
A type of translator (convert to machine code so it can be executed)
Assemblers
Translate from assembly language to machine code
Each line of assembly code is a line of machine code
Assemblers advantages and disadvantages
+ checks for errors for you
- particular to the computer hardware
Source program
The program written by the user in assembly code
Object code
The machine code created by the translator
Compiler
Converts source code to machine code in a .exe file
Compiler advantages and disadvantages
+ the exe file can be saved separately and run whenever, checks for errors multiple times, object code executes faster
- takes longer to compile initially, different needed for different hardware platforms, all must be recompiled if changes need to be made
Interpreters
Compile into machine code one line at a time
Checks each line for errors individually before compiling
Interpreters advantages and disadvantages
+ locates errors, doesn’t look at the whole program for each line, more portable across platforms
- doesn’t produce object code so needs interpreting for every run
Byte Code
Intermediate between compiling and interpreting
Used by most interpreted languages, doesn’t interpret one line at a time
Done so that it can be interpreted to different computer architecture
3 stages of compilation
Lexical analysis
Syntax analysis
Code generation
Lexical Analysis
Takes the source program, removes comments and whitespace and replaces symbols with tokens of the type e.g. operator, variable
Variable names are stored for later use
Stored in a symbol table
Syntax Analysis
Tokens checked to see if the order makes sense
Syntax errors are flagged and an abstract syntax tree is produced
Expresses in binary to check
Code Generation
Code is actually converted into machine code from the abstract syntax tree
Each high-level function creates many low-level
Code can be optimised e.g. smallest size/ optimised performance
Semantics
About the meanings
Syntax
About the structure
Parsing
Made up of syntax and syntactic analysis
Analyses a string of symbols to check it conforms to rules
Semantic Parsing
The meaning and implications are determined and necessary actions taken
Semantic analysis is done after to gain the meaning
Libraries
Sets of compiled and compiled functions in a language, can be called within a program
+ save time, cover complex areas, can be used in many languages
Linker
Needs to put the appropriate memory addresses in place so that the program can return and call from a library function
Loader
Copies the program and any linked subroutines into main memory to run
The code can assume the program in memory address 0
The loader needs to relocate the memory addresses so that it knows where to go to call functions
Full backup
Every file is copied to an alternative storage device
Incremental backup
Only the files that have changes since the last backup are copied
Utility software
Has a specific function linked to the maintenance of the OS
Static
Modules and libraries are added directly into the main file, increasing their size
Dynamic
Addresses of modules and libraries are included in the file. Files remain small and external updates feed through to the main file
Examples of utility software
Encryption, compression, backup