Sei sulla pagina 1di 12

Nombre de los integrantes: 1) Alejandro Prado Marroquin

2) Nefi Samuel Villarruel Ojeda

7° Semestre

Salón: 4701

Tema: Pila Semántica en un Analizador Sintáctico

Materia: Lenguajes y Autómatas II

z
PILA SEMANTICA EN UN
ANLIZADOR
SINTACTICO.
z
Teoría de Pilas y Colas

 Son estructuras de datos que se utilizan generalmente para


simplificar ciertas operaciones de programación.

 En estas listas pueden implementarse arrays o listas enlazadas.


z
¿Qué es una pila Semántica?

> Son llamadas “First in First out” que en español se refiere a el primero que
entra es el primero que sale. Las rutinas semánticas suelen hacer uso de una
pila que contiene la información de semántica asociada de los operandos y a
veces los operadores en forma de registros semánticos.
z
1° Forma de Registro Semántico

> Colas simples: Se inserta por un sitio y se saca por el otro, en el


caso de la cola simple se inserta por el final y se saca por el principio.
Siempre hay que ver cual fue el ultimo elemento agregado.
z
2° Forma de Registro Semántico

 Colas circulares: Se considera que después del ultimo elemento


se accede de nuevo al primero. De esta forma se reutilizan las
posiciones extraídas, el final de la cola es a su vez el principio.
z
3° Forma de Registro Semántico

> Colas con prioridad: Las colas con prioridad se implementan


mediante listas o arrays ordenados. En este caso saldrá primero aquel
que llego primer.
z
Reglas Semánticas

> Es un conjunto de normas y especificaciones que definen al


lenguaje de programación y están dadas por la sintaxis del lenguaje,
las reglas semánticas asignan un significado lógico a ciertas
expresiones definidas en la sintaxis del lenguaje.
z
Analizador Sintáctico Descendente

> Parten del axioma inicial de la gramática, se va descendiendo


utilizando las derivaciones izquierdas, hasta llegar a construir la
cadena analizada.
z
Analizador Sintáctico Ascendente

 Se construye desde los símbolos de la cadena hasta llegar al


axioma de la gramática. Un analizador sintáctico ascendente se
utiliza durante el análisis de una pila.
z
Ventajas

> Es posible el uso de la recursividad. La variable que llama al


mismo procedimiento en el que esta, habrá que guardarla así como
el resto de variables.

> Simplifican ciertas operaciones de programación. Se pueden


implementar mediante arrays o listas enlazadas.
z
Desventajas

> Se tiene la limitación de que se debe reservar el espacio en memoria con


anticipación. Dado un máximo de capacidad de pila no es posible insertar un
numero de elementos mayor.

> Si existe una sobrecarga de energía ocurrirá un Over-Flow.

> Se deben definir pilas de gran tamaño, pero esto resultara ineficiente y
costoso.
z

GRACIAS POR SU
ATENCION.

Potrebbero piacerti anche