42
1BA3 G Lacey Lecture 5 1 Evaluating mathematical expressions How do computers evaluate x + y or any mathematical expression ? Answer : “Reverse Polish Notation” a + b - c / ( d + e ) is an infix expression a, b, c, d, and e are operands +, -, /, “(“, and “)” are operators Computers can’t evaluate infix expressions. They must first be converted to “reverse polish notation” or postfix expressions a b + c d e + / - is a postfix expression

1BA3 G Lacey Lecture 51 Evaluating mathematical expressions How do computers evaluate x + y or any mathematical expression ? Answer : “Reverse Polish

Embed Size (px)

Citation preview

Page 1: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 1

Evaluating mathematical expressions

How do computers evaluate x + y or any mathematical

expression ?

Answer : “Reverse Polish Notation”

a + b - c / ( d + e ) is an infix expression

a, b, c, d, and e are operands

+, -, /, “(“, and “)” are operators

Computers can’t evaluate infix expressions. They must first be

converted to “reverse polish notation” or postfix expressions

a b + c d e + / - is a postfix expression

Page 2: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 2

Push onto stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

ab

Page 3: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 3

Push onto stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

bc

Page 4: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 4

Push onto stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

b

cd

Page 5: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 5

Push onto stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

b

c

de

Page 6: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 6

Pop off stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

b

c

d

e

Page 7: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 7

Pop off stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

b

cd

Page 8: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 8

Pop off stack

A data structure called a “stack” is used to convert infix to postfix

A stack is like a packet of PEZ or a coin holder on the Bus i.e. “last in = first out”

Things can only be put onto the top of the stack (push)

Things can only be taken from the top of the stack (pop)

Push a, b, c, d, e onto the stack Pop 3 items off the stack

Top of Stack

a

b

c

Page 9: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 9

Advantages of Stacks

Very simple to use

Use very little space

Only simple machine language instructions needed to

implement a stack

thus they can run very fast

Algorithm to convert from infix to postfix is simple

Algorithm to evaluate postfix is simple

Page 10: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 10

Convert a + b - c / ( d + e ) to Postfix

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete POSTFIX

EXPRESSION =

