Вы находитесь на странице: 1из 5

Instituto Tecnolgico

De Acapulco.
Ingeniera en sistemas computacionales

Lenguaje y Autmatas II
Maestro: Mario Jimnez Vzquez

Trabajo :pila semntica en un analizador


sintctico
Alumno:
Gustavo Salgado Martnez.
No. De Control: 10320171
LUNES 24 DE FEBRERO DEL 2014

Definicin:

Las pilas son estructuras de datos que se utilizan generalmente para simplificar ciertas
operaciones de programacin estas estructuras pueden implementarse mediante arrays o
listas enlazadas.
La pila es 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.
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 Firits out ) Una posible implementacin mediante listas enlazadas seria
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 esta 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 .
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia por ejemplo la
gestin de ventas en Windows (cuando cerramos una ventana siempre recuperamos la que
tenamos detrs)
Las pilas y las 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 impletar pilas se tiene la limitacin de que
se debe reservar el espacio 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
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 resulta ineficiente
y costos no siempre es viable saber con exactitud saber con exactitud el nmero de
elementos a tratar y siempre existe la posibilidad de que ocurra un error de
desbordamiento.

Las colas tambin son llamadas FIFO (First in first out) que quiere decir el primero
que entra el primero que sale.
1._Colas simples.
Se insertan por un sitio y se saca por otro en el caso de la cola simple se inserta por el final
y se saca por el principio para gestionar este tipo de cola hay que recordar siempre cual es
el siguiente elemento que se va leer y cul es el ltimo elemento que se ha introducido.
2._Colas circulan
En las colas circulantes se considera que despus del ltimo elemento se accede de nuevo
al primero. De esta forma se reutilizan las posiciones extradas el final de la cola es a su
vez el principio crendose un circuito cerrado
3._Colas con prioridad.
Las colas con prioridad se implementan mediante listas o arrays ordenados no nos interesa
en este caso que salgan en orden de entrada si no con una prioridad que le asignemos
puede darse el caso que existan varios elementos con la misma prioridad en este caso
saldr aquel que primero llegue (FIFO).
Analizador sintctico:
Es un Autmata de pila que se 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
analiza el smbolo, la pila y el estado del autmata, el analizador sintctico produce las
estructuras necesarias para la siguiente etapa y en el caso de compilacin dirigida por la
sintaxis invocadas llamadas directas al analizador semntico y al generador de cdigo
escribe mensaje de error y trata de limitar el efecto de estos errores. Al decir pila
semntica no se refiere a que hay varios tipos de pila hace referencia hay varios tipos de
pila; hace referencia a que se debe programar nica y exclusivamente en un solo lenguaje
es decir no podemos mezclar cdigo c++ con visual basic ya que se trabaja con los mismos
comandos.
El 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.
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 especifica e

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 determinar el tipo de los resultados
intermedios comprobar que los argumentos que tienen un operador pertenece al conjunto
de los operadoras posible y si son compatibles entre si etc.
En definitiva comprobara que el significado de lo que se va leyendo es vlido. La salida
terica de la fase de anlisis semntico seria un rbol semntico consiste en un rbol
sintctico en el que cada una de sus ramas ha adquirido el significado que debe de tener
se compone de un conjunto de rutinas independientes llamadas por los analizadores
morfolgicos y sintctico
El anlisis semntico utiliza como entrada el rbol sintctico detectado por el anlisis
sintctico para comprobar restricciones de tipo y otras limitaciones semnticos y preparar la
generacin de cdigo.
Las rutinas semnticas suelen hacer uso de una pila (la pila semantica) que contiene la
informacin semntica asociada alos operadores (y a veces alos operadores) en forma de
registro 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.
La evaluacin de as reglas semnticas define los valores de los atributos en 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 alos 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 alos tipos de
los objetos y aplicar las reglas de verificacin de tipos.
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.
Bottom up: Es un principio de muchos aos del estilo de programacin que los elementos
funcionales de un programa no deben de ser demasiado grandes si un cierto componente
de un programa crece ms all de la etapa donde esta fcilmente comprensible se
convierte en una masa de la complejidad que encubre errores tan fcilmente como una
gran ciudad grande encubre a fugitivos
Tcnica top-Down este mtodo consiste en dividir los problemas en subproblemas ms
sencillos para conseguir una solucin mas rpida el diseo descendente es un mtodo
para resolver el problema que posteriormente se traducir a un lenguaje comprensible por
la computadora.
Conclusiones la pila semntica contiene informacin semntica asociada alos operadores
en forma de registro semnticos
Una pila tiene 4 operaciones:

Insertar un elemento-push
Eliminar-pop
Pila_vacia
Pila_llena

Вам также может понравиться