Ir al contenido principal

Traducción Dirigida por Sintaxis en Compiladores

 

Traducción Dirigida por Sintaxis 


Equipo editorial de IONOS(2020), establece una técnica de ejecución del compilador en la que la traducción del código fuente la realiza totalmente en el analizador, se conoce como traducción dirigida por sintaxis. 

Es un enfoque fundamental en el diseño de compiladores, ya que permite asociar información semántica a las construcciones sintácticas de un lenguaje de programación. Al utilizar gramáticas independientes de contexto y asignar atributos a los símbolos gramaticales, los compiladores pueden calcular los valores de estos atributos mediante reglas semánticas, lo que facilita la traducción del código fuente a una representación intermedia o código objeto.

Características:

  •  Utilizan una gramática independiente de contexto para especificar la estructura sintáctica de la entrada.
  •   A cada símbolo de la gramática se le asocia un conjunto de atributos.
  •  Para cada regla de la gramática se le asocia un conjunto de reglas semánticas para calcular los valores de los atributos asociados con los símbolos de esa regla.



Los atributos son el  conjunto  asociado a cada símbolo gramatical se divide en dos subconjuntos:

  • Atributos sintetizado

Se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico donde se calculan a partir de los valores de los nodos hijos en el árbol de análisis sintáctico.



  • Atributos heredado
Son utilizado para expresar la dependencia de una construcción de un lenguaje en el contexto en el que aparece además dependen de los valores de los nodos de padres o hermanos.




Grafos de Dependencias y Evaluación de Reglas Semánticas

La interdependencia entre los atributos heredados y sintetizados en los nodos de un árbol de análisis sintáctico se puede representar mediante un grafo dirigido llamado grafo de dependencias. Donde un atributo en un nodo depende de otro atributo, la evaluación de las reglas semánticas debe seguir un orden específico para asegurar que las dependencias se haga bien.

La evaluación de las reglas semánticas se puede realizar mediante diferentes métodos:

  • Árbol de Análisis Sintáctico: Se construye un grafo de dependencias y se determina un orden de evaluación válido.
  • Basado en Reglas: Las reglas semánticas se evalúan durante la construcción del compilador, asegurando así las acciones y evaluaciones de los atributos en el orden correcto.
  • Sin Recuerdo: Se escoge un orden sin considerar las reglas semánticas.




Los esquemas de traducción 

Son gramáticas independientes de contexto en las que se asocian atributos con los símbolos gramaticales y se insertan acciones semánticas dentro de las producciones. Estos esquemas pueden tener tanto atributos sintetizados como heredados y permiten un control explícito sobre el orden en que se ejecutan las acciones y evaluaciones de los atributos. 

Este enfoque es especialmente útil en la traducción descendente, donde la eliminación de la recursividad izquierda puede ser necesaria para evitar conflictos​.



Las Traducción Descendente
 Se enfoca en esquemas de traducción en lugar de definiciones dirigidas por sintaxis, permitiendo especificar el orden de las evaluaciones y acciones. Esto es útil para eliminar la recursividad izquierda y manejar eficientemente las dependencias entre los atributos. La implementación descendente facilita el manejo de gramáticas y la evaluación de atributos en compiladores par el análisis sintáctico.


El método de evaluación ascendente 

Son utilizados para atributos heredados es aplicable en gramáticas LL(1) y, en muchos casos, en gramáticas LR(1) este enfoque implica la modificación de esquemas de traducción con acciones semánticas incrustadas. Donde las acciones se eliminan inicialmente y se reemplazan con no terminales que actúan como marcadores. Los proceso asegura que las acciones se ejecuten en el momento adecuado, preservando la correcta evaluación de los atributos heredados y sintetizados para su función.


Los evaluadores recursivos 

Son funciones que recorren un árbol sintáctico para evaluar atributos basándose en una definición dirigida por la sintaxis. Estas funciones visitan cada nodo del árbol, evaluando hasta los valores conforme avanzan.​



El Análisis de las Definiciones Dirigidas por Sintaxis 

Son las funciones para un no terminal en una definición dirigida por sintaxis donde los valores de los atributos heredados pasan atributos sintetizados. 

Los terminales pueden evaluarse con una función simple debido a su naturaleza uniforme. La traducción dirigida a sintaxis aborda problemas como la sobrecarga de identificadores y la selección de tipos para expresiones, mediante un análisis ascendente y descendente que asegura la correcta verificación de tipos en las expresiones.


Ejemplo



Conclusión

La traducción dirigida por sintaxis es una técnica fundamental en el diseño de compiladores, que permite asociar información semántica a las construcciones sintácticas de un lenguaje de programación, permite una evaluación precisa y ordenada de atributos mediante el uso de gramáticas independientes de contexto y reglas semánticas. Al utilizar  atributos sintetizados y heredados, grafos de dependencia y esquemas de traducción, los compiladores pueden realizar traducciones precisas y eficientes, garantizando la coherencia semántica del código fuente. Lo cual particularmente es útil en el análisis y verificación de tipos, así también como en representaciones intermedias o código objeto a partir del código fuente también modificar esquemas de traducción y utilizar evaluadores recursivos asegura que las acciones semánticas se ejecuten de manera adecuada, facilitando el proceso de compilación .



  Referencia

   Capítulo 5 del libro Autómatas y compiladores de Alfred V. Aho. (s. f.). http://www.di-mare.com/adolfo/cursos/2008-1/pp-TradSintax.pdf

  Chavarri, J. G. (s. f.). Traducción dirigida por Sintaxis. Scribd. https://es.scribd.com/document/234723103/Traduccion-Dirigida-Por-Sintaxis

  Demonics. (2016, 4 agosto). Traducción dirigida por la sintaxis. Aprende y Programa. https://aprendeyprogramablog.wordpress.com/2016/08/04/traduccion-dirigida-por-la-sintaxis/

  Equipo editorial de IONOS. (2020, 24 marzo). Compilador e intérprete: definición y diferencias. IONOS Digital Guide. https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/compilador-e-interprete/

  Prezi, F. V. O. (s. f.). Traducción dirigida por la sintaxis. prezi.com. https://prezi.com/skgmjexje2kn/traduccion-dirigida-por-la-sintaxis/

  Tema 4 Gramáticas Atribuidas. (s. f.). http://www.lcc.uma.es/~galvez/ftp/tci/tictema4.pdf

   Traducción Dirigida por Sintaxis. (2011, 1 febrero). Gramaticas Formales. https://gramaticasformales.wordpress.com/2011/02/01/traduccion-dirigida-por-sintaxis/




Autora :Isabel Rodríguez

C






Comentarios