Está en la página 1de 6

INSTITUTO TECNOLOGICO DE ACAPULCO

1.4 PILA SEMNTICA EN UN


ANALIZADOR SINTCTICO
Lenguajes y autmatas II

7:00-8:00

17 DE SEPTIEMBRE DE 2014
JAVIER DE JESS FLORES MONDRAGN

11320549

Contenido
1.4 PILA SEMNTICA EN UN ANALIZADOR SINTCTICO ................................................ 2
DEFINICIONES Y DESCRIPCIN. .......................................................................................... 2
CARACTERSTICAS .................................................................................................................. 4
VENTAJAS .................................................................................................................................... 4
DESVENTAJAS ............................................................................................................................ 5
EJEMPLO DE CMO TRABAJA UNA PILA ......................................................................... 5

Javier de Jess Flores Mondragn

11320549

Lenguajes y Autmatas II

7:00-8:00

1.4 PILA SEMNTICA EN UN ANALIZADOR SINTCTICO


DEFINICIONES Y DESCRIPCIN.
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.

Al utilizar arreglos para implementar pilas se tiene la limitacin de que se debe reservar el
espacio en memoria con anticipacin. Una vez dado un mximo de capacidad a la pila no es
posible insertar un nmero de elementos mayor que el mximo establecido.

Definicin de anlisis sintctico:


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 lo 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.
Se compone de un conjunto de rutinas independientes, llamadas por los analizadores
morfolgico y sintctico. El anlisis semntico utiliza como entrada el rbol sintctico
detectado por el anlisis sintctico para comprobar restricciones de tipo y otras limitaciones
semnticas y preparar la generacin de cdigo.
Las rutinas semnticas suelen hacer uso de una pila (la pila semntica) que contiene la
informacin semntica asociada a los operandos (y a veces a los operadores) en forma de
registros semnticos.
Reglas semnticas:
son el conjunto de normas y especificaciones que definen al lenguaje de programacin y
estn dadas por la sintaxis del lenguaje, las reglas semnticas asignan un significado lgico
a ciertas expresiones definidas en la sintaxis del lenguaje.
2

Javier de Jess Flores Mondragn

11320549

Lenguajes y Autmatas II

7:00-8:00

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. Una regla semntica tambin puede
tener efectos colaterales, por ejemplo, imprimir un valor o actualizar una variable global
compatibilidad de tipos:

Durante la fase de anlisis semntico, el compilador debe verificar que los tipos y valores
asociados a los objetos de un programa se utilizan de acuerdo con la especificacin del
lenguaje.
Adems debe detectar conversiones implcitas de tipos para efectuarlas o insertar el cdigo
apropiado para efectuarlas as como almacenar informacin relativa a los tipos de los
objetos y aplicar las reglas de verificacin de tipos.
Bottom up. Es un principio de muchos aos del estilo de programacin que los elementos
funcionales de un programa no deben ser demasiado grandes. Si un cierto componente de
un programa crece ms all de la etapa donde est fcilmente comprensible, se convierte en
una masa de la complejidad que encubre errores tan fcilmente como una ciudad grande
encubre a fugitivos.
Tcnica top-down. Este mtodo consiste en dividir los problemas en subproblemas ms
sencillos para conseguir una solucin ms rpida. El diseo descendente es un mtodo para
resolver el problema que posteriormente se traducir a un lenguaje comprensible por la
computadora.

Analizador sintctico
Es un autmata de pila que reconoce la estructura de una cadena de componentes lxicos.
En general, el analizador sintctico: inicializa el compilador y para cada smbolo de entrada
llama al analizador morfolgico y proporciona el siguiente smbolo de entrada.

Analizadores descendentes
parten del axioma inicial de la gramtica, se va descendiendo utilizando las derivaciones
izquierdas, hasta llegar a construir la cadena analizada.
Analizadores ascendentes
se va construyendo el rbol desde sus nodos terminales. Es decir, se construye desde los
smbolos de la cadena hasta llegar al axioma de la gramtica.

Javier de Jess Flores Mondragn

11320549

Lenguajes y Autmatas II

7:00-8:00

Pila: una 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:

push (para insertar un elemento)


pop (para extraer un elemento).

CARACTERSTICAS
Su caracterstica fundamental es que al extraer se obtiene siempre el ltimo elemento que
acaba de insertarse. Por esta razn tambin se conocen como estructuras de datos lifo (del
ingls last in first out). Una posible implementacin mediante listas enlazadas sera
insertando y extrayendo siempre por el principio de la lista.
Gracias a las pilas es posible el uso de la recursividad. La variable que llama al mismo
procedimiento en el que est, habr que guardarla as como el resto de variables de la nueva
llamada, para a la vuelta de la recursividad ir sacndolas, esto es posible a la
implementacin de pilas.

VENTAJAS
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la
gestin de ventanas en windows (cuando cerramos una ventana siempre recuperamos la que
tenamos detrs).

los problemas de integracin entre los subsistemas son sumamente costosos y


muchos de ellos no se solucionan hasta que la programacin alcanza la fecha lmite
para la integracin total del sistema.
Se necesita una memoria auxiliar que nos permita guardar los datos intermedios
para poder hacer la comparacin.

Javier de Jess Flores Mondragn

11320549

Lenguajes y Autmatas II

7:00-8:00

DESVENTAJAS
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.

Si esto ocurre, en otras palabras si la pila est llena y se intenta insertar un nuevo elemento,
se producir un error conocido como desbordamiento overflow.
Una posible solucin a este tipo de inconvenientes consiste en definir pilas de gran tamao,
pero esto resultar ineficiente y costoso. No siempre es viable saber con exactitud el
nmero de elementos a tratar, y siempre existe la posibilidad de que ocurra un error de
desbordamiento.
Insertar un elemento - push
eliminar - pop
pila vaca
pila llena
operaciones con pilas

EJEMPLO DE CMO TRABAJA UNA PILA

También podría gustarte