Hardware Reference
In-Depth Information
(or hardwired control), not by the operating system. In other words, some of the
level 3 instructions are interpreted by the operating system and some are inter-
preted directly by the microprogram (or hardwired control). This is what we mean
by ''hybrid'' level. Throughout this topic we will call this level the operating sys-
tem machine level .
There is a fundamental break between levels 3 and 4. The lowest three levels
are not designed for use by the average garden-variety programmer. Instead, they
are intended primarily for running the interpreters and translators needed to sup-
port the higher levels. These interpreters and translators are written by people call-
ed systems programmers who specialize in designing and implementing new vir-
tual machines. Levels 4 and above are intended for the applications programmer
with a problem to solve.
Another change occurring at level 4 is the method by which the higher levels
are supported. Levels 2 and 3 are always interpreted. Levels 4, 5, and above are
usually, although not always, supported by translation.
Yet another difference between levels 1, 2, and 3, on the one hand, and levels
4, 5, and higher, on the other, is the nature of the language provided. The machine
languages of levels 1, 2, and 3 are numeric. Programs in them consist of long
series of numbers, which are fine for machines but bad for people. Starting at level
4, the languages contain words and abbreviations meaningful to people.
Level 4, the assembly language level, is really a symbolic form for one of the
underlying languages. This level provides a method for people to write programs
for levels 1, 2, and 3 in a form that is not as unpleasant as the virtual machine lan-
guages themselves. Programs in assembly language are first translated to level 1,
2, or 3 language and then interpreted by the appropriate virtual or actual machine.
The program that performs the translation is called an assembler .
Level 5 usually consists of languages designed to be used by applications pro-
grammers with problems to solve. Such languages are often called high-level lan-
guages . Literally hundreds exist. A few of the better-known ones are C, C++,
Java, Perl, Python, and PHP. Programs written in these languages are generally
translated to level 3 or level 4 by translators known as compilers , although occa-
sionally they are interpreted instead. Programs in Java, for example, are usually
first translated to a an ISA-like language called Java byte code, which is then inter-
preted.
In some cases, level 5 consists of an interpreter for a specific application do-
main, such as symbolic mathematics. It provides data and operations for solving
problems in this domain in terms that people knowledgeable in the domain can un-
derstand easily.
In summary, the key thing to remember is that computers are designed as a
series of levels, each one built on its predecessors. Each level represents a distinct
abstraction, with different objects and operations present. By designing and ana-
lyzing computers in this fashion, we are temporarily able to suppress irrelevant de-
tail and thus reduce a complex subject to something easier to understand.
 
Search WWH ::




Custom Search