TPL - Sintaxis y Semántica de los Lenguajes

of 17 /17
Sintaxis y Semántica de los Lenguajes Trabajo Práctico de Laboratorio Universidad Tecnológica Nacional Facultad Regional Córdoba Alumnos: - GIL, Luciano Nº 68147 - LORENZO, Juan Pablo Nº 68226 Docente supervisor: Prof. Brenda Meloni 2K1 2015

Embed Size (px)

description

Trabajo Práctico de Laboratorio

Transcript of TPL - Sintaxis y Semántica de los Lenguajes

  • Sintaxis y Semntica de los Lenguajes

    Trabajo Prctico de Laboratorio

    Universidad Tecnolgica Nacional Facultad Regional Crdoba

    Alumnos: - GIL, Luciano N 68147 - LORENZO, Juan Pablo N 68226

    Docente supervisor: Prof. Brenda Meloni

    2K1

    2015

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    2

    ndice Introduccin ............................................................................................................................... 3

    Enunciado .................................................................................................................................. 4

    Simuladores de Autmata a Pila .......................................................................................... 5

    Simuladores de Mquinas de Turing .................................................................................. 9

    Ejercicio con simuladores. .................................................................................................. 13

    Complejidad ............................................................................................................................. 15

    Conclusin ............................................................................................................................... 17

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    3

    Introduccin

    En el presente trabajo se desarrollar la simulacin de Mquinas Abstractas,

    para la prueba del funcionamiento de las mismas y su capacidad de resolver

    problemas. Se elegirn programas (simuladores), que permitan el tratamiento de

    estas mquinas y mediante su uso se resolvern los problemas planteados.

    Los objetivos generales del trabajo son:

    Seleccionar un simulador de Autmata con Pila y uno de Mquina de

    Turing considerando requerimientos funcionales y no funcionales.

    Resolver un mismo problema a travs de la simulacin con ambas

    mquinas, determinar las expresiones de la complejidad y compararlas.

    Calcular complejidad del autmata planteado.

    Comprenden el funcionamiento del programa a utilizar para la simulacin.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    4

    Enunciado

    El trabajo consiste en:

    a) Buscar simuladores de Autmatas con Pila en la web y seleccionar uno. Para

    la seleccin utilizar un proceso de evaluacin que asigne un puntaje a las

    diferentes condiciones previstas en la especificacin de requerimientos de

    simuladores. Utilizar el siguiente criterio de calificacin: 0 (condicin que no

    aplica o no se cumple), 1 (cumple con reservas) y 2 (condicin que se cumple

    totalmente).

    b) Buscar simuladores de mquinas de Turing en la web y seleccionar uno. Para

    la seleccin utilizar un proceso de evaluacin similar al utilizado en el caso

    anterior.

    c) Explicar y justificar el funcionamiento de los simuladores elegidos en los

    puntos a y b, considerando las propiedades de las mquinas simuladas, sus

    modos de operacin y funcionalidades. Mostrar ejemplos aplicando los

    simuladores a no menos de tres mquinas de cada tipo, estudiadas y/o

    diseadas en clase.

    d) Aplicar ambos simuladores al ejercicio 4 punto b) de la pgina 243 del libro.

    e) Determinar y comparar las expresiones de complejidad temporal y espacial

    que corresponden a la resolucin de este problema con ambas mquinas.

    f) Verificar que las expresiones determinadas sean correctas. Para ello

    emplearlas en el clculo de la complejidad temporal y espacial de cadenas de

    largo diferente a las usadas en la determinacin de las expresiones y comparar

    los resultados con los valores obtenidos con el simulador.

    g) Presentar un informe que describa en detalle el trabajo realizado, reproduzca

    los resultados obtenidos con el simulador, el procedimiento de clculo de las

    expresiones de complejidad y las conclusiones del alumno.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    5

    Simuladores de Autmata a Pila

    Se procede a la evaluacin de dos simuladores de autmatas a pila para

    seleccionar uno de ellos con el que se realizar el trabajo. Los dos simuladores

    son jFlap y jFast.

    Concepto Valoracin

    Requerimientos funcionales jFlap jFast

    Definir los dominios de operacin 1 2

    Editar, almacenar y recuperar la funcin de transicin 2 0

    Definir las condiciones iniciales de operacin 2 2

    Verificar la consistencia entre los dominios de operacin, la funcin de transicin y las condiciones iniciales de operacin 2 2

    Ejecutar los movimientos necesarios hasta alcanzar una configuracin final 2 0

    Admitir modo de operacin completa y paso a paso 2 1

    Determinar mtricas o indicadores de operacin, complejidad y/o eficiencia con el fin de facilitar la evaluacin de desempeo de las mquinas y comparaciones entre ellas 0 0

    PARCIAL 11 7

    Requerimientos no funcionales jFlap jFast

    Portabilidad 2 1

    Facilidad de uso 2 1

    Robustez 2 2

    Eficiencia 2 2

    PARCIAL 8 6

    Interfaz Grfica jFlap jFast

    Facilidad para la edicin de dominios, funcin de transicin y condiciones iniciales de operacin 2 1

    Representacin de los componentes formales del autmata a lo largo de todo el proceso de simulacin 2 1

    Representacin de la configuracin del autmata en cada intervalo de tiempo 2 0

    Opcin de debugging que permita alterar el contenido de la cinta de entrada 0 0

    Representacin del rbol de descripciones instantneas 2 0

    Representacin grfico del rbol de descripciones instantnea 2 0

    Opcin para la visualizacin de los indicadores de operacin, complejidad y/o eficiencia 0 0

    PARCIAL 10 2

    TOTAL 29 15

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    6

    Nota: Criterio de calificacin: 0 (condicin que no aplica o no se cumple), 1 (cumple con reservas) y 2 (condicin que se cumple totalmente).

    Luego de realizar la comparacin en base a los criterios propuestos, elegimos

    claramente el simulador jFlap frente al jFast. El simulador jFlap acumul casi el

    doble de puntos que su rival, en general en base a sus requerimientos

    funcionales y a su interfaz grfica. Cmo punto para resaltar, el jFast permite de

    mejor manera definir los dominios de operacin, cmo nico punto superador al

    jFlap en sus requerimientos funcionales. El jFlap nos permite llegar a una

    configuracin final exitosamente, crear la funcin de transicin correctamente y

    tambin operar de distintas maneras, paso a paso, de forma completa y tambin

    con una operacin de mltiples entradas.

    En los requerimientos no funcionales, se puede decir que no hay grandes

    diferencias. La portabilidad del jFlap dado que no necesita instalacin lo distingue

    del jFast.

    La interfaz grfica es la otra diferencia importante entre los dos simuladores.

    jFlap no slo permite la representacin de la configuracin del autmata en cada

    momento y el rbol de representaciones instantneas sino que tiene mayor

    facilidad para su uso y permite al usuario entender el autmata de una forma

    ms espontnea, adems de editarlo para una mejor representacin grfica.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    7

    A continuacin mostramos algunos ejemplos:

    Ejercicio 3, pg. 243. (Gir, J. (2012). Mquinas Abstractas y Gramticas

    Formales). Crdoba: Editorial M&Copias Impresiones.)

    Disear un AP que verifique si dos nibbles ledos, separados por el smbolo *

    tienen ambos la misma cantidad de 1s.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    8

    Ejercicio 4.c), pg. 243.1.

    Disear un AP para el lenguaje 3 = {012 | 1, = {0,1}}.

    Ejercicio 2.a), pg 243.

    Disear un AP que verifique si un byte ledo tiene la misma cantidad de 1s en los

    cuatro primeros bits es la misma que en los cuatro ltimos.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    9

    Simuladores de Mquinas de Turing

    Se procede a la evaluacin de dos simuladores de Mquinas de Turing para

    seleccionar uno de ellos con el que se realizar el trabajo. Los dos simuladores

    son Tursi y AutoSim.

    Concepto Valoracin

    Requerimientos funcionales jFlap AutoSim

    Definir los dominios de operacin 2 1

    Editar, almacenar y recuperar la funcin de transicin 2 2

    Definir las condiciones iniciales de operacin 2 2

    Verificar la consistencia entre los dominios de operacin, la funcin de transicin y las condiciones iniciales de operacin 2 1

    Ejecutar los movimientos necesarios hasta alcanzar una configuracin final 2 1

    Admitir modo de operacin completa y paso a paso 2 2

    Determinar mtricas o indicadores de operacin, complejidad y/o eficiencia con el fin de facilitar la evaluacin de desempeo de las mquinas y comparaciones entre ellas 0 0

    PARCIAL 11 9

    Requerimientos no funcionales jFlap AutoSim

    Portabilidad 2 2

    Facilidad de uso 2 2

    Robustez 2 1

    Eficiencia 2 2

    PARCIAL 8 7

    Interfaz Grfica jFlap AutoSim

    Facilidad para la edicin de dominios, funcin de transicin y condiciones iniciales de operacin 2 2

    Representacin de los componentes formales del autmata a lo largo de todo el proceso de simulacin 2 1

    Representacin de la configuracin del autmata en cada intervalo de tiempo 2 1

    Opcin de debugging que permita alterar el contenido de la cinta de entrada/salida 0 2

    Representacin del rbol de descripciones instantneas 2 0

    Representacin grfico del rbol de descripciones instantnea 2 0

    Opcin para la visualizacin de los indicadores de operacin, complejidad y/o eficiencia 0 0

    PARCIAL 10 6

    TOTAL 29 22

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    10

    Nota: Criterio de calificacin: 0 (condicin que no aplica o no se cumple), 1 (cumple con reservas) y 2 (condicin que se cumple totalmente).

    Tras realizar la comparacin de los simuladores para el tratamiento de la

    Mquina de Turing, nos damos nuevamente con que tenemos un rotundo

    ganador, donde el simulador jFlap se impone en casi todos los requerimientos

    sobre AutoSim, cabe destacar que los dos son buenos simuladores que cumplen

    con casi todos los requisitos, pero que por falta de smbolos para el desarrollo

    de la mquina jFlap termin siendo el mejor para el desarrollo del trabajo. Con

    ambos simuladores pudimos resolver los mismos problemas que requieren de

    menos smbolos porque cuantos empezamos a necesitar ms AutoSim al ser tan

    limitado en ese sentido no nos permiti seguir trabajando con el. La interfaz

    grfica de ambos es muy amigable y fcil de manejar por ahi la de jFlap es ms

    fcil de definir la funcin de transicin mediante el etiquetado de las flechas un

    poco ms intuitivo pero en trminos generales funcionan igual.

    A continuacin mostramos algunos ejemplos:

    Ejercicio 6, pg. 299 Comprobar que la funcion que cumple la siguiente MT es verificar si una cadena

    formada por bits, es de longitud par o impar. Si es par que grabe d o c si es

    impar.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    11

    Ejercicio 7, pg. 299 Construir una MT que verifica una cadena formada por bits, si la cantidad de 0s

    es par o impar y que grabe d si es par o c si es impar.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    12

    Ejercicio 8, pg. 299 Construir una MT que verifique en una cadena formada por bits, si la cantidad de

    1s es par o impar. Si es par al finalizar la comprobacin, negar la cadena en caso

    contrario la mquina solo se detiene.

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    13

    Ejercicio con simuladores: Ejercicio 4.b), pg. 243.

    Disear un AP para el lenguaje 2 = { | 1, > 0 = {, , }}.

    Autmata a Pila

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    14

    Mquina de Turing

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    15

    Complejidad

    Autmata a Pila

    Para el clculo de la complejidad nos basamos en una cadena = con || = 5 = .

    Esta cadena es aceptada por el autmata y necesitar de tantos

    movimientos cmo sea el largo de la cadena ms uno, debido a la

    transicin lambda anterior al paso al estado de aceptacin, por lo tanto su

    complejidad temporal es igual a +1.

    Analizando el autmata, la cadena utilizada y cualquier otra cadena deben

    pasar a travs de cuatro estados para ser aceptadas. La complejidad

    espacial del autmata es siempre igual a 4.

    () = + 1

    () = 4

    Mquina de Turing

    Para calcular la complejidad temporal nos servimos de la herramienta

    proporcionada por Microsoft Excel cmo est indicado en el libro. Se

    contaron los intervalos de tiempo diferencindolos en posicionamiento

    inicial (), avances (), retrocesos () y la transicin final ().

    Se forma la siguiente tabla:

    n Inicial Avances Retroceso Final

    3 1 4 6 1

    5 2 9 12 1

    7 3 16 20 1

    9 4 23 28 1

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    16

    Representando grficamente la tabla se obtienen las siguientes curvas:

    Del grfico podemos obtener las siguientes ecuaciones polinmicas:

    () =1

    22 + 4,9 +

    1

    2

    () =1

    22 + 3,9

    1

    2

    Tambin obtenemos dos ecuaciones lineales:

    () =

    () = 1

    A partir de estas cuatro ecuaciones podemos obtener la ecuacin de

    complejidad temporal al sumarlas:

    () =1

    22 + 4,9 +

    1

    2+

    1

    22 + 3,9

    1

    2+ + 1 = 2 + 9,8 + 1

    () = 2 + 9,8 + 1

    Para obtener la complejidad espacial observamos el autmata y podemos

    ver que para aceptar una cadena se debe pasar a travs de 8 estados del

    autmata.

    () = 8

    y = x

    y = 0,5x2 + 3,9x - 0,5

    y = 0,5x2 + 4,9x + 0,5

    y = 10

    5

    10

    15

    20

    25

    30

    3 5 7 9

    N

    me

    ro d

    e i

    nte

    rva

    los

    Longitud de cadena

    Clculo de complejidad temporal

    Inicial Avances Retroceso Final

  • UTNFRC SSL TP de Labor ator io 2K1 - 2015

    17

    Conclusin

    Luego de la realizacin del trabajo podemos apreciar que el mismo nos sirvi para afianzar contenidos previamente trabajados en la materia, permitindonos ver de otra forma el funcionamiento de las mquinas abstractas mediante el uso de simuladores.

    Tras la resolucin de los ejercicios prcticos planteados, construimos y analizamos autmatas mediante el uso de jFlap como simulador, del cual podemos decir que es muy eficiente como tal y da una gran facilidad para el desarrollo de este tipo de trabajos.

    Tambin observamos y comparamos el funcionamiento de una mquina de Turing y un autmata a pila, con la resolucin de un mismo ejercicio. Pudimos ver que para este caso el autmata a pila fue ms eficiente, ya que la funcionalidad de la pila que le permite con menor esfuerzo aceptar una cadena de cantidad igual de smbolos.

    Fue una muy buena experiencia en grupo tratando un tema que nos gusta y llama

    la atencin.