Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fundamentals of computer systems (Program Translator (Compiler: a program…
Fundamentals of computer systems
Hardware and Software
Relationship between hardware and software
Hardware:
a generic term for the physical components of the computer, both internal and external
Software:
a generic term for any program that can be run on a computer
Classification of Software
System Software:
the programs that the computer uses to run from
Utility Programs:
programs that perform specific common tasks related to running the computer
Libraries:
code, data and resources that can be called by other programs
Operating System:
a collection of software designed to act as an interface between the user and the computer and manages the overall operation of the computer
Resource Management
How an operating system manages hardware and software to optimise the performance of the computer
Managing hardware
- to allocate processors
I/O devices
- among competing processes
Memory management
how the operating system uses RAM to optimise the performance of the computer
Translators
Application Software:
programs that perform specific tasks.
Classification of programming languages
Low-level languages
Machine code:
The lowest level of code made up of 1s and 0s
Assembly language:
A way of programming that involves mnemonics
programs are executed quickly as a compiler does not optimise the machine code that it produces as effectively as a programmer who codes in assembly language that maps directly to machine code.
program code is relatively compact for the same reason
assembly language allows direct manipulation of the registers on the processor, giving high levels of control
High-level languages:
a programming language that allows programs to be written using English keywords and that is platform independent
Imperative
high-level language
a language based on giving the computer commands or procedures to follow
Program Translator
Translator
: the general name for any program that translates code from one language to another.
Compiler:
a program that translates a high-level language into machine code by translating all of the code
Benefits
once the source code has been compiled you no longer need the compiler or the source code
if you want to pass your object code onto someone else to use they will find it difficult to work out what the original source code was. This process of working out what the source code was is known as reverse engineering
Drawbacks
Because the whole program has to be converted from source code to object code every time you make even the slightest alteration to your code, it can take a long time to debug
the object code will only run on a computer that has the same platform
Interpreter:
a program for translating a high-level language by readying each statement in the source code and immediately performing the action
Benefits
you do not need to compile the whole program in order to run sections of code. You can execute the code one statement at a time
as the code is translated each time it is executed, program code can be run on processors with different instruction sets
because of this , an interpreter is most likely to be used whilst a program is being developed
Drawbacks
no matter how many times a section of code is revisited in a program it will need translating every time. This means that the overall time needed to execute a program can be very long
the source code can only be translated and therefore executed on a computer that has the same interpreter installed
the source code must be distributed to users, whereas with a compiled program, only the executable code is needed
Assembler:
a program that translates a program written in assembly language into machine code
Bytecode:
an instruction set used for programming that can be executed on any computer using a virtual machine
Source code:
programming code that has not yet been compiled into an executable file
Object code:
compiled code that can be run as an executable on any computer
Logic gates