1 / 15

Desarrollo de un entorno de programación para Máquinas de Turing

Desarrollo de un entorno de programación para Máquinas de Turing. 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.

mykelti
Download Presentation

Desarrollo de un entorno de programación para Máquinas de Turing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desarrollo de un entorno de programación para Máquinas de Turing

  2. 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. Introducción

  3. 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. Propósito

  4. 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. Objetivos (I)

  5. 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. Objetivos (II)

  6. 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.

  7. Palabras clave • Máquinas de Turing. • Simulador. • Compilador. • Transformador de código. • Editor de texto.

  8. 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. Visión general

  9. 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. Investigaciones o trabajos parecidos

  10. Este proyecto se puede considerar un proyecto de desarrollo. Sin embargo contiene una pequeña parte de investigación bibliográfica. Tipo de proyecto

  11. ¿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? Preguntas de investigación e hipótesis.

  12. 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. Métodos

  13. 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) Recursos requeridos (HW y SW)

  14. 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. Recursos requeridos (Bibliografía)

  15. Enlace a diagrama de Gantt Plan de proyecto

More Related