Difference between revisions of "Attribute Grammars/Exercise 5: Expressions with bases (2)"

From Wiki**3

< Attribute Grammars
(New page: == Problem (in Portuguese) == Pretende-se criar uma gramática atributiva que some uma sequência de inteiros separados por '''+'''. A expressão tem no início a base de trabalho (valor ...)
 
 
Line 11: Line 11:
 
== Solution ==
 
== Solution ==
  
[[category:Compilers]]
+
[[category:Compiladores]]
[[category:Teaching]]
+
[[category:Ensino]]

Latest revision as of 16:25, 6 April 2015

Problem (in Portuguese)

Pretende-se criar uma gramática atributiva que some uma sequência de inteiros separados por +. A expressão tem no início a base de trabalho (valor entre 2 e 36 indicado em base 10: sequência de dígitos entre 0 e 9, representados pelo elemento lexical DIG), sendo separada da soma propriamente dita pelo símbolo #. Os números a somar (entre parenteses) são codificados como sequências de dígitos de 0 a 9 e, para bases acima de 10, contendo também as letras de A a Z que forem necessárias para representar todos os valores da base de trabalho.

O exemplo seguinte tem como resultado 360=(1*17^2+2*17^1+4*17^0)+(1*17^1+16*17^0).

1 7 # ( 1 2 4 + 1 G )

Crie a gramática para realizar a função descrita e construa a árvore semântica anotada para a entrada acima (incluindo grafo de dependências). Indique qual o significado de todos os atributos utilizados.

Solution