introduction to simple
Download
Skip this Video
Download Presentation
Introduction to SIMPLE

Loading in 2 Seconds...

play fullscreen
1 / 17

Introduction to SIMPLE - PowerPoint PPT Presentation


  • 469 Views
  • Uploaded on

Introduction to SIMPLE A reduced instruction set High Level Language (HLL) The Simple programming Language Simple has only 7 statements rem - the remainder of the line is a comment input - read from the keyboard print - write to the terminal goto - jump to a line number

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introduction to SIMPLE' - issac


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction to simple

Introduction to SIMPLE

A reduced instruction set High Level Language (HLL)

1BA3 – G Lacey – Semester 1 Lecture 4

the simple programming language
The Simple programming Language
  • Simple has only 7 statements
    • rem - the remainder of the line is a comment
    • input - read from the keyboard
    • print - write to the terminal
    • goto - jump to a line number
    • if/goto - if a condition is true jump to another line
    • let - evaluate a mathematical expression
    • end - end of the program
  • Every line has a line number
  • Simple only operates on integers
  • Simple only has lower case
  • Variable names have a single letter

1BA3 – G Lacey – Semester 1 Lecture 4

the simple programming language3
The Simple programming Language
  • Variables can only be integers and do not need to be declared before being used
  • Simple mathematical operators
    • Addition, subtraction, multiplication, division are +, -, *, /
    • greater than >, greater than or equal to >=
    • less than <, less than or equal to <=
    • equal to ==, not equal to !=
    • assign the value to =
    • parentheses ( )
  • Examples
    • 10 rem this is a comment
    • 22 input x
    • 33 if x == 0 goto 10
    • 40 let r = a + b * c / ( a - d )
    • 50 print x

1BA3 – G Lacey – Semester 1 Lecture 4

determine and print the sum of two numbers
read a

read b

sum = a + b

print sum

end

Determine and print the sum of two numbers

10 rem add and print the sum of 2 nums

20 input a

30 input b

40 let c = a + b

50 print c

60 end

1BA3 – G Lacey – Semester 1 Lecture 4

print the larger of 2 numbers
read a

read b

true

if a > b

false

print a

print b

end

Print the larger of 2 numbers

1BA3 – G Lacey – Semester 1 Lecture 4

print the larger of two numbers
Print the larger of two numbers
      • 10 input a
      • 20 input b
      • 30 if a >= b goto ? x
      • 40 print b
      • 50 goto ? y
  • x 60 print a
  • y 70 end

1BA3 – G Lacey – Semester 1 Lecture 4

compute the sum of a series of positive numbers
Compute the sum of a series of positive numbers
  • Series is terminated by a negative number
  • Maximum number of integers in the series is 10
  • This problem was solved in a previous lecture using SML

1BA3 – G Lacey – Semester 1 Lecture 4

compute the sum of a series of positive numbers8
sum = 0

counter = 0

read a

true

if a < 0

false

true

if counter

== 10

print sum

false

counter +1

end

sum + a

Compute the sum of a series of positive numbers

1BA3 – G Lacey – Semester 1 Lecture 4

compute the sum of a series of positive numbers9
Compute the sum of a series of positive numbers

10 rem read series of numbers and print sum

12 rem initialise counter and sum

15 let c = 0

20 let s = 0

22 rem start programme

25 input x

30 if x > 0 goto ?

35 if c == 10 goto ?

40 let c = c + 1

45 let s = s + x

47 rem restart loop

50 goto 40

53 rem print sum and end programme

55 print s

60 end

1BA3 – G Lacey – Semester 1 Lecture 4

a simple to sml compiler

A SIMPLE to SML Compiler

An introduction to the concepts in translating HLL into Assembly

1BA3 – G Lacey – Semester 1 Lecture 4

compilers
Compilers
  • Compilers translate High Level Languages (HLLs) like Java and C++ into Machine code
  • Two reasons for using HLLs
    • Ease of programming
      • It is easier to solve large problems using HLLs because most of the machine specific detail is hidden.
    • Machine Independence
      • Different processors use different instruction sets. This detail is taken care of by the compiler. Thus a c++ program written on a mac will also compile on a p.c.

1BA3 – G Lacey – Semester 1 Lecture 4

translating simple to simpletron machine language
Translating Simple to Simpletron Machine Language
  • Compiling a Simple programme involves translating the Simple Code to SML
  • Each Simple statement has to be translated into SML instructions
  • Each variable must be allocated memory space
  • Each constant must be allocated memory space

1BA3 – G Lacey – Semester 1 Lecture 4

compiling simple
Compiling Simple
  • Allocating Data Space for variables and constants
    • start at the max memory and work down.
    • E.G. in Simpletron begin by allocating memory space 99, then 98, 97...
  • Compiling Instructions
    • Instructions are placed at the bottom of memory working up.
    • E.G. in Simpletron the processor always starts at 00. The first instruction is placed at 00, the next at 01, then 02 ...
  • Running out of space
    • If the programme is too big (too much code and too many variables and constants) the instruction space will run into the data space.

1BA3 – G Lacey – Semester 1 Lecture 4

example production rules for translating simple into sml
Example Production Rules for translating Simple into SML
  • 10 input x
    • input corresponds to the READ operation SML thus the operator part of the SML instruction is 10
    • x is a variable and must be allocated memory space if none has been allocated already.
    • the instruction placed in memory location 00 is 1099
  • 20 print x
    • print corresponds to the WRITE operator in SML thus the operator is 11
    • x has already been allocated memory location 99
    • the instruction in memory location 01 is 1199
  • 30 goto 10
    • goto corresponds to the BRANCH operator in SML thus the operator is 40
    • the instruction compiled from line number 10 was placed in memory location 00 thus the operand is 00
    • the instruction 4000 is placed in memory location 02
  • 40 end
    • corresponds to HALT in SML thus 4300 goes into location 03

1BA3 – G Lacey – Semester 1 Lecture 4

example compilation
Example Compilation

Simple Code SML Instructions

10 input x

20 print x

30 goto 10

40 end

1BA3 – G Lacey – Semester 1 Lecture 4

more complex production rules
More Complex Production Rules
  • To translate if and goto statements the compiler must generate more than one statement.
  • First :
    • load x into the accumulator
  • Second :
    • branch if accumulator is zero to instruction from line number 10

Simple SML

10 input x

20 if x == 0 goto 10

1BA3 – G Lacey – Semester 1 Lecture 4

another example
Another Example

Simple SML

10 input x

20 input y

30 if x > y goto 10

1BA3 – G Lacey – Semester 1 Lecture 4

ad