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

TECNOLGICO NACIONAL DE MXICO

INSTITUTO TECNOLGICO DE ACAPULCO


INGENIERA EN SISTEMAS COMPUTACIONALES

MAYRN POLANCO IZHAR ALFONSO


ALUMNO

11320609
NO. DE CONTROL

1.4 PILA SEMNTICA EN UN ANALIZADOR SINTCTICO.


TITULO

LENGUAJES Y AUTMATAS II
ASIGNATURA

08:00-09:00/704
GRUPO

JIIMNEZ VZQUEZ MARIO


PROFESOR

1.4 Pila semntica en un analizador sintctico


INDICE DE EL CONTENIDO
TEMA

PGINA

1) DEFINICIN Y DESCRIPCIN

2) CARACTERSTICAS

3) VENTAJAS

4) DESVENTAJAS

5) EJEMPLOS DE CMO TRABAJA LA PILA SEMNTICA

CON LAS EXPRESIONES REGULARES

6) LINKOGRAFIA

12

1.4 Pila semntica en un analizador sintctico


1) DEFINICIN Y DESCRIPCIN
Anlisis Semntico
Detecta la validez semntica de las sentencias aceptadas por el analizador sintctico. El analizador
semntico suele trabajar simultneamente al analizador sintctico. Se entiende por semntica al 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.

Anlisis Sintctico
Analiza el smbolo, la pila y el estado del autmata, produce las estructuras necesarias para la siguiente
etapa y en el caso de compilacin dirigida por la sintaxis invoca llamadas directas al analizador semntico
y al generador de cdigo. Escribe mensajes de errores y trata de limitar el efecto de estos errores.
"Reconoce la estructura de una cadena de componentes lxicos"

Teora de 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.

1.4 Pila semntica en un analizador sintctico


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.

Colas

Tambin son llamadas FIFO (First In First Out), que quiere decir
El primero que entra es el primero que sale.
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.
1. Colas Simples
Se inserta 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 a leer y cul es el ltimo elemento que se ha introducido.
2. Colas Circulares
En las colas circulares 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 el orden de entrada sino con una prioridad que le asignemos. Puede darse el caso que
existan varios elementos con la misma prioridad, en este caso saldr primero aquel que primero llego
(FIFO).

Reglas semnticas
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.

Analizador Sintctico Descendente


Parten del axioma inicial de la gramtica, se va descendiendo utilizando las derivaciones izquierdas, hasta
llegar a construir la cadena analizada.
4

1.4 Pila semntica en un analizador sintctico


Analizador Sintctico Ascendente
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.
Un Analizador Sintctico Ascendente utiliza durante el anlisis una pila. En esta va guardando datos que le
permiten ir haciendo las operaciones de reduccin que necesita.
Para incorporar acciones semnticas como lo es construir el rbol sintctico, es necesario incorporar a la
pila del analizador sintctico ascendente otra columna que guarde los atributos de los smbolos que se
van analizando; para la integracin total del sistema.
El Diseo Descendente es un mtodo para resolver el problema que posteriormente se traducir a un
lenguaje comprensible por la computadora.
Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de
refinamiento. La metodologa descendiente consiste en efectuar una relacin entre las sucesivas etapas
de estructuracin de modo que se relacionen unas con otras mediante entradas y salidas de informacin.

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

1.4 Pila semntica en un analizador sintctico


2) 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.

Contiene la informacin semntica asociada a los operandos (y a veces a los operadores) en forma
de registros semnticos.

Los Autmatas con Pila son una extensin de los AFD a los que se les aade una memoria (pila).

En la pila se almacenan smbolos de la cadena de entrada y de la gramtica, as como caracteres


especiales (#) para indicar el estado de pila vaca.

Las transiciones son de la forma: (p, x, s; q, t):


p=estado inicial
q=estado al que llega
x= smbolo de la cadena de entrada
s=smbolo que se desapila
t=smbolo que se apila

Una pila es utilizada para almacenar el prefijo viable de una forma sentencial de una derivacin
ms a la derecha. Los smbolos , y son utilizados para identificar el pivote, por lo tanto
sabremos cuando Desplazar o cuando Reducir.

1.4 Pila semntica en un analizador sintctico


3) VENTAJAS

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.

Simplifican ciertas operaciones de programacin. Se pueden implementar mediante arrays o listas


