1.2.2 application software Flashcards
what is the difference between applications software and system software?
Application software is utilized directly by the end user whereas system software ensures the high performance computer
3 examples of utility
-compression
-disk fragmentation
- antivirus
-automatic backup
-automatic updates
give one advantage of using closed source code
- thorough regular and well tested updates
- expert support and user manuals from company
-high levels of security as it is developed in a professional controlled environment.
two features of open source code
- does not require a license to be used
-distributed with the source code
-can be modified and sold.
two advantages of using compiled code over interpreted code
-faster to execute
-does not require a compiler to run
two advantages of using interpreted code over compiled code
-is platform independent
-useful for debugging
-runs instantly without time waiting for compilation
what is assembly language
a programming language that uses mnemonics to interpret code . low level language has a close relationship with machine code. it is platform specific
compression
Operating systems enable the user to communicate with the computer and perform certain low-level tasks involving the
management of computer memory and resources
Disk defragmentation
As the hard disk becomes full, read/write times slow down. This is because 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, thus improving performance.
Antivirus
Antivirus is responsible for detecting potential threats to the computer, alerting the user and removing these threats.
Automatic updating
This utility ensures the operating system is kept up to date, with any updates being automatically installed when the computer is restarted. Updates tackle bugs or security flaws so this ensures the system is less vulnerable to malware and hacking threats
Backup
The backup utility automatically creates routine copies of specific files
selected by the user. How often files are backed up is also specified by the user. This means that in the event of a power failure, malicious attack or other accident, files can be recovered.
open source
Open source code can be used by anyone without a license and
is distributed with the source code.
closed source
Closed source code requires the user to hold an appropriate
license to use it. Users cannot access the source code as the
company owns the copyright license.
open source advantages
-Can be modified and improved by anyone
-Technical support from online community
-Can be modified and sold on
open source disadvantages
-Support available online may be insufficient or incorrect. No user
manuals.
-Lower security as may not be developed in a controlled environment
closed source advantages
-Thorough, regular and well-tested updates
-Company owning software provides expert support and user
manuals.
-High levels of security as developed professionally.
-License restricts how many people can use the software at
once
translators
A translator is a program that converts high-level source
code into low-level object code, which is then ready to be
executed by a computer
compiler
Compilers translate high-level code into machine code all at
once, after carrying out a number of checks and reporting
back any errors. This initial compilation process is longer than
using an interpreter or an assembler. If changes need to be
made, the whole program must be recompiled. Once code has been compiled to produce machine code, it can only be executed on certain devices - compiled code is specific to a particular processor type and operating system. Code can be run without a translator being present.
Interpreter
Translate and execute code line-by-line. They stop and produce an error if a line contains an error. Initially appear faster than compilers, but are slower than running compiled code as code must be interpreted each time it is executed. Code also requires the correct interpreter in order to run on different devices. Interpreters are useful for testing code, as time is not wasted compiling code with errors. Code is also platform-independent, making interpreted code more portable.
Assembler
-Assembly code is considered to be a low-level language
as it is the ‘next level up’ from machine code. 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 almost one line of machine code so code is translated on almost a one-to-one basis.
stages of compilation meaning
When a compiler is used, high-level code goes through four stages before it is turned into object code that is ready to be executed.
stages of compilation
- Lexical analysis
- Syntax Analysis
3.Code Generation
4.Optimisation
Lexical Analysis
Whitespace and comments are removed from the code. Keywords and names of variables and constants are replaced with tokens. Information about tokens is stored in a symbol table.
Syntax Analysis
-Tokens are analysed against the rules of the programming language.
-Tokens that break the rules are flagged up as syntax errors.
-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.
Code Generation
The abstract syntax tree is used to produce machine code.
Optimisation
Searches through the code for areas it could be made more efficient to reduce execution time but is a very time-consuming 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.
Linkers
A piece of software responsible for linking external modules and libraries included within the code.
Static Linker
Modules and libraries are added directly into the main file. This increases the size of the file.
Dynamic Linker
Addresses of modules and libraries are included in the file. File size does not change and external module/library updates automatically feed through to the main file.
Loaders
Programs provided by the operating system. When a file with dynamically linked addresses is executed, the loader retrieves the library or module from the specified memory location.
Use of Libraries
Pre-compiled programs which can be incorporated within other programs. They are ready-to-use and error free, so save time developing and testing modules. Libraries can be reused across multiple programs and save programmers from having to ‘reinvent the wheel’ and instead make use of others’ expertise.