Apresente o código de três endereços, representado por quádruplas, considerando que a expressão aritmética f = (a - b + c / d * e) * (c / d * (a - b + c)) seja processada em pós-ordem, sobre a gramática livre de contexto apresentada a seguir.
Notação Algébrica:
G = ({A, E, T, F, V}, {a, b, c, d, e, f, =, +, -, *, /, (, )}, P, A) P = {A → V=E E → E+T | E-T | T T → T*F | T/F | F F → (E) | V V → a | b | c | d | e | f}
Notação de Backus-Naur (BNF):
G = ({atr, exp, ter, fat, var}, {a, b, c, d, e, f, =, +, -, *, /, (, )}, P, atr) P = {<atr> ::= <var>=<exp> <exp> ::= <exp>+<ter> | <exp>-<ter> | <ter> <ter> ::= <ter>*<fat> | <ter>/<fat> | <fat> <fat> ::= (<exp>) | <var> <var> ::= a | b | c | d | e | f}
A notação pós-fixada da expressão aritmética f = (a - b + c / d * e) * (c / d * (a - b + c)) é
f a b - c d / e * + c d / a b - c + * * =
oper | arg1 | arg2 | result | |
---|---|---|---|---|
(0) | - | a | b | T1 |
(1) | / | c | d | T2 |
(2) | * | T2 | e | T3 |
(3) | + | T1 | T3 | T4 |
(4) | + | T1 | c | T5 |
(5) | * | T2 | T5 | T6 |
(6) | * | T4 | T6 | T7 |
(7) | = | T7 | f |