7. Classifications of Software Flashcards
Application Software
Can be general purpose, special purpose or bespoke.
Usually it is a piece of software meant to deal with a task relevant to real life events such as entertainment or handle real tasks.
General Purpose Software
e.g. Word processor, Graphics Package.
Can be used for many different purposes.
Cheaper than special purpose software (duh.)
Tend to have less bugs as they could be open-source or have more users as it fits a general criteria.
Special Purpose Software
Performs a specific task e.g. Payroll, accounts package, hotel booking systems.
Can be bought ‘off shelf’ or bespoken. Ready made almost always cheaper than commissioning bespoke software.
Systems Software
Performs the tasks needed to operate the hardware
Utility Programs
System software designed to optimise the performance of the computer or performance tasks.
e.g. Disk Defrag software, anti-virus, firewall, backing up files, compressing data.
Library Programs
Collection of programs that do specific jobs.
Programmers can call and use these in their programs.
e.g. A printing routine can be used by a word processor and a spreadsheet program.
Machine Code
This is the code that can be directly executed by the computer.
e.g. 101100001011
Assembly Language
Low level language
Same structure/instruction as machine code but used mnemonics instead of numbers.
e.g. Mov A,B
Pros:
- Occupies little space
- Executes almost as fast as machine code
High Level Languages
Are languages with strong abstraction from the details of the computer. Allows for programming to be much easier and understandable than low level languages.
e.g. Python, C++, C#, Pascal, VB
High Level Languages vs. Low Level Languages
HLL are simple to understand for programmers, easy to: debug, maintain and they can be portable like C++.
LLL, can optimise performance or use of hardware ie more memory effecient however it is machine-dependent.
Assemblers
Translates an assembly language program into machine code.
Compilers
Scans the whole code and translates it all into machine code.
No translation takes place when running, so it is much faster.
No extra software required.
Errors only show after compilation, may be tedious, not preffered for debugging.
Interpreters
Executes each line of high-level language as they come up one by one.
Breaks once it reaches an error.
Useful for program development as there is no need to recompile code after editing the code.
What is the relationship between Assembly Language and Machine Code?
They’re 1:1, assembly language is just machine code expressed in mnemonics.
Translators
A program that converts code from one language to equivalent code in another language
All code needs to be translated to machine code in order to execute