Anda di halaman 1dari 5

Presentacin

Nombre: Emmanuel
Garca Ramrez

Matricula:
08-EIS6-1-118

Materia: Compiladores e
Intrprete

Tema:
Traduccin dirigida por la sintaxis
Aula:
Laboratorio B

Profesor:
frantz Saint Germain

Definiciones dirigidas por la sintaxis


Es una generalizacin de una gramtica incontextual en la cual cada smbolo
tiene asociado un conjunto de atributos.
Utiliza una gramtica independiente de contexto para especificar la estructura
sintctica de la entrada, la idea es asociar con cada smbolo de la gramtica un
conjunto de atributos (que luego veremos que pueden ser sintetizados o
heredados) y adems a cada produccin un conjunto de reglas semnticas
para calcular los valores de los atributos asociados con los smbolos que
aparecen en esa produccin. La definicin dirigida por sintaxis consiste en s
entonces de la gramtica y el conjunto de reglas semnticas.
Construccin de rboles sintcticos
La construccin de un rbol de anlisis sintctico puede hacerse precisa si
tomamos una vista derivacional, en la cual las producciones se tratan como
reglas de rescritura.
Esto corresponde a la construccin descendente de un rbol de anlisis
sintctico, pero la precisin que ofrecen las derivaciones ser muy til cuando
se usa el anlisis sintctico ascendente. El anlisis sintctico ascendente se
relaciona con una clase de derivaciones conocidas como derivaciones de ms
a la derecha, donde el no terminal por la derecha se rescribe en cada paso.

La produccin

significa que si E denota una expresin,

entonces E debe tambin denotar una expresin. La sustitucin de E por E


se escribira as:

E deriva a E
rboles de anlisis sintctico y derivaciones
El rbol es una representacin grfica de una derivacin que filtra el orden en
el que se aplican las producciones para sustituir los no terminales. El nodo
interior se etiqueta como el no terminal A en el encabezado de la produccin.

Los hijos se etiquetan de izquierda a derecha mediante los smbolos en el


cuerpo de la produccin por la que se sustituy esta A durante la derivacin:

rbol de anlisis sintctico para (id + id)

Un rbol de anlisis sintctico ignora las variaciones en el orden en el que se


sustituyen los smbolos en las formas de las oraciones, hay relacin de varios a
uno entre las derivaciones y los rboles de anlisis sintctico. Tanto las
derivaciones por la izquierda como las de por la derecha eligen un orden
especfico para sustituir smbolos en las formas de las oraciones. Todo los
rboles sintcticos tienen asociadas una derivacin nica por la izquierda y una
nica por la derecha.

Evaluacin ascendente de definiciones con atributos sintetizados


Los atributos se pueden evaluar con un analizador sintctico ascendente
conforme la entrada es analizada. El analizador sintctico puede conservar en
su pila los valores de los atributos sintetizados asociados con los smbolos
gramaticales. Siempre que se haga una reduccin se calculan los valores de
los nuevos atributos sintetizados a partir de los atributos que estn en la pila
para los smbolos gramaticales del lado derecho de la produccin con la que se
reduce.
Atributos sintetizados en la pila del analizador sintctico
A partir de una definicin con atributos sintetizados, el generador de
analizadores sintcticos puede construir un traductor que evale los atributos
conforme analiza la entrada. Un analizador sintctico ascendente utiliza una
pila para guardar informacin acerca de los subrboles que ya han sido
analizados. Se pueden utilizar campos adicionales en la pila del analizador
para guardar los valores de los atributos sintetizados.

Definiciones con atributos por la izquierda


Cuando la traduccin tiene lugar durante el anlisis sintctico, el orden de
evaluacin de los atributos va unido al orden en que, por el mtodo de anlisis
sintctico, se crean los nodos del rbol de anlisis sintctico. Un orden natural
que caracteriza es el orden de evaluacin en profundidad. Aunque de hecho no
se construye el rbol de anlisis sintctico, es til estudiar la traduccin durante
el anlisis sintctico considerando la evaluacin en profundidad de los atributos
en los nodos de un rbol de anlisis sintctico.
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.
Evaluacin ascendente de los atributos heredados
Este mtodo consiste en primero tomar el esquema de traduccin orientada a
sintaxis que posee las acciones semnticas incrustadas y remover dichas
acciones, luego se debe insertar en su lugar un no terminal distinto para cada
una de las producciones, el cual funciona como marca. Finalmente se agrega
una produccin extra a partir del no terminal marcador, que derive a psilon y la
accin a ejecutar (la accin removida anteriormente).
Evaluadores recursivos
Existen funciones recursivas que permiten recorrer un rbol de construido en
base a una definicin dirigida por la sintaxis. Las funciones recorren cada uno
de los hijos para un determinado nodo, en algn orden, no necesariamente de
izquierda a derecha [1]. Mediante la produccin de un nodo la funcin puede
determinar cules son sus hijos, y retornar un valor para un no terminal A que
puede recibir como parmetro algn valor heredado. El valor de retorno es
utilizado para calcular el valor del no terminal del nodo en el nivel inmediato
superior del rbol. El cdigo correspondiente a cada produccin simula la
asociacin de las reglas semnticas con dicha produccin [1], las reglas son
aplicadas conforme se calculen los valores heredados que cada no terminal
recibe como parmetro.

Espacio para el valor de los atributos en tiempo de compilacin


El espacio en nmero de registros que utilizaran los valores de los atributo se
puede calcular en tiempo de compilacin basndose en el rbol de anlisis
sintctico. El tiempo de vida para un atributo inicia cuando es primeramente
computado y termina cuando todos los valores que dependen de este son
calculados [1], es decir cuando dicho valor es usado por ltima vez. Lo que
resulta de importancia con respecto a la caracterstica anterior es poder
mantener ese espacio solo cuando sea necesario y una vez que termine el
tiempo de vida para un atributo poder asignar dicho espacio a otro atributo con
el cual su tiempo de vida no se traslape con el atributo anterior y de esta
manera aprovechar mejor los recursos y cantidad de registros a utilizar.
Asignacin de espacio en tiempo de construccin - compilacin
Se puede utilizar una pila para almacenar los valores de cada atributo, incluso
no hay necesidad de preocuparse por las replicas innecesarias si los valores se
guardan en la pila. Gracias a esta propiedad se puede predecir el tiempo de
vida para los valores, sin tomar en cuenta que estos pueden estar compartidos
con otras variables, lo que facilita la prediccin.
Anlisis de las definiciones dirigidas por sintaxis
Las funciones para un no terminal mapen los valores de los atributos
heredados de un nodo con atributos sintetizados. Mientras que para los
terminales se debe realizar una funcin por aparte, es decir distinta de la de los
no terminales, sin embargo los terminales se pueden considerar como un solo
grupo y ser evaluados con una simple funcin [1], la agrupacin de dichos
atributos est determinada por las dependencias que se presentan con el
conjunto de reglas semnticas especificadas en la definicin orientada a la
sintaxis.

Anda mungkin juga menyukai