1.2.2 Applications generation Flashcards
Utilities
What is meant by utility software?
Small programs with specific functions
Concerned with maintaining and running a computer system
Utilities
What does encryption software do?
Scrambles data before it is sent across a network with an encryption key
Utilities
What does anti-virus software do?
Helps to detect and remove malicious programs
Utilities
What does formatting software do?
Prepares the storage device for data storage: creates a FAT (File Access Table) which stores the start address for a file stored in storage
Utilities
What does defragmentation software do?
Arranges and groups split files and free space to make R/W-ing to the disk more efficient
Utilities
What does data compression software do?
Reduces the amount of physical space files take up, so more files can be stored or downloaded/transmitted
Utilities
What does backup software do?
Allows for manual or automatic backing up of files
Utilities
What does automatic updating software do?
Ensures all installed software is up to date, and can download updates automatically from the internet
Open source vs closed source
Describe application software
Software centred around the user and provides them with tools to perform particular jobs
Open source vs closed source
Describe systems software
Software such as OS and utilities, which is centered around the running of a system and its hardware
Open source vs closed source
Describe generic software
Software which can be used for many different purposes
Open source vs closed source
Describe special purpose software
Software which performs a single specific task
Open source vs closed source
Describe off the shelf software
Any user can purchase it, and it often provides generic functions. Usually written by companies and sold for profit
Open source vs closed source
Describe bespoke software
Custom made, and are written for a specific user or organsiation
Open source vs closed source
Give advantages of off the shelf software
- Can be quite cheap
- Tried and tested by many users
- Can be installed and used straight away
Open source vs closed source
Give disadvantages of off the shelf software
- May contain unwanted features or be missing desired ones
Open source vs closed source
Give advantages of bespoke software
- Will be an exact match for the task it’s intended for
Open source vs closed source
Give disadvantages of bespoke software
- Can be more expensive than off the shelf as it is only sold a limited number of times
- Takes time to develop
- May have bugs as it won’t have been tested by many people
- The software may turn out to be useless if the needs weren’t stated clearly enough at the start
Open source vs closed source
Describe open source software
Freely available software, available to anyone to edit or see the source code and redistribute
No copyright protection
Open source vs closed source
Describe closed source software
Protected by copyright laws and doesn’t give access to the source code
Open source vs closed source
Give advantages of open source software
- Free or very cheap
- Can have thousands of developers worldwide working on it
Open source vs closed source
Give disadvantages of open source software
- Can lack a professional finish due to less professional and financial resources
- Less secure against people adding in malicious code
Open source vs closed source
Give advantages of closed source software
- Has professional and financial resources, allowing for a more professional finish
- Has methods to prevent malicious code getting into the program
Open source vs closed source
Give disadvantages of closed source software
- Can be expensive from organisations charging a lot for their software
Translators
What is a translator?
Any program which converts source code into machine code
Translators
Describe an Interpreter
Converts high level language into machine code
Has a 1-to-many relationship, each line of source code translates into many lines of binary machine code
Translates each line at a time
Translators
Describe a compiler
Converts high level languages into object/machine code
Has a 1-to-many relationship where each line of high level source code translates into many lines of machine code
Translates the entire program at once
Object code is a part way between high level language code and machine code
Translators
Describe an assembler
Converts low level assembly language into machine code
A 1-to-1 relationship usually, where each assembly code line translates into machine code
Translators
What are the drawbacks of an interpreter?
Drawbacks:
Requires access to the whole source code when translating
Executes slowly
Translators
What are the benefits and drawbacks of a compiler?
Translators
What are the drawbacks of an assembler?
Assembly code is not very portable across different systems, as it is processor specific
Stages of compilation
What are the three stages of compilation?
Lexical analysis
Syntax analysis
Code generation
Stages of compilation
Describe the process of lexical analysis
- Removes non-program elements, such as white space and comments
- Assigns tokens to individual parts (lexemes) of the source code
- Code optimisation occurs
Stages of compilation
Describe the process of syntax analysis
- Checks the tokens are in the correct order and that they follow the rules of the language
- An Abstract Syntax Tree (AST) is created to map the structure of the program
- Tokens that are missing or in the wrong place are reported
Stages of compilation
Describe the process of code generation
- A separate program is created, this is the object code
- Object code is the executable binary equivalent of the source code
- Code optimisation occurs
Stages of compilation
Describe how code optimisation occurs
Carried out in the lexical analysis and code generation stages of compilation:
Identifies redundant or repeated code and removes or rearranges as necessary
Stages of compilation
How does the compiler handle errors during the syntax analysis stage?
It reports them back as error messages added to the compiler report to the user, which contains the type of error and its location in the program
Libraries, Linkers and Loaders
Describe what a library is, in compilation
High level languages have pre-written libraries
These give you access to may specialised functions
Using libraries saves time as you don’t have to keep rewriting the code contained in one, thus is more reliable and efficient
Libraries, Linkers and Loaders
Describe what a linker is, in compilation
Compilation often results with multiple Object Code files
A linker uses these to create a single executable file
Libraries, Linkers and Loaders
Describe what a loader is, in compilation
Loads the executable code into RAM, so that the file can be executed
Carries out other tasks to prepare a program for execution
Libraries, Linkers and Loaders
What are the advantages of low-level languages?
- Programs are faster and more memory efficient
- Provides direct manipulation of computer registers and storage
- Can directly communicate with hardware devices
- Can manipulate individual bits
- Occupies less memory space and runs faster
Libraries, Linkers and Loaders
What are the disadvantages of low-level languages?
- Low level languages are machine dependant, and therefore are not portable
- More error-prone than high level languages
- The programmer must have additional knowledge of computer architecture to write the code effectively
- Harder for programmers to understand and learn
Libraries, Linkers and Loaders
What are the advantages of high-level languages?
- Easier to write than low level languages
- Less error-prone, and therefore easier to debug
- Quicker and easier to write programs
- Easier to debug and maintain
Libraries, Linkers and Loaders
What are the disadvantages of high-level languages?
- Takes additional translation time
- Cannot allow programmers to communicate directly with hardware
- Generally less memory efficient than low level languages
Libraries, Linkers and Loaders
What is intermediate code?
- This is the half-way point in compilation between source code and machine code
- It is the version of the code which is non-machine dependant, therefore can be copied to other devices and run on any computer
- Is an important part of implementing virtual machines
- A main benefit of intermediate code is it allows code to be stored part-compiled, so can be easily run later without requiring a compiler to be present