maquina de turing proyecto

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

Upload: brenly

Post on 06-Jun-2015

8.233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: maquina de turing proyecto

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

Turing

Page 2: maquina de turing proyecto

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

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

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

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

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

Palabras clave

● Máquinas de Turing.● Simulador.● Compilador.● Transformador de código.● Editor de texto.

Page 8: maquina de turing proyecto

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

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

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

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

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

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

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

Plan de proyecto

Enlace a diagrama de Gantt