1.2.2 application generation

22 flashcardsby Sabs2023
Study these flashcardsFree · spaced repetition · iPhone, Android, Mac & web

All cards

1
Types of applications?
Word processors
Web browser
Database
Graphics manipulation
2
Utility software
Integrated software used to keep PC safe,running efficiently and provide useful tools like managing files
3
Examples? of U software
File repair
Antil malware
Back up
Compression
Defragmentation
File management
4
File repair?
Attemps to fix corrupted/damaged files and restore them to working state
5
Back up
Creates copy of data as back up.
Either full backups or incremental back up(scans data and backups data changed)
6
Data compression software
Reduces file size so it takes less space and downloads faster
Compressed files must be extracted b4 being read
7
Defragmentation software
Reorganises file on HDD putting fragments of files and free space back together
8
Anti-malware
Helps protect your computer and files from malware.
9
Open source?
Users can modify and distrubute software and support provided by community. free
BUT can be poorly supported(little to no customer service) and no financial gain
10
Closed/propriety source?
Well supported and proffesionaly built product, has financial gain and customer service
BUT users cant modify software and have to pay for license and piracy issue
11
Assembler?
Converts low level assembley code into machine code
12
Interpreter?
Converts high level language code into machine code ONE BY ONE executed
13
Compiler?
Converts all high level language code into a object code and then linker used to put any libraries needed and then into machine code
This can also be converted into intermediate code and then translated via interpreter
14
Image occlusion: name the hidden labels
15
Image occlusion: name the hidden labels
16
Stages of compillation?
1)Lexical analysis
2)Syntax analysis
3)Code generation
4)Code optimisation
17
Lexical analysis?
1)Lexer(component) starts converting lexemes(words) in source code into series of tokens.
2)Lexer does this via scanning source code letter by letter when it reaches a white space,operator/special symbol it decides a word is complete
3)Then checks if lexeme is valid using a predefined set of rules to verify if its a valid token.
4)After creating all tokens they are inputed into a symbol table which stores index,token,its class and data type
18
Syntax analysis?
Receives symbol table and checks for errors/ reports them and builds abstract syntax tree(parse tree)
1)Checks the first index and looks if it valid in the program language then it checks if next index contains the next thing needed(eg if needs to be followed by a variable/value)
2)Repeat and if theres an error it reports. This creates parse tree which presents syntactic structure of source code
3)When identifier is added to parse tree it checks if it exists in symbol table and if so updates its data type
19
Code generation?
Parse tree converted to object code
20
Code optomisation?
Code optomisation attempts to reduce execution time via removing redundant instructions and removing stuff that is never used(variables/subroutines) AND unreachable code.
This leads to an increase compilation time
21
Linker?
Responsible for linking external modules/libraries via two ways:
Static: Modules and libraries are directly added to main file which increases file size
Dynamic: Modules and libraries are only referenced in main file and when run the OS/loader loads the librariers/modules and links them at run time. Reduces file size but if libraries change it can stop program
22
Loader?
Part of OS which loads main file/machine code into memory and if dynamic linking is used it also loads libraries
Study all 22 cards for free