1. Fundamentals Of Computer Systems Flashcards
Define: software
Computer programs and related data that provide the instructions for telling computer hardware what to do and how to do it
Define: system software
Software designed to operate the computer hardware and to provide a platform for running application software
Define: hardware
Physical components that make up a computer system
System software types
Operating systems
Library programs
Utility programs
Programming language translators
Define: operating systems
Provide an interface between the computer and user
Manages devices/files / memory
Provides a virtual machine
Provides a software platform on which other programs can run
Hides op the complexity of the hardware from the user
Define: library programs
A collection of compiled routines that other programs can use
Define: utility programs
Programs that perform a very specific task related to working with computers
What are the programming language translators
Assembler
Compiler
Interpreter
Define: assembler
Translates assembly language programs into machine code
Define:compiler
Translates high level language (source code) into object code
Define: interpreter
Analyses and executes a high level language program one line at a time
Advantages of compiler
Produces an executable file
Source code secure as it is no longer needed
Quick to run as its already translated
Distributed easily
Disadvantages of compiler
Source code must be 100% correct as errors can’t be changed
May not work on all types of computer
Compiling could take a long time depending on the size of the program
Advantages of interpreter
Can be executed immediately
Useful for debugging programs
Disadvantages of interpreters
Execution will be slower than compiled code
Has to be interpreted every time it is run
Source code not secure
Define: application software
Software designed to help the user perform specific tasks
Examples of operating systems
Windows OS, iOS, Andriod, OS X, Linux, Ubuntu
Examples of library programs
Print routine, runtime library
Example of utility programs
Disk formatter, disk defragmenter, disk cleaner, file compressed, firewall
Types of application software
General purpose application software
Special purpose application software
Bespoke application software
Examples of general application software
Word processor, spreadsheet software, database software, presentation software
Examples of special purpose application software
Payroll calculator, tax calculator, web browser
Define: general purpose application software
Generic software that can be bought to perform many tasks
Define: special purpose application software
Software created to perform 1 specific task.
Define: bespoke application software
Software tailor made for 1 specific purpose unique to the customer. Usually expensive as has to be written speifically
Examples of bespoke application software
Military software, hospital software,
Advantage of general application software
Cheap, can perform many tasks, lots of support from other users, readily available, probably contains less bugs
What is first generation programming
Machine code
Binary
Functions of machine code
Fast and efficient
Can make use of specific processor features such as special registers
Code can’t be ported to other operating systems
Code is difficult to edit and update
What is second generation programming
Assembly language
Functions of assembly code
Mnemonic code direct version of machine code.
Fast and efficient
Can make use of special processor features such as special registers
Code cannot be ported to other systems and has to be re written
What is third generation programming
Imperative high level language
Define: imperative language
Code is executed line by line, in s programmer defined sequence
Define: fourth generation programming language
Declarative programming - define what to do rather than how to do it.
Define: declarative language
Describe what computation should be performed, and not how to perform it
Functions of an assembler
Fast to translate assembly language to machine code as relationship is 1 to 1
Assembly code is efficient and fast because it is low level language
Assembly code is fairly easy to understand
Written for a certain instruction set and processor / hardware
Too simple for some tasks.
Functions of a compiler
High level to low level as an executable file
Source code secure - not included
Faster than interpreter
Object code needs to be perfect as can’t be edited or fixed
Functions of an interpreter
Used for debugging, creating multi platform code, prototyping
Source code required, slower due to translating line by line