maquina de turing proyecto
Transcript of maquina de turing proyecto
![Page 1: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/1.jpg)
Desarrollo de un entorno de programación para Máquinas de
Turing
![Page 2: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/2.jpg)
Introducción
●MT permiten describir mediante operaciones sencillas todas las operaciones computables.●En teoría las MT tienen cinta infinita, ordenadores actuales memoria finita: MT más potentes que los ordenadores actuales computacionalmente.●Importancia de las Máquinas de Turing en la formación de cualquier estudiante de computación.
![Page 3: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/3.jpg)
Propósito
El propósito de este proyecto es construir un entorno de programación que permita construir, simular y compilar programas de Máquinas de Turing. El
sistema, además, deberá proporcionar mecanismos para transformar código sencillo en Pascal en su
correspondiente Máquina de Turing.
![Page 4: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/4.jpg)
Objetivos (I)
●Realizar un estudio bibliográfico sobre las MT y sus distintas variantes, para ver cuales pueden ser implementadas en un ordenador actual y cuáles no.●Desarrollar un simulador, al que se le indique dónde puede encontrar el texto que describe una MT y sus cintas de entrada y simule visualmente la MT, permitiendo la depuración de la misma.●Desarrollar un programa al que dado un código fuente sencillo en Pascal lo transforme en su correspondiente código de MT.
![Page 5: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/5.jpg)
Objetivos (II)
●Desarrollar un compilador que compile y optimice en lo posible el código de una MT. El programa ejecutable deberá permitir la entrada mediante parámetros una o varias cintas de entrada.●Desarrollar un editor de texto que facilite la codificación de Máquinas de Turing o programas en Pascal.●Integrar todas las partes desarrolladas en un entorno de desarrollo integrado (IDE).●Realizar un manual de instrucciones que indique cómo codificar las MT y cómo utilizar el entorno.
![Page 6: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/6.jpg)
Resultados
● Un volumen impreso donde se pueda estudiar la teoría de las Máquinas de Turing.
● Un compilador de Máquinas de Turing.● Un IDE que permita escribir, depurar, simular y
compilar Máquinas de Turing (escritas en código MT o mediante código Pascal).
● Documentación en HTML acerca del uso del entorno.
● Manual de usuario.
![Page 7: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/7.jpg)
Palabras clave
● Máquinas de Turing.● Simulador.● Compilador.● Transformador de código.● Editor de texto.
![Page 8: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/8.jpg)
Visión general
●Muchos proyectos que simulan MT de una sola cinta.●Menos proyectos que simulan MT de varias cintas o varias pistas.●Pocos proyectos que compilan MT creando código ejecutable.●Ningún proyecto que convierte código de alto nivel en código de Máquina de Turing.
![Page 9: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/9.jpg)
Investigaciones o trabajos parecidos
●http://www.igs.net/~tril/tm/: este proyecto simula MT de una sola cinta.●http://www.cheransoft.com/vturing/: entorno de desarrollo que permite la simulación y depuración de MT de una sola cinta.●http://www.nmt.edu/~prcm/turing/: en este link hay dos versiones de simuladores de Máquinas de Turing: una versión para UNIX (descargable) y una aplicación web.●http://www.ncc.up.pt/fado/node2.html: una versión para línea de
comandos y otra visual de un simulador de MT para una sola cinta de entrada.
●http://www.cs.binghamton.edu/~lander/tm_source/tmdoc.html: simulador que permite varias cintas de entrada.
![Page 10: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/10.jpg)
Tipo de proyecto
Este proyecto se puede considerar un proyecto de desarrollo. Sin embargo contiene una pequeña parte de
investigación bibliográfica.
![Page 11: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/11.jpg)
Preguntas de investigación e hipótesis.
●¿Sobre qué sistema operativo funcionará el proyecto?●¿Existirá una versión de software libre del sistema?●¿Cuáles serán los requisitos software del sistema?●¿Qué tipos de Máquinas de Turing será capaz de compilar / simular?
![Page 12: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/12.jpg)
Métodos
●Búsqueda bibliográfica.●Para el desarrollo se seguirá un subconjunto de las tareas de Métrica versión 3.●Análisis y diseño orientado a objetos (usando diagramas UML).●Programación orientada a objetos.
![Page 13: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/13.jpg)
Recursos requeridos (HW y SW)
Hardware:No se requiere nada especial, un simple PC basta.
Software:●Java Development Kit (JDK).●Entorno de desarrollo para Java (NetBeans)●Herramientas Flex y Bison.●Compilador de C/C++ (Lcc)
![Page 14: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/14.jpg)
Recursos requeridos (Bibliografía)
Sobre Máquinas de Turing:●Introduction to Automata Theory, Languages, and Computation. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman.●The Universal Turing Machine: A Half-Century Survey (Computerkultur, Bd 2). Rolf Herken.●Introduction to the Theory of Computation. Michael Sipser.
Sobre compiladores:●Compiladores: principios, técnicas y herramientas. Aho, Sethi y Ullman.●Writing Compilers and Interpreters. Ronald Mak.
Sobre las herramientas a usar:●Lex & Yacc. John R. Levine, Tony Mason, Doug Brown.●Thinking in Java (3rd. Edition). Bruce Eckel.●Programación en C/C++. Francisco Javier Ceballos Sierra.
![Page 15: maquina de turing proyecto](https://reader036.fdocuments.ec/reader036/viewer/2022082322/5571f1a949795947648b7a6c/html5/thumbnails/15.jpg)
Plan de proyecto
Enlace a diagrama de Gantt