( )( a

Page 11: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 11

Convert a + b - c / ( d + e ) to Postfix

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete POSTFIX

EXPRESSION =

( )(

a

(

+

Page 12: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 12

Convert a + b - c / ( d + e ) to Postfix

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete POSTFIX

EXPRESSION =

( )(

a

(

+

b -

Page 13: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 13

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete

Convert a + b - c / ( d + e ) to Postfix

POSTFIX EXPRESSION =

( )(

a

(

+b

-

c /

Page 14: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 14

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete

Convert a + b - c / ( d + e ) to Postfix

POSTFIX EXPRESSION =

( )(

ab+c-

(

(

/

d

Page 15: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 15

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete

Convert a + b - c / ( d + e ) to Postfix

POSTFIX EXPRESSION =

( )(

ab+c-d

(

(

/

+ e

Page 16: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 16

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete

Convert a + b - c / ( d + e ) to Postfix

POSTFIX EXPRESSION =

( )(

ab+c-de

(

(

/

Page 17: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 17

Algorithm : Place parentheses around the

expression ( a + b - c / ( d - e ) ) moving left to right until the end

of the infix expression if the item is a number put

into the post fix expression if the item is an open brace

push it onto the stack if the item is an operator pop

all operators of lower and equal precedence off of the stack and place them in the postfix expression, then push the operator onto the stack

If the operator is a close brace pop all operators off the stack until an open brace, then delete

Convert a + b - c / ( d + e ) to Postfix

POSTFIX EXPRESSION =

( )(

ab+c-de/

(

(

Page 18: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 18

Evaluate 3 2 + 4 3 1 + / *

Algorithm :Moving left to right along the post fix expression• if the item is a number push it onto the stack• if the item is an operator pop two numbers from the stack, execute the operator and push the result back

onto the stack• when no more items in the postfix string pop the

answer off the stack !

+ + / *

2

3

1

3

4

5

4

4

5

1

5

5

Page 19: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 19

Summary of Simple to SML Concept

High Level Language (HLL) translated into Machine Language by a compiler

Production rules translate Simple statements into SML Code and Data space must be allocated Maths equations need a more complex rule

A sequence of rules – an algorithm The “Stack” data structure is used by the algorithm to convert

infix maths expressions into postfix A stack is also used to evaluate maths expressions We will return to stacks later in the course

Page 20: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

20

From Simpletron to 68332

Page 21: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 21

Basic Computer Architecture

Page 22: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 22

Simple Overview of the MC6800

The MC6800/MC68332 CPU has:8 x 32-bit Data Register, D1 to D7

8 x 32-bit Address Register, A1 to A7

1 x 32-bit Program Counter, PC

1 x 16-bit Instruction Register, IR

1 x 16-bit Status Register, SR

During one memory access the CPU can access 1

word (16-bit Data Bus). The Program Counter is 32

bits wide, but only 24 bits are used on the Robot (24-

bit Address Bus).

Page 23: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 23

The MC6800 CPU

Page 24: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 24

The Unit of Memory

The fundamental unit of memory is the BIT (Binary Digit)

Each bit can take on the value Logic-1 or Logic-0

Accessing these bits individually is not of great use

Each value can only be a Logic-1 or Logic-0 (not very

useful for storing large numbers!)

Page 25: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 25

Group BITs Together

View memory as a list of larger elements:

4 bits = 1 NYBBLE

8 bits = 1 BYTE

16 bits = 1 WORD

32 bits = 1 LONGWORD

When reading data/writing data to/from memory

(using the MC68332), we can do so in units of

bytes, words or longwords only

Page 26: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 26

Data Bus

The number of bits that can be read at any given time is determent by the BUS SIZE.

BUS SIZE = Number of wires (data) connecting the CPU to the Memory

Page 27: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 27

Memory Capacity

Memory size is expressed in terms of bytes:

1024 Bytes = 1 KILOBYTE (Kb.)

1024 Kilobytes = 1 MEGABYTE (Mb.)

1024 Megabyte = 1 GIGABYTE (Gb.)

Individual bytes in memory (memory locations)

are numbered sequentially.

Page 28: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 28

Types of Memory:

CPU allowed to read and write contents of memory.

Commonly known as Random Access Memory [RAM], 2

flavours:

Volatile: contents lost when power is switched off.

Non-Volatile: holds contents when power is switched off on

computer

Read Only Memory [ROM]: memory contents are physically

etched onto the chip during manufacture. Contents can only

be read, and are not lost on power-off.

Page 29: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 29

More Memory Types

Programmable ROM [PROM]: can write contents into it ONCE only (using a device called a PROM Programmer). Henceforth, it acts like ROM.

Erasable PROM [EPROM]: a PROM chip that may be written a number of times using an EPROM programmer

Electrically Erasable PROM [EEPROM] sometimes called FLASH

The robot has:64Kb RAM

64Kb EPROM

Page 30: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 30

Memory Location

The number of a memory location is it’s address

E.g.: The contents of memory location 3 is 67.

Page 31: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 31

Bit Group Encoding

Bit 3 Bit 2 Bit 1 Bit 1

0 0 0 0 = 0 0 0 0 1 = 1 0 0 1 0 = 2 0 0 1 1 = 3 0 1 0 0 = 4 0 1 0 1 = 5 0 1 1 0 = 6 0 1 1 1 = 7

1 0 0 0 = 8 1 0 0 1 = 9 1 0 1 0 = 10 1 0 1 1 = 11 1 1 0 0 = 12 1 1 0 1 = 13 1 1 1 0 = 14 1 1 1 1 = 15

2nd Lecture, 1BA3, M. Manzke, Page: 31

Page 32: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 32

Memory - Address - Bit

Address: 3, Bit: 7, 6, 5, 4, 3, 2, 1, 0

0 1 2 3 4 5 6 7 8 etc.

Page 33: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 33

Operating Systems A computer without software cannot:

Load and run programs from disk Perform I/O (Input/Output) Handle situations where the software to run requires more

memory than is physically available on the computer

An Operating System = A Program which insulates the user from the technical detail of the machine.

Page 34: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 34

The MONITOR

Michael Manzke, Page: 34

A MONITOR is the simplest form of operating system. It is designed with a minimal specification and allows execution of low level assembly language programs.

The monitor is a program (written in assembly language) which provides an interface to the CPU.

Using knowledge from this course, you will write your own monitor in second year for a computer system (similar to the Robot) that you will design and build.

Page 35: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 35

Monitor provides functions to allow:

Writing and editing assembly language code

Assembling of code to machine language

Execution of software

Reading/Writing memory and CPU registers

Connecting to external computer systems for

saving and loading of code

Debugging

Page 36: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 36

Robot Development System

Michael Manzke, Page: 36

The RDS contains an Editor: used for writing and saving assembly code

Assembler

Downloader: loads code onto robot

Debugger

Terminal emulator: communicates with robot for I/O

Page 37: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 37

Robot Development System All software is written/saved on the PC. Programs are downloaded and executed on the

Robot. The Robot monitor does not allow

editing/assembling or saving/printing. The monitor is saved in ROM monitor remains

even if the power is off. User programs saved in RAM program lost

when power off.

Page 38: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 38

Terminal Emulator

M on ito rTerm in a l E m ula to r

E d ito r/A ssem bler

H o st P C

S eria lIn te rface

The TE handles direct communication with the Robot.

Every key hit in the TE is sent to the robot.

Robot responds with messages which are printed in the TE window.

Page 39: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 39

Development System Software

Page 40: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 40

Development Cycle

D e sign & W riteA ssem b ly C o de

A ssem b le

S yn tax E rro rs? F ix E rro rs

D o w nlo ad C o d eto R o bo t

S e tup P ro g ra mS ta te

R u n P rog ram R u n E rro rs?

assembler

monitor

monitor

automatic

RDS

R o bo t

H o st P C

Page 41: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 41

How can the monitor and my program run at the same time?

Answer: they don’t. Only one program can run at any given time on

the CPU

Monitor stops when user program is run.

Monitor starts again when user program terminates (hopefully!).

Page 42: 1BA3 G Lacey Lecture 51 Evaluating mathematical expressions  How do computers evaluate x + y or any mathematical expression ?  Answer : “Reverse Polish

1BA3 G Lacey Lecture 5 42

Program Execution

How does the CPU execute code? The program will exist as numbers in

memory

The CPU must be told which program to

execute (i.e. where code exists in memory -

> memory location)