pila semantica
TRANSCRIPT
-
7/24/2019 Pila Semantica
1/5
Instituto Tecnolgico
De Acapulco.Ingeniera en sistemas computacionales
Lenguaje y Autmatas II
Maestro:Mario Jimnez Vzquez
Trabao :pila semntica en un analiza!orsintctico
Alumno:
"usta#o $alga!o Martnez.
%o. De &ontrol: '()*('+'
,-%$ */ D 01223 D, *('/
Definicin:
-
7/24/2019 Pila Semantica
2/5
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 tambi!n se conocen como estructuras de datos L"#$
%del ingl!s Last in #irits out & 'na posible implementacin mediante listas enlazadas seria
insertando y extrayendo siempre por el principio de la lista gracias a las pilas es posible eluso de la recursi(idad la (ariable que llama al mismo procedimiento en el que esta habr)
que guardarla as como el resto de (ariables de la nue(a llamada para a la (uelta de la
recursi(idad ir sac)ndolas esto es posible a la implementacin de pilas .
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia por e*emplo la
gestin de (entas en +indos %cuando cerramos una (entana siempre recuperamos la que
tenamos detr)s&
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 reser(ar el espacio con anticipacin una (ez dado un m)ximo de capacidad a la
pila no es posible insertar un nmero de elementos mayor que el m)ximo establecido
Si esto ocurre en otras palabras si la pila est) llena y se intenta insertar un nue(o elemento
se producir) un error conocido como desbordamiento -o(erflo una posible solucin a este
tipo de incon(enientes consiste en definir pilas de gran tamao pero esto resulta ineficiente
y costos no siempre es (iable saber con exactitud saber con exactitud el nmero de
elementos a tratar y siempre existe la posibilidad de que ocurra un error de
desbordamiento.
-
7/24/2019 Pila Semantica
3/5
Las colas tambin son llamadas FIFO (First in first out) que quiere decir el primero
que entra el primero que sale.
1.!olas 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 (a leer y cu)l es el ltimo elemento que se ha introducido.
".!olas circulan
/n las colas circulantes se considera que despu!s del ltimo elemento se accede de nue(o
al primero. 0e esta forma se reutilizan las posiciones extradas el final de la cola es a su
(ez el principio cre)ndose un circuito cerrado
#.!olas 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 (arios elementos con la misma prioridad en este caso
saldr) aquel que primero llegue %#"#$&.
$nali%ador sintctico:
/s un 1utmata de pila que se reconoce la estructura de una cadena de componentes
l!xicos en general el analizador sint)ctico 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 sint)ctico produce lasestructuras necesarias para la siguiente etapa y en el caso de compilacin dirigida por la
sintaxis in(ocadas llamadas directas al analizador sem)ntico y al generador de cdigo
escribe mensa*e de error y trata de limitar el efecto de estos errores. 1l decir pila
sem)ntica no se refiere a que hay (arios tipos de pila hace referencia hay (arios tipos de
pila2 hace referencia a que se debe programar nica y exclusi(amente en un solo lengua*e
es decir no podemos mezclar cdigo c33 con (isual basic ya que se traba*a con los mismos
comandos.
/l ob*eti(o terico es construir un )rbol de an)lisis sint)ctico este raramente se construye
como tal, sino que las rutinas sem)nticas integradas (an generando el )rbol de sintaxisabstracta. Se especifica mediante una gram)tica libre de contexto.
1n)lisis sem)ntico:
0etecta la (alidez sem)ntica de las sentencias aceptadas por el analizador sint)ctico. /l
analizador sem)ntico suele traba*ar simult)neamente al analizador sint)ctico y en estrecha
cooperacin. Se entiende por sem)ntica como el con*unto de reglas que especifica e
-
7/24/2019 Pila Semantica
4/5
significado de cualquier sentencia sint)cticamente correcta y escrita en un determinado
lengua*e2 las rutinas sem)nticas deben realizar la e(aluacin de los atributos de las
gram)ticas siguiendo las reglas sem)nticas asociadas a cada produccin de la gram)tica.
/l an)lisis sint)ctico 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 con*untode los operadoras posible y si son compatibles entre si etc.
/n definiti(a comprobara que el significado de lo que se (a leyendo es ()lido. La salida
terica de la fase de an)lisis sem)ntico seria un )rbol sem)ntico consiste en un )rbol
sint)ctico en el que cada una de sus ramas ha adquirido el significado que debe de tener
se compone de un con*unto de rutinas independientes llamadas por los analizadores
morfolgicos y sint)ctico
/l an)lisis sem)ntico utiliza como entrada el )rbol sint)ctico detectado por el an)lisis
sint)ctico para comprobar restricciones de tipo y otras limitaciones sem)nticos y preparar la
generacin de cdigo.
Las rutinas sem)nticas suelen hacer uso de una pila %la pila semantica& que contiene la
informacin sem)ntica asociada alos operadores %y a (eces alos operadores& en forma de
registro sem)nticos
&e'las emnticas.
Son el con*unto de normas y especificaciones que definen al lengua*e de programacin y
est)n dadas por la sintaxis del lengua*e las reglas sem)nticas asignan un significado lgico
a ciertas expresiones definidas en la sintaxis del lengua*e.
La e(aluacin de as reglas sem)nticas define los (alores de los atributos en nodos del
)rbol de an)lisis sint)ctico para la cadena de entrada. 'na regla sem)ntica tambi!n puede
tener efectos colaterales por e*emplo imprimir un (alor o actualizar una (ariable global.
4ompatibilidad de tipos: 0urante la fase de an)lisis sem)ntico el compilador debe (erificar
que los tipos y (alores asociados alos ob*etos de un programa se utilizan de acuerdo con la
especificacin del lengua*e.
1dem)s debe detectar con(ersiones implcitas de tipos para efectuarlas o insertar el
cdigo apropiado para efectuarlas as como almacenar informacin relati(a alos tipos delos ob*etos y aplicar las reglas de (erificacin de tipos.
$nali%adores descendentes:
Parten del axioma inicial de la gram)tica se (a descendiendo utilizando las deri(aciones
izquierdas hasta llegar a construir la cadena analizada.
-
7/24/2019 Pila Semantica
5/5
$nali%adores ascendentes:
Se (a construyendo el )rbol desde sus nodos terminales. /s decir se construye desde los
smbolos de la cadena hasta llegar al axioma de la gram)tica.
5ottom up: /s 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 m)s all) de la etapa donde esta f)cilmente comprensible se
con(ierte en una masa de la comple*idad que encubre errores tan f)cilmente como una
gran ciudad grande encubre a fugiti(os
6!cnica top70on este m!todo consiste en di(idir los problemas en subproblemas m)s
sencillos para conseguir una solucin mas r)pida el diseo descendente es un m!todo
para resol(er el problema que posteriormente se traducir) a un lengua*e comprensible por
la computadora.
4onclusiones la pila sem)ntica contiene informacin sem)ntica asociada alos operadoresen forma de registro sem)nticos
'na pila tiene 8 operaciones:
"nsertar un elemento7push
/liminar7pop
Pila9(acia
Pila9llena