The Binary Machine

advertisement
The Analytical Engine
Module 6
Program Translation
The Binary Machine

Computers store their programs and
information in binary code.

A program must be understandable to both the
user and the machine.
The Binary Machine

Translation from high-level language (English)
to low-level language (binary) is accomplished
through a program:
–
–
–


Compiler
Interpreter
Assembler
High-level  Low-level
Source code  Object code
The Binary Machine


All computers have a hard-wired instruction
set that is unique to a specific microprocessor.
Therefore, compilers, interpreters, and
assemblers must be written for a specific
machine.
The Binary Machine

An instruction is a unique set of binary
patterns that cause the circuitry of the machine
to behave in a certain way.

These circuits are etched into the
microprocessor chip.
Binary Representations

Binary architecture
–
–
–
–
Bit – Binary Digit
Nibble(?) – 4 bits
Byte – 8 bits
Word – 2 bytes – 16 bits (at least)
Binary Representations

Most modern desktop PCs and Macs measure
their memory size in bytes.
–
–
–
1 MB = 1 million bytes
12 MB = 12 million bytes or 96 million bits!
1 GB = 1 gigabyte or 1 billion bytes.
Binary Representations

To a computer, binary digits can represent:
–
Simple binary code



Integers - 0000 0000 0000 0010 = 2
Integers – 0111 1111 1111 1111 = 32767
Real Numbers (32 bits) – sign(1 bit), Exponent (8) bits,
Mantissa (23 bits)
Binary Representations

To a computer, binary digits can represent:
–
Binary Coded Decimal Numbers (BCD)

–
0000 0011 0001 0110 = 316
Hexadecimal Numbers (Hex)

1111 0101 0011 1011 = F53B
Binary Representations

To a computer, binary digits can represent:
–
ASCII Code


–
–
0100 0001 = “A”
0010 0001 = “!”
Check ASCII table handout.
Adopted so computers could represent character
(non-numeric) data.
Binary Representations

Instruction Codes
–
Arbitrary – Ex. Is PIPPIN


–
–
–
0001 0100 = LOD (Load accumulator)
0000 0101 = STO (Store accumulator contents)
A 256-instruction set can be encoded in 8 bits.
Trend was to richer instruction sets.
Trend now to reduced instruction sets.
The Binary Machine

Observe the
demonstration of the
PIPPEN machine
carefully.
A Simple Computer

RAM – Random Access Memory
–
–
Data – 8, 16, 32 bits
Instructions



8-bit instruction code
8-bit address
PC – Program Counter
–
Keeps address of current instruction
A Simple Computer

Accumulator
–

IR – Instruction Register
–

Special memory location that stores intermediate
results of computations.
Holds a copy of the current instruction to be
executed.
Decoder
–
takes a single input and transfers to multiple
outputs.
A Simple Computer

MUX – Multiplexor
–

Routes multiple inputs to a single output.
ALU – Arithmetic Logic Unit
–
Performs mathematical operations on its input.
A Simple Computer


Assembler – translates
mne-monic representations of instructions
into binary code.
(LOD, ADD, SUB, STO,
etc.)



Very fast
Programmer is
responsible for data
storage
One instruction – One
operation
correspondance
Language Implementation

Scanning – breaking a string of characters into
meaningful pieces called tokens.
–

W=X–Y;
Like breaking down a sentence into words.
Language Implementation

Parsing – Arranging tokens into a sensible logical
structure.
–
W = X + Y * Z;



–

E1 = Y * Z
E2 = X + E1
E2  W
Result is called a Parse Tree.
Code Generation – generating one or more machine
language instructions based on the Parse Tree.
Language Types

Interpreted Languages
–
BASIC, LISP, JavaScript


–
Fairly slow


–
Program LineInterpreterBinary CodeExecution
Next LineInterpreterBinary CodeExecution
Lines translated repeatedly
One line may generate multiple instructions, some unnecessary
User does not need to know details of the
machine. Programs run on any machine that
has the interpreter.
Language Types

Compiled Languages
–
COBOL, FORTRAN, C, C++, Java

–
Fairly fast after compilation


–
Entire programCompilerBinary CodeExecution
Better error detection.
Object program can be stored and run repeatedly without
recompilation.
User does not need to know details of the machine.
Programs run on any machine that has a compiler.
Language Groups

Imperative – fundamental unit is the procedure
which is called by a main program.
–

Pascal, FORTRAN, Ada
Functional – processes are defined in terms of
functions with no main program.
–
LISP
Language Groups

Declarative – Input/Output oriented; limited
procedure/function support.
–

COBOL, Prolog
Object-Oriented – processes controlled by
“events” which communicate with “objects” via
“messages”.
–
C++, Smalltalk, JavaScript, Java
Language Design


Syntax & Semantics
Data Types
–
–

Strongly Typed
Weakly Typed
Data Structures
–
–
Arrays
Lists

Decision statements
–
–

IF
IF – ELSE
Control Statements
–
–
–
FOR
WHILE
WHILE – DO
Language Implementation



Generating Code
Observe the demonstration carefully.
Check the course web
page and then complete
Lab 6.3.
Language Generations




First Generation – machine language
Second Generation – assemblers
Third Generation – interpreted and compiled
languages.
Fourth Generation – object-oriented
languages
Language Implementation




Symbols & Bits
Observe the demonstration carefully.
Check the course web
page for special
instructions.
Complete Lab 6.4.
The End
Program Translation
Download