Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automatas II
Automatas II
1.1
Arboles de expresiones
Operando
Operador
1.2
Acceder a la tabla de smbolos (para hacer parte del trabajo del analizador
semntico).
1.3
Comprobaciones estticas
Comprobaciones dinmicas
cdigo
ejecutable
especficamente
diseado
para
realizar
tales
Inferencia de tipos
En lenguajes sin tipificacin de variables o con sobrecarga se aplican tareas de
inferencia de tipos en el nivel gramatical de las expresiones para resolver el tipo
de datos de la expresin resultante en funcin del contexto de evaluacin.
1.4
Las pilas y colas son estructuras de datos que se utilizan generalmente para
simplificar ciertas operaciones de programacin. Estas estructuras pueden
implementarse mediante arrays o listas enlazadas.
Pila: coleccin de datos a los cuales se les puede acceder mediante un extremo,
que se conoce generalmente como tope. Las pilas tienen dos operaciones
bsicas:
Ventajas
Se necesita una memoria auxiliar que nos permita guardar los datos para
poder hacer la comparacin.
Objetivo terico
Es construir un rbol de anlisis sintctico, este raramente se construye como tal,
sino que las rutinas semnticas integradas van generando el rbol de Sintaxis
abstracta. Se especifica mediante una gramtica libre de contexto.
El anlisis semntico detecta la validez semntica de las sentencias aceptadas por
el analizador sintctico. El analizador semntico suele trabajar simultneamente al
analizador sintctico y en estrecha cooperacin. Se entiende por semntica como
el conjunto de reglas que especifican el significado de cualquier sentencia
sintcticamente correcta y escrita en un determinado lenguaje.
Las rutinas semnticas deben realizar la evaluacin de los atributos de las
gramticas siguiendo las reglas semnticas asociadas a cada produccin de la
gramtica.
El anlisis sintctico es la fase en la que se trata de determinar el tipo de los
resultados intermedios, comprobar que los argumentos que tiene un operador
pertenecen al conjunto de los operadores posibles, y si son compatibles entre s,
etc.
En definitiva, comprobar que el significado de la que se va leyendo es vlido. La
salida terica de la fase de anlisis semntico sera un rbol semntico. Consiste
en un rbol sintctico en el que cada una de sus ramas ha adquirido el significado
que debe tener.
1.5
Esquema de traduccin
Traduccin descendente
Se trabaja con esquema 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.
Eliminacion de la recursividad izquierda de un esquema de traduccin
Como la mayora de los operadores aritmticos son asociativos por la izquierda,
es natural utilizar gramticas recursivas por la izquierda para las expresiones. La
transformacin se aplica a esquemas de traduccin con atributos sintetizados.
Para el anlisis sintctico descendente, se supone que una accin se ejecuta en el
mismo momento en que se expandira un smbolo en la misma posicin. Un
atributo heredado de un smbolo debe ser calculado por una accin que aparezca
antes que el smbolo, y un atributo sintetizado del no terminal de la izquierda se
debe calcular despus de que hayan sido calculados todos los atributos de los que
depende.
Un atributo heredado de un smbolo debe ser calculado por una accin que
aparezca antes que el smbolo, y un atributo sintetizado del no terminal de la
izquierda se debe calcular despus de que hayan sido calculados todos los
atributos de los que depende.
Los fragmentos de cdigo as insertados se denominan acciones semnticas.
Dichos fragmentos actan, calculan y modifican los atributos asociados con los
nodos del rbol sintctico. El orden en que se evalan los fragmentos es el de un
recorrido primero-profundo del rbol de anlisis sintctico.
Obsrvese que, en general, para poder aplicar un esquema de traduccin hay que
construir el rbol sintctico y despus aplicar las acciones empotradas en las
reglas en el orden de recorrido primero-profundo. Por supuesto, si la gramtica es
ambigua una frase podra tener dos rboles y la ejecucin de las acciones para
ellos podra dar lugar a diferentes resultados. Si se quiere evitar la multiplicidad de
resultados (interpretaciones semnticas) es necesario precisar de qu rbol
sintctico concreto se est hablando.
1.6
1.7