1.2.2 Applications generation Flashcards
Applications software
Designed to be used by the end-user to perform one specific task
Systems software
Low-level software responsible for running the computer system smoothly, interacting with hardware and providing a platform for applications software to run.
Compression
Operating systems provide utilities that enable files to be compressed and decompressed
Disk defragmentation
As the hard disk becomes full read/write times slow down as files become fragmented as they are stored in different parts of memory. The disk defragmenter utility rearranges the contents of the hard drive so they can be accessed faster
Antivirus
Responsible for detecting potential threats to the computer, alerting the user and removing these threats
Automatic updating
Ensures the OS is kept up to date, with any updates being automatically installed when the computer is restarted. Updates tackle bugs or security flaws to ensure the system is less vulnerable to malware and hacking threats
Backup
Automatically creates routine copies of specific files selected by the user.
In the event of power failure, malicious attack or other accidents, files can be recovered
What is source code?
-Written by the programmer
-Refers to object code before it has been compiled
Open source software
-Can be used by anyone without a license and is distributed with the source code
-Can be modified and improved by anyone
-Provides an online community (technical support)
But… Support available online may be incorrect and there are no user manuals.
Security may be low as it is not developed in a controlled environment
Closed source software
-Requires the user to hold an appropriate license to access the source code
-Thorough, regular well-tested updates
-Company owning the software provides expert support and user manuals
-High security
But… license restricts how many people can use that software at once
Users cannot modify and improve software themselves
What is a translator?
A program that converts high level source code into low-level object code, which is ready to be executed by the computer
Compilers
-Translate high-level code into machine code all at once, after carrying out checks and reporting back any errors.
-Initial compilation process is longer than using an interpreter or assembler
-If changes need to be made, the whole program must be recompiled
-Code can only be executed on certain devices- specific to a particular processor type and O-Code can be run without a translator being present
Interpreters
-Translate and execute code line-by-line.
-Stop and produce an error when they come to it
-Slower than running compiled code as code must be translated each time it is executed
-Useful for testing sections of code and pinpointing errors
-Interpreted code requires an interpreter in order to run on different devices but can be so is portable
Assembler
-Assembly code is platform specific as the instructions used are dependent on the instruction set of the processor
-Assemblers translate assembly code into machine code
-Each line of assembly code is equivalent to one line of machine code so code is translated on a 1 to 1 basis
Lexical analysis
-In the first stage of compilation, whitespace and comments are removed from the code
-Remaining code is analysed for keywords and names of variables and constants
-Any tokens that break the rules of the language are flagged as syntax errors and added to a list of errors
Syntax analysis
-Tokens are analysed against the grammar and rules of the language
-Flags up syntax errors
-E.g. undeclared variable types
Optimisation
-Searches through the code for areas that could be made more efficient
-Aims to make it faster to execute
-Redundant code is removed
-Repetition is grouped together and replaced with a more efficient piece of code that produces the same result
-Danger that it may alter the way the program behaves
Linkers
-Piece of software responsible for linking external modules and libraries included within the code
-Static: Modules and libraries are added directly to the main file. This increases the size of the file. Any updates to modules and libraries externally will not affect the program
-Dynamic: Addresses of modules and libraries are included in the file where they are referenced. When the program is run, the loader retrieves the program at the specifies address so it can be executed. Files remain small and external updates feed through to the main file so there is no need to rewrite code
Use of libraries
-Pre-compiled programs which can be incorporated within other programs using either static or dynamic linking
-Ready to use and error free so save time on development and testing
-Reusable