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

Slides:



Advertisements
Presentaciones similares
Compiladores y sus aplicaciones
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 2: TECNOLOGÍA JAVA Ing. Ronald Criollo.
Características Generales y Entornos de Desarrollo
¿Qué es Sofware? Son el conjunto de instrucciones que dirigen las actividades del Hardware Consiste en programas, módulos de soporte y archivos de datos,
Unidad I - Programación. Como están escritos los programamas de computadoras.
Conceptos preliminares
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
Ing. Enrique Meneses. Son las instrucciones detalladas que controlan el funcionamiento de un sistema de computación. Funciones: 1. Administrar los recursos.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
SOFTWARE DE PROGRAMACIÓN
FLAN “F- LINKS AND NODES”
Resolución de Problemas Algoritmos y Programación
Ing. Esp. Ricardo Cujar. El computador: es una máquina que permite hacer tareas aritmético y lógicas de una manera fácil, consta de software y hardware.
Procesadores de Lenguajes I
Entornos de programación
Tema 1 Introducción a la programación (Lenguaje java).
Programación 1 Introducción
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
© Manuel ColladoEntornos de Programación-1 Entornos de programación Concepto, funciones y tipos.
Introducción al Software
Free Pascal 1. Introducción 2. Instalación 3. Uso 4. Documentación 5. Información Adicional.
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
Introducción a la programación en C
Proceso de información en la computadora
CS-434: Programación Orientada a Objetos usando Java Semana 1
Autómatas y Lenguajes Formales
Introducción a la Programación. Lenguaje de Máquina.
INTRODUCCIÓN A LA COMPUTACIÓN
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
LENGUAJE DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACION son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Qbasic, Visual Basic, Pascal, Java,
FUNDAMENTOS DE PROGRAMACIÓN ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ.
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
Curso de Java La tecnología Java
INTEGRANTES LINA JIMÉNEZ LOZANO ROSA ELENA REINA CARLOS VILLADIEGO MARIANO SEPULVEDA.
Compiladores Ingeniería en Computación M. en C. J. Jesús Arellano Pimentel.
TEMAS PRINCIPALES. ALGORITMOS. CONCEPTOS El algoritmo es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
FUNDAMENTOS DE PROGRAMACION
 Un LENGUAJE DE PROGRAMACION es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas al cabo por maquinas como las computadoras.
Programación orientada a objetos. La programación orientada a objetos es un conjunto de normas, que se basan en la idea de construir un software de forma.
TALLER DE INFORMATICA 1  UNIDAD 1 EXCEL 1.1 INTRODUCCION.
 Es un programa escrito en Java y que forma parte de los componentes de una página de Internet. Los Applets han sido usados para proporcionar funcionalidad.
TIPOS DE SOFTWARES Stephany Sifuentes Parra 1ro A Preescolar.
ARQUITECTURA DE LOS SISTEMAS DE INFORMACIÓN
Introducción a UML Departamento de Informática Universidad de Rancagua
SOFTWARE Jennifer Giselle De Diego Romero NL:9
Procesadores de Lenguajes
Desarrollo DE apps móviles
Lenguaje programación
III. DESARROLLO DE SISTEMAS.. Podemos definir el desarrollo de sistemas informáticos como el proceso mediante el cual el conocimiento humano y el uso.
Tres Etapas Tres Etapas de un Programa en C++ Otro código de librerias, etc. Otro código de librerias, etc. Escrito en machine language Escrito en machine.
Software.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Desarrollo DE apps móviles
Curso: Programación I Grado: 4to. Bachillerato Prof. Gerardo Barrientos.
TIPOS DE SOFTWARE Cintia Verónica Díaz Díaz 1° “A” TIC’s.
Software.
TEMA 4: MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Diseño y Programación Orientados a Objetos1 Introducción a Java.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Fundamentos de Programación Unidad I Conceptos Básicos.
LENGUAJE DE PROGRAMACIÓN PARA JUEGOS Integrantes: Ruiz José Vargas Mary.
Juan Camilo Morales 10a.  Es el conjunto de herramientas que permiten al programador escribir programas informáticos, usando diferentes alternativas.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
Autómatas y Compiladores. Primera Semana. Ricardo Vargas Del Valle A35469.
Transcripción de la presentación:

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

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.

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.

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.

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.

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.

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

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.

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.

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

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?

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.

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)

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.

Enlace a diagrama de Gantt Plan de proyecto Enlace a diagrama de Gantt