Download presentation
Presentation is loading. Please wait.
1
Assignment 3 Solution Background
2
Constant Expression : Infix to postfix
2 + 3 * 4 ( 2 + (3 * 4 ) ) * + Evaluating postfix expression using stack | 2 | | 2 | 3 | 4 | | 2 | 12 | |14|
3
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
4
Generalizing to expressions with variables i + j * k
Push i Push j Push k Mul Add Conversion to abstract syntax tree + i * j k
5
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
6
Byte code for i + j + k for static f(int i,j,k)
Right associative “+” iload_0 iload_1 iload_2 iadd Left associative “+” iload_0 iload_1 iadd iload_2
7
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
8
Mixing int and double variables (requiring coercion code) for static f(double a,int i, j)
i + j * a iload_2 i2d iload_3 dload_0 dmul dadd
9
Translation algorithm essence trans (e1 * e2) = trans(e1)
[type coercion code?] trans(e2) trans(*) Map grammar rules to control structures E.g., alternatives, while-loop, etc
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.