enlazadas.

4) DESVENTAJAS

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.

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.

Se deben 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 el error de desbordamiento.

1.4 Pila semntica en un analizador sintctico


5) EJEMPLOS DE CMO TRABAJA LA PILA SEMNTICA CON LAS
EXPRESIONES REGULARES
Este ejemplo tendr que aceptar cualquier fecha del ao 2011, esta fecha tendr que ser vlida
(que lleve relacin el mes con el da)

AUTMATA DE LOS MESES

AUTMATA DEL AO

AUTMATA DE LOS DAS

ANALIZADOR LXICO
TOKENS

LEXEMAS

Mes 1

ENERO

Mes 2

FEBRERO

Mes 3

MARZO
8

1.4 Pila semntica en un analizador sintctico


Mes 4

ABRIL

Mes 5

MAYO

Mes 6

JUNIO

Mes 7

JULIO

Mes 8

AGOSTO

Mes 9

SEPTIEMBRE

Mes 10

OCTUBRE

Mes 11

NOVIEMBRE

Mes 12

DICIEMBRE

Ao

2011

Da 1

Da 2

Da 3

Da 4

Da 5

Da 6

Da 7

Da 8

Da 9

Da 10

10

Da 11

11

Da 12

12

Da 13

13

Da 14

14

Da 15

15

Da 16

16

Da 17

17

Da 18

18
9

1.4 Pila semntica en un analizador sintctico


Da 19

19

Da 20

20

Da 21

21

Da 22

22

Da 23

23

Da 24

24

Da 25

25

Da 26

26

Da 27

27

Da 28

28

Da 29

29

Da 30

30

Da 31

31
ANALIZADOR SINTCTICO
G = {Vt, Vn, S, R}
Vt={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,2011,ENER
O,FEBRERO,MARZO,ABRIL,MAYO,JUNIO,JULIO,AGOSTO,SEPTIEMBRE,OCTUBRE,NOVIEM
BRE,DICIEMBRE }
Vn={Da, Mes, Ao, M1, M2, M3,D1, D2, D3 }

REGLAS GRAMATICALES
S = Da/Mes/Ao | Ao/Mes/Da
Mes = M1|M2|M3
M1 = ENERO|MARZO|MAYO|JULIO|AGOSTO|OCTUBRE|DICIEMBRE
M2 = ABRIL|JUNIO|SEPTIEMBRE|NOVIEMBRE
M3 = FEBRERO
Da = D1|D2|D3
D1=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|

10

1.4 Pila semntica en un analizador sintctico


D2=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30
D3=1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28
Ao = 2011
RBOL DE DERIVACIN
Fecha de prueba 16/02/2011

11

1.4 Pila semntica en un analizador sintctico


6) LINKOGRAFIA

http://progsistemasf7.blogspot.mx/2010/10/pila-semantica-en-un-analizador.html -

http://es.scribd.com/doc/49289218/ANTOLOGIA-DE-PRO-TODO

http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r35533.PDF

http://www.uaeh.edu.mx/docencia/P_Presentaciones/icbi/asignatura/Cap3PilasColas.pdf

http://www.oocities.org/mx/amigos2365/anteproyecto.html

http://www.geocities.ws/apuntesitpn/dise/deacuatro.htm

http://progsistemasf7.blogspot.mx/2010/10/ulises-cruz-santiago.html

http://cursocompiladoresuaeh.blogspot.mx/2010/11/unidad-vi-analisis-semantico.html

http://www.uhu.es/francisco.moreno/gii_pl/docs/Tema_3.pdf

https://gramaticasformales.wordpress.com/category/ejemplo-de-analizador-lexico-sintactico-ysemantico/

http://prezi.com/zoqex9s-t2y8/14-pila-semantica-en-un-analizador-sintactico/

http://www.utm.mx/~caff/doc/Notas%20de%20Estructura%20de%20datos.pdf

https://www.youtube.com/watch?v=i8wFGF4z4io

http://www.buenastareas.com/materias/pila-sem%C3%A1ntica-en-un-analizador-sem%C3%A1nticoascendente-botton-up-ensayos-y-documentos/80

www.lcc.uma.es/~galvez/ftp/tci/tictema3.pdf

www.ii.uam.es/~alfonsec/docs/compila5.htm

12

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