2.2 - Applications Generation Flashcards
What is application software?
- software designed to perform a specific task or tasks for a user
- enable users to perform tasks like creating documents, managing data, and surfing the web
What are common types of application software?
- Word Processor, Database Management software, Web Browser,
Graphics manipulation, Spreadsheet Software, Presentation software, Antivirus Software, Email Client, Video editing software, Integrated development environment (IDE), Virtualisation software
What is utility software?
- designed to help analyse, configure, optimise, or maintain a computer
- supports the operating system
What is disk defragmentation?
- utility software that rearranges files on a hard drive to increase efficiency
- speeds up file access and can improve overall system performance by putting files into contiguous blocks and minimising empty space
What is open-source software?
- software where users can view, modify and distribute the source code
- e.g. Linux, Apache HTTP Server
- Ideal for collaborative projects, customisation, transparency
What is closed-source software?
- software where the source code is hidden and propriety
- e.g. Microsoft Windows, Adobe photoshop
- Ideal for businesses requiring polished, supported products, intellectual property protection
What are the benefits of open-source software for the creator?
- collaboration
- community engagement
- faster innovation
What are the drawbacks of open-source software for the creator?
- less control
- burdened with requests from users
What are the benefits of closed-source software for the creator?
- greater control
- revenue through sales
- IP protection
What are the drawbacks of closed-source software?
- slower innovation
- full responsibility for updates and flaws
What are the benefits of open-source software for the user?
- often free
- customisable
- transparent
What are the drawbacks of open-source software for the user?
- might be less user-friendly
- compatibility issues
- may contain bugs
What are the benefits of closed-source software for the user?
- more polished products
- professional support
- consistency
What are the drawbacks of closed-source software for the user?
- Costly
- less customisable
- potential trust issues
What is a translator?
- convert source code from a high-level language to a low-level language
- Three main types:
Interpreters, Compilers, Assemblers
What is an interpreter?
- interpret source-code line-by-line and execute it on the fly
- easier to debug, allows incremental testing, and is generally faster to start execution
- slower execution time overall and requires the interpreter to be present during execution
What is a compiler?
- translates the entire source-code into machine code at once and then executes it
- faster execution time, no need for the compiler during execution
- Longer initial compilation time and can be more challenging to debug
What is an assembler?
- translate assembly language into machine code
- assemblers deal with low-level languages
What is compilation?
- a process that translates a program written in a high-level programming language into machine code
- only machine code can be executed by a computer
What are the four stages of compilation?
- Lexical Analysis
- Syntax Analysis
- Code Generation
- Optimisation
What is the lexical analysis stage of compilation?
- whitespace and comments removed from code
- keywords and names of variables and constants are replaced with tokens
- information about tokens stored in a symbol table
What is the syntax anaylsis stage of compilation?
- tokens analysed against the rules of the programming language
- Tokens that break the rules are flagged up as syntax errors, e.g. undeclared variable type, incomplete set of brackets
- an abstract syntax tree is produced, which is a representation of the source-code in the form of a tree
- semantic analysis is carried out where logic mistakes within the program are detected, e.g. multiple decleration, undeclared identifiers
What is the Code Generation stage of compilation?
- the abstract syntax tree is used to produce machine code
What is the optimisation stage of compilation?
- searches through the code for areas it could be made more efficient to reduce execution time, but is a very time-consuming part of compilation
- Redundant parts of code are removed, Repeated sections of code are replaced with more efficient code.
- Excessive optimisation may alter the way in which the program behaves