Prev
Next
Machine or ISA (instruction set architecture) level - L2
[CSCI 463, CSCI 360, CSCI 640]
Lowest user programming level.
Micro-architectural storage units referenced by numeric values.
Micro-architectural activities invoked by numeric code (instruction op-code).
* registers and memory accessed by instructions.
Instruction code usually represents single simple finite activity.
User level programming possible at this lever but tedious, requires
entry of numeric values into memory block.
See : https://en.wikipedia.org/wiki/Type-in_program
https://en.wikipedia.org/wiki/Altair_8800
Operating system level - L3
[CSCI 480, CSCI 330]
Pre-defined tasks accessed with specialized ISA instructions.
Sometimes implemented in hardware.
Sometimes predefined software sequences either pre-loaded before
program run or stored in some sort of permanent program memory.
Complex routines stored in ROM or loaded by OS designed to perform
standard activity.
Read keyboard, write to video, read/write file storage, etc.
Requested by user tasks via special instructions - Interrupts
Instructions with restricted user access.
Some instructions only accessible when CPU in supervisor(OS) state.
Supervisor vs. task
Program access to memory and files restricted by ownership.
Provides multi-user support.
Program access to memory and files restricted by process id.
Multitasking support. Multi-core support.
Advanced memory management (virtual memory).
Requires coordination between hardware and higher level tasks involve
circuits outside of the CPU.
Low level programming - L4
[CSCI 360, CSCI 640]
Activity specified by user readable symbols. LA R1,R2
Assembler language.
Symbols tend to have a 1 to 1 relation with L2-L3 instructions.
Symbols and syntax specific to a particular system design.
Requires support program to translate between user symbol and valid
L2-L3 numeric codes.
But may also provide 'macros' as a way to generalize certain repeated
activities.
Code at this step has to be processed by a compiler to convert it to
L2/L3 machine code.
Code specific to the particular CPU's architecture.
High Level language - L5
[CSCI 240, 241, 340, 465]
Symbols used to represent complex tasks and storage units.
COBOL, Basic, C, C++, Lisp
printf() # C
cout # C++
Symbols independent of the system's architecture.
C's printf() - function syntax same on Macs, Sun, and Windows PCs.
Although its L2/L3 implementation may vary greatly.
Symbols may be compiled (translated) to separate L2/L3 level program. (C/C++)
Or interpreted, instruction converted to L2/L3 instructions each time
line of code run. Visual Basic or JavaScript.
Or some combination
Java compiled to Java byte-code, byte-code interpreted.
Python is similar.