Apresente a árvore de derivação (parse tree) da expressão aritmética x = a * b + c * d - e * f, sobre a gramática livre de contexto apresentada a seguir (Price, 2005).
Notação Algébrica:
G = ({A, E, T, F, V}, {a, b, c, d, e, f, x, =, +, -, *, /, (, )}, P, A) P = {A → V=E E → T+E | T-E | T T → F*T | F/T | F F → (E) | V V → a | b | c | d | e | f | x}
Notação de Backus-Naur (BNF):
G = ({atr, exp, ter, fat, var}, {a, b, c, d, e, f, x, =, +, -, *, /, (, )}, P, atr) P = {<atr> ::= <var>=<exp> <exp> ::= <ter>+<exp> | <ter>-<exp> | <ter> <ter> ::= <fat>*<ter> | <fat>/<ter> | <fat> <fat> ::= (<exp>) | <var> <var> ::= a | b | c | d | e | f | x}
Price, Ana Maria de Alencar. (2005). Implementação de Linguagens de Programação: compiladores. 3ª edição. Porto Alegre: Instituto de Informática da UFRGS: Sagra Luzzatto. 212 páginas.