Vous êtes sur la page 1sur 6

TRADUCCIN DIRIGIDA POR SINTAXIS

Universidad de Nacional de Trujillo


Sede Valle Jequetepeque
Escuela de Informtica
Compiladores


Resumen
El presente artculo, se trata sobre la traduccin dirigida por sintaxis, para abordar
mejor el tema se definen un conjunto de conceptos que ayudan a comprender mejor y
describir cmo es posible para un compilador llevarlo a cabo, tomando en cuenta
todos los pasos que sigue.
Es una generalizacin de una gramtica incontextual en la cual cada smbolo tiene
asociado un conjunto de atributos. Hay dos clases de atributos posibles: Atributos
Sintetizados y Atributos Heredados. Asocia informacin a construcciones de un
lenguaje de programacin, asignndole atributos al smbolo de la gramtica que
representa dicha construccin. El valor de los atributos se calcula mediante reglas
semnticas que se asocian a cada produccin.
Palabras clave: traduccin, atributo heredado, atributo sintetizado, anlisis
sintctico, reglas semnticas, descendente.

1. Introduccin
Un compilador utiliza gramticas independientes de contexto como gua para la
traduccin de lenguajes, si logra de alguna manera asociar informacin a las
distintas construcciones del lenguaje de programacin proporcionando atributos a
los smbolos de la gramtica, puede entonces calcular sus valores mediante reglas
semnticas.
Aunque hay dos maneras de hacer la asociacin entre reglas semnticas y
producciones, que son mediante definiciones dirigidas por sintaxis y esquemas de
traduccin, nos interesa particularmente sta ltima, pues con stas se trabaja ms
pues se puede definir el orden en que se ejecutan las acciones y las evaluaciones
de los atributos.

2. Definicin Dirigida por Sintaxis
Una definicin dirigida por sintaxis es una gramtica de contexto libre en la que
cada smbolo gramatical (terminales y no terminales) tiene un conjunto de atributos
asociados, dividido en dos subconjuntos llamados atributos sintetizados y atributos
heredados de dicho smbolo gramatical.
Un atributo puede representar cualquier cosa. El valor de un atributo en un nodo de
un rbol de anlisis sintctico se define mediante una regla semntica asociada a la
regla de produccin utilizada en dicho nodo. El valor de un atributo sintetizado de
un nodo se calcula a partir de los valores de los atributos hijos de dicho nodo en el
rbol de anlisis sintctico; el valor de un atributo heredado se calcula a partir de
los valores de los atributos en los hermanos y el padre de dicho nodo.
Las reglas semnticas establecen las dependencias entre los atributos que sern
representadas mediante un grafo. Del grafo de dependencias se obtiene un orden
de evaluacin de las reglas semnticas. La evaluacin de las reglas semnticas
define los valores de los atributos en los nodos del rbol de anlisis sintctico para
la cadena de entrada.

3. Atributos
Un atributo puede representar cualquier cosa, un nombre, una cadena, un nmero,
un tipo, una posicin de memoria, su valor en un nodo se define mediante una regla
semntica asociada a la produccin usada en dicho nodo.
En una definicin dirigida por sintaxis se asume que los terminales slo tienen
atributos sintetizados, ya que la definicin no proporciona ninguna regla semntica
para los terminales. El analizador lxico es el que proporciona generalmente los
valores para los atributos de los terminales.
3.1. Atributos Sintetizados

Se puede decir que un atributo es sintetizado si su valor en un nodo del rbol
de anlisis sintctico se determina a partir de los valores de atributos de los
hijos de ese nodo (como decir de abajo hacia arriba). Se pueden calcular
mediante un solo recorrido ascendente del rbol de anlisis sintctico, lo que
es muy deseable.

3.2. Atributos Heredados

Un atributo heredado es uno cuyo valor en un nodo de un rbol de anlisis
sintctico est definido a partir de los atributos en el padre y los hermanos de
dicho nodo. stos sirven para expresar la dependencia de una construccin de
un lenguaje de programacin en el contexto en el que aparece. Tambin sirven
para expresar la dependencia que hay entre una construccin del lenguaje de
programacin y su contexto. Siempre es posible reescribir una definicin
dirigida por sintaxis para que sea atribuida.


