the poli sh notati on arithmetic and logical expressions
play

THE POLI SH NOTATI ON Arithmetic and Logical Expressions ! - PDF document

THE POLI SH NOTATI ON Arithmetic and Logical Expressions ! repeatedly scan through the expression ! take parentheses and priorities of operators into account a + b + c * d - e / g a + b + ( c * d ) - ( e / g ) a + (( b + c ) * d - e ) / g a +


  1. THE POLI SH NOTATI ON

  2. Arithmetic and Logical Expressions ! repeatedly scan through the expression ! take parentheses and priorities of operators into account a + b + c * d - e / g a + b + ( c * d ) - ( e / g ) a + (( b + c ) * d - e ) / g a + b <= c && a + b <= d ( a + b <= c ) || ( a + b <= d ) S. Prasitjutrakul 1994

  3. The Polish Notations Q : How can a compiler accept an expression and produce correct code ? A : Tranforming the expression into a form called Polish notation Prefix form Infix form Postfix form * a b a * b a b * + a * b c a + b * c a b c * + * + a b c (a + b) * c a b + c * Reverse Polish notation S. Prasitjutrakul 1994

  4. Expression Evaluations : Stacks 5 * ( ( ( 9 + 8 ) + ( 4 * 6 ) ) - 7 ) Postfix form : 5 9 8 + 4 6 * + 7 - * Push( 5 ) Push( 9 ) Push( 8 ) Push( Pop() + Pop() ) Push( 4 ) Push( 6 ) Push( Pop() * Pop() ) Push( Pop() + Pop() ) Push( 7 ) Push( Pop() - Pop() ) Push( Pop() * Pop() ) S. Prasitjutrakul 1994

  5. Expression Evaluations : Stacks 5 * ( ( ( 9 + 8 ) + ( 4 * 6 ) ) - 7 ) Postfix form : 5 9 8 + 4 6 * + 7 - * 8 4 9 9 17 17 5 5 5 5 5 6 7 4 24 41 41 34 17 17 170 5 5 5 5 5 S. Prasitjutrakul 1994

  6. I nfix Form → Postfix Form A / B ? C + D * E - A * C ( ( ( A / ( B ? C ) ) + ( D * E ) ) - ( A * C ) ) A B C ? / D E * + A C * - S. Prasitjutrakul 1994

  7. I nfix Form → Postfix Form A + B * C A + B * C A + B * C A + B * C * + + + A B A B A A A + B * C A + B * C A + B * C * + + A B C A B C * A B C * + S. Prasitjutrakul 1994

  8. I nfix Form → Postfix Form (A+B)*C (A+B)*C (A+B)*C (A+B)*C + + ( ( ( ( A A B A (A+B)*C (A+B)*C (A+B)*C (A+B)*C * * A B + A B + A B + C A B + C * S. Prasitjutrakul 1994

  9. I nfix Form → Postfix Form X-(A+B)*C X-(A+B)*C X-(A+B)*C X-(A+B)*C X-(A+B)*C + ( ( ( - - - - X X A X A X X X-(A+B)*C X-(A+B)*C X-(A+B)*C X-(A+B)*C X-(A+B)*C + ( * * - - - - X A B X A B + X A B + X A B + C X A B + C * - S. Prasitjutrakul 1994

  10. Operator Priorities Symbol In-Stack Priority In-Coming Priority ) - - ? 3 4 *, / 2 2 +, - 1 1 ( 0 4 Operators are taken out of the stack as long as the in-stack priority is greater than or equal to the in-coming priority of the new operator. input : a*b ? 2 + 3 output: ab2 : ab2 ?∗ ? * S. Prasitjutrakul 1994

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend