Tradução dirigida pela sintaxe

Origem: Wikipédia, a enciclopédia livre.

Tradução dirigida pela sintaxe se refere ao método de implementação de compilador onde a tradução da linguagem fonte é totalmente dirigida pela análise sintática.

Um método comum de tradução dirigida pela sintaxe é traduzir a cadeia de caracteres em uma sequência de ações atrelando cada ação às regras da gramática.[1] Assim, analisar a cadeia da gramática produz uma sequência de aplicação de regras. Esse método provém uma forma simples de atrelar semântica à sintaxe.

Visão geral[editar | editar código-fonte]

Tradução dirigida pela sintaxe fundamentalmente funciona pela adição de ações às produções em uma gramática livre de contexto, resultando em uma Definição Dirigida pela Sintaxe.[2] Ações são passos ou procedimentos que serão efetuados quando a produção for usada em uma derivação. Por convenção, colocam-se chaves ao redor de ações; se chaves forem necessárias como símbolos da gramática, utilizam-se aspas para diferenciar. Uma especificação de gramática incorporada com ações a serem executadas é chamada de esquema de tradução dirigida pela sintaxe [1] (às vezes simplesmente 'esquema de tradução').

Cada símbolo na gramática pode ter um atributo, que é um valor que é associado com o símbolo. Atributos comuns podem incluir um tipo variável, o valor de uma expressão, etc. Dado um símbolo X com um atributo t, esse atributo é referido como X.t.

Dessa forma, dados ações e atributos, a gramática pode ser utilizada para traduzir cadeias de sua linguagem pela aplicação de ações e carregando informação através de cada atributo do símbolo.

Implementação[editar | editar código-fonte]

Qualquer tradução dirigida pela sintaxe pode ser implementada primeiro construindo a árvore sintática e então executando as ações na ordem de profundidade esquerda para direita, durante o percurso em pré-ordem.

Tipicamente, essas traduções são implementadas durante a análise sintática, sem construir a árvore. Elas também podem ser usadas para importar classes de Definições Dirigidas pela Sintaxe.

Ver também[editar | editar código-fonte]

References[editar | editar código-fonte]

  1. a b Gurari, Eitan M. "Syntax-Directed Translation Schemes (SDTS's)."
  2. Aho, Alfred V. Compilers: Principles, Techniques, & Tools.