4. Grafos de dependencias

Las interdependencias entre los atributos heredados y sintetizados en los nodos de
un rbol de anlisis sintctico se pueden representar mediante un grafo dirigido
llamado grafo de dependencias. El grafo de dependencias se construye como se
indica ms arriba. A Partir de un ordenamiento topolgico del grafo de
dependencias, se obtiene un orden de evaluacin para las reglas semnticas .La
evaluacin de las reglas semnticas en este orden produce la traduccin de la
cadena de entrada.

5. Reglas Semnticas

Las reglas semnticas establecen las dependencias entre los atributos que sern
representadas mediante un grafo. El grafo de dependencias proporciona el orden
de evaluacin de las reglas semnticas.
La evaluacin de las reglas semnticas define los valores de los atributos de los
nodos del rbol. Una regla semntica puede tener tambin efectos colaterales
(imprimir un valor, actualizar una variable global...)
Una gramtica con atributos es una definicin dirigida por la sintaxis en la que las
funciones de las reglas semnticas no pueden tener efectos colaterales.

5.1 Mtodos para evaluar las Reglas Semnticas

Se realizan en el momento de compilacin, el orden se obtiene de un
ordenamiento topolgico del grado de dependencias construido segn el rbol
de anlisis sintctico para cada entrada, si hay varios ciclos no funciona.

5.2 Mtodos Basados en Reglas

Se realiza en el momento de construccin del compilador, las reglas
semnticas asociadas con las producciones se analizan a mano. No necesita
construir un grafo de dependencias de forma explcita.

5.3 Mtodos Sin Recuerdo

Para realizar el orden de evaluacin no tiene en cuenta las reglas semnticas.
Por ejemplo en el momento de anlisis sintctico, No necesita construir un
grafo dependencias de forma explcita.


6. Construccin de rboles Sintcticos

El uso de rboles de anlisis sintctico como representacin intermedia permite que
la traduccin se separe del anlisis sintctico. Las rutinas de traduccin invocadas
durante el anlisis sintctico deben activarse con dos clases de limitaciones. La
primera, una gramtica que resulte adecuada para el anlisis sintctico puede no
reflejar la estructura jerrquica natural de las construcciones del lenguaje.
La segunda, el mtodo de anlisis sintctico restringe el orden en que se
consideran los nodos de un rbol de anlisis sintctico. Pues este orden puede no
coincidir con el orden en que se va disponiendo de la informacin sobre una
construccin.


6.1. Arboles Sintcticos

Un rbol sintctico es una forma condensada de un rbol de anlisis sintctico,
til para representar construcciones de lenguajes. Los operadores y las
palabras no aparecen como hojas sino ms bien estn asociadas con el nodo
interior que sera el padre de dichas hojas en el rbol anlisis sintctico.
La construccin de un rbol sintctico para una expresin es similar a la
traduccin de la expresin a una forma posfija. Se construyen subrboles para
las subexpresiones creando un nodo para cada operador y para cada
operando. Los hijos de un nodo de un operador son las races de los nodos que
representan las subexpresiones que constituyen los operandos de dicho
operador.
Se puede implantar cada nodo en un rbol sintctico como un registro con
varios campos. En el nodo para un operador, un campo identifica el operador y
el resto de los campos contienen apuntadores a los nodos de los operandos. El
operador a menudo se denomina etiqueta del nodo. Cuando se usan para
traducir los nodos de un rbol sintctico pueden tener ms campos para
guardar valores (o apuntadores a los mismos) de los atributos asociados al
nodo.


7. Gramtica L-atribuida
Tambin llamada atribuida por la izquierda, o definicin con atributos por la
izquierda. En toda regla A X1 X2... Xn, cada atributo heredado de Xj 1 j n
depende slo de:
Los atributos (sintetizados o heredados) de los smbolos X1 X2... Xj-1.
Los atributos heredados de A.
Este tipo de gramticas no producen ciclos y adems admiten un orden de
evaluacin en profundidad.

8. Gramtica S-atribuida

Es una gramtica atribuida que slo contiene atributos sintetizados Una gramtica
S- atribuida es tambin L-atribuida. Los atributos sintetizados se pueden evaluar
con un analizador sintctico ascendente conforme la entrada es analizada.



9. Grafos Dirigidos Acclicos para Expresiones
Sirve para identificar expresiones comunes .Tiene un nodo para cada sub expresin
de la expresin, un nodo interior representa un operador y sus hijos representan los
operando.

10. Evaluacin ascendente de definiciones atributos sintetizados
Los atributos se pueden evaluar con un analizador sintctico ascendente conforme
la entrada es analizada.

11. Atributos sintetizados en la pila del analizador sintctico

A partir de un definicin con atributos sintetizados, el generador de analizadores
sintcticos puede construir un traductor que evalu los atributos conforme analiza
la entrada.

12. Definiciones con atributos por la izquierda

Toda definicin con atributos sintetizados es una definicin con atributos por la
izquierda

13. Esquemas de traduccin

Un esquema de traduccin es una gramtica independiente de contexto en la que
se asocian atributos con los smbolos gramaticales y se insertan acciones
semnticas encerradas entre llaves { } dentro de los lados derechos de las
producciones. Los esquemas de traduccin pueden tener tanto atributos
sintetizados como heredados.
Cuando se disea un esquema de traduccin, se deben respetar algunas
limitaciones para asegurarse de que el valor de un atributo est disponible cuando
una accin se refiera a l. Estas limitaciones, motivadas por las definiciones con
atributos por la izquierda, garantizan que las acciones no hagan referencia a un
atributo que an no haya sido calculado.
El ejemplo ms sencillo ocurre cuando slo se necesitan atributos sintetizados, en
este caso, se puede construir el esquema de traduccin creando una accin que
conste de una asignacin para cada regla semntica y colocando esta accin al
final del lado derecho de la produccin asociada.




14. Traduccin Descendente

Se trabaja con esquemas de traduccin en lugar de hacerlo con definiciones
dirigidas por sintaxis, as que se puede ser explcito en cuanto al orden en que
tienen que lugar las acciones y las evaluaciones de los atributos.


15. Diseo de un Traductor Predictivo

Un analizador sintctico predictivo es un tipo especial de analizador sintctico
descendente recursivo en el que el smbolo del pre anlisis determina sin
ambigedad el procedimiento seleccionado para cada no terminal.



16. Conclusiones

Las traducciones dirigidas por la sintaxis basan su anlisis en dos tipos de atributos,
lo sintetizados, estos pueden obtenerlos de manera inmediata al calcular los valores
de los nodos hijos; y los atributos heredados, los cuales estn definidos por los
nodos padres o hermanos.
Para realizar un anlisis sintctico se basan en la creacin de un grafo de
dependencias en el cual a la hora de recorrerlo se evalan cada una de las
acciones semnticas que se tienen asignadas para cada nodo respetivo. Este tipo
de traduccin es til para determinar el tipo de una variable en una expresin, es
decir, el chequeo de tipos; y verificar que este corresponda al que la expresin
puede poseer. Se puede trabajar tanto con esquemas de traduccin como con
definiciones dirigidas por sintaxis.



17. Referencias Bibliografas

http://cursocompiladoresuaeh.blogspot.com/2010/11/unidad-v-traduccion-dirigida-por-la.html
http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:compi:comp_sesion16_2008-
1.pdf
http://www.di-mare.com/adolfo/cursos/2008-1/pp-TradSintax.pdf
http://es.slideshare.net/AnayeliPeraltaHernandez/traducciondirigidaporlasintaxis
http://www.lcc.uma.es/~galvez/ftp/tci/tictema4.pdf

Vous aimerez peut-être aussi