assignment 3 solution background n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Assignment 3 Solution Background PowerPoint Presentation
Download Presentation
Assignment 3 Solution Background

Loading in 2 Seconds...

play fullscreen
1 / 9

Assignment 3 Solution Background - PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on

Assignment 3 Solution Background. Constant Expression : Infix to postfix 2 + 3 * 4 ( 2 + (3 * 4 ) ) 2 3 4 * + Evaluating postfix expression using stack | 2 | | 2 | 3 | 4 | | 2 | 12 | |14|. Evaluating postfix expression using stack | 2 | | 2 | 3 | 4 | | 2 | 12 | |14|

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 'Assignment 3 Solution Background' - venus-maxwell


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
slide2
Constant Expression : Infix to postfix

2 + 3 * 4

( 2 + (3 * 4 ) )

2 3 4 * +

  • Evaluating postfix expression using stack

| 2 |

| 2 | 3 | 4 |

| 2 | 12 |

|14|

slide3
Evaluating postfix expression using stack

| 2 |

| 2 | 3 | 4 |

| 2 | 12 |

|14|

  • Compiling constant expression for a stack machine

Push 2

Push 3

Push 4

Mul

Add

slide4
Generalizing to expressions with variables

i + j * k

Push i

Push j

Push k

Mul

Add

  • Conversion to abstract syntax tree

+

i *

j k

slide5
Generalizing to expressions with variables

i + j * k

Push i

Push j

Push k

Mul

Add

  • Byte code generation for static f(int i,j,k)

iload_0

iload_1

iload_2

imul

iadd

byte code for i j k for static f int i j k
Right associative “+”

iload_0

iload_1

iload_2

iadd

iadd

Left associative “+”

iload_0

iload_1

iadd

iload_2

iadd

Byte code for i + j + k for static f(int i,j,k)
slide7
Introducing numeric types with real variables a + b

Push a

Push b

Add

  • Byte code generation for static f(double a,b)

dload_0

dload_2

dadd

slide8
Mixing int and double variables (requiring coercion code) for static f(double a,int i, j)

i + j * a

iload_2

i2d

iload_3

i2d

dload_0

dmul

dadd

slide9
Translation algorithm essence

trans (e1 * e2) =

trans(e1)

[type coercion code?]

trans(e2)

[type coercion code?]

trans(*)

  • Map grammar rules to control structures
    • E.g., alternatives, while-loop, etc