TPL - Sintaxis y Semántica de los Lenguajes
-
Author
juan-pablo-lorenzo -
Category
Documents
-
view
46 -
download
3
Embed Size (px)
description
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.