12.07.2015 Views

assembly - Projeto Pesquisa - Furb

assembly - Projeto Pesquisa - Furb

assembly - Projeto Pesquisa - Furb

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Projeto</strong> de um tradutor preditivo• AlgoritmoEntrada: um esquema de tradução (o esquema deve ser baseado numa gramática apropriadapara análise preditiva).Resultado: código de um tradutor dirigido por sintaxe.Método:1) Para cada não-terminal A, construa uma função que tenha um parâmetro formal para cadaatributo herdado de A e que retorne os valores dos atributos sintetizados de A. Além disso, afunção para A deve ter uma variável local para cada atributo de símbolo gramatical que aparecenas produções de A.2) O código para o não-terminal A deve decidir qual produção usar, baseado no símbolo correnteda entrada. Considerando o lado direito da produção a ser usada, da esquerda para a direita, ocódigo associado deve implementar o seguinte:i) para cada token X, verificar se X é o token lido e avançar a leitura;ii) para cada não-terminal B, gerar uma atribuição c := B(b1, b2, ..., bk), sendo b1, b2, ..., bkvariáveis para os atributos herdados de B, e c a variável para o atributo sintetizado de B;iii) para cada ação semântica, copiar o código correspondente, substituindo cada referência aatributo pela variável desse atributo.Fonte: adaptado de Price e Toscani (2001, p. 110).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!