Desarrollo de un entorno de programacin para Mquinas de Turing

presentation player overlay
About This Presentation
Transcript and Presenter's Notes

Title: Desarrollo de un entorno de programacin para Mquinas de Turing


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

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

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

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

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

9
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/tmd
    oc.html simulador que permite varias cintas de
    entrada.

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

11
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?

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

13
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)

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

15
Plan de proyecto
  • Enlace a diagrama de Gantt
Write a Comment
User Comments (0)
About PowerShow.com