1.1 Analogy: Piano Architecture

Architecture applies to buildings, landscapes, computers, and even pianos. Let us briefly consider the architecture of pianos. Piano architecture can be defined by the specification of the keyboard, as shown in Figure 1-1a. The keyboard is the player (user) interface to this musical instrument. It consists of 88 keys: 36 black keys and 52 white keys. Striking a key causes a note of specified frequency to sound. As the size and the arrangement of the keys are identical for all modern piano keyboards, anyone who can play the piano can play any piano.

Figure 1-1. Architecture and implementation of the piano

graphics/01fig01.jpg

Many implementations of piano architecture are possible, as shown in Figure 1-1b. The implementation is concerned with the details of a particular maker's materials. The kinds of wood and metal used, the selection of ivory or plastic keys, and the size and shape of the instrument are all implementation decisions made by the piano builder. Regardless of the implementation decisions made, however, any piano player can play the final product.

Table 1-1. Generations of Computer Languages

Generation

Description

Attributes and Examples

1GL

Machine language

Each instruction speaks directly to the hardware level of a particular architecture. Instructions are numeric (i.e., binary patterns of 0s and 1s), but those can be made partially comprehensible by clustering adjacent bits together using an appropriate choice of base:

  • decimal (base 10), as in the IBM 1620

  • octal (base 8), as in the PDP®11

  • hexadecimal (base 16), as in the Alpha™, Itanium®, and most other current architectures.

2GL

Assembly language

Each instruction is a mnemonic e.g., ADD but stands in near one-to-one correspondence with machine instructions. Additional directives to the assembler program help with storage allocation and program segmentation.

3GL

High-level languages

A compiler program translates statements in an arbitrarily defined artificial programming language into the appropriate sequences of machine-level primitives. Examples include COBOL, FORTRAN, PL/I, BASIC, C, Pascal, and Ada.

4GL

Newer languages

Newer types of computer languages include:

  • artificial intelligence languages (e.g., LISP)

  • data access languages (e.g., SQL)

  • natural-language query tools

  • object-oriented languages (e.g., C++, Smalltalk, or Java®).

In a computer system, the architecture consists of the programming interface: the instruction set, the structure and addressing of memory, the control of input and output (I/O), and so on. Several implementations of an architecture can be possible using different electronic design techniques that may have different size, cost, and performance characteristics. A program that runs on one machine should run on all machines conforming to the same architecture. Indeed, computer architects including Rau and Fisher of Hewlett-Packard have expressed that a contract exists between programs written for the architecture and the processor implementations of that architecture.



ItaniumR Architecture for Programmers. Understanding 64-Bit Processors and EPIC Principles
ItaniumR Architecture for Programmers. Understanding 64-Bit Processors and EPIC Principles
ISBN: N/A
EAN: N/A
Year: 2003
Pages: 223

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net