pila semantica

Upload: gustavo-salgado

Post on 21-Feb-2018

213 views

Category:

Documents


0 download

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