Bonjour à tous,
Maintenant que mon travail a un peu avancé, je me permets de vous présenter ici ce projet : GniehTuring (ou GTuring, mais je crois que ca existe déjà...).
Nom : GniehTuring
Version : alpha
Site : http://gturing.n7mm.org (pour l'instant juste en Anglais, mais si j'ai le courage, pourquoi ne pas le traduire...)
Langue : Anglais
Description : Un environnement de développement de machines de Turing ainsi qu'une une spécification.
Fonctionnalités : Voir ci dessous...
Compatibilité : Devrait tourner sous toute plateforme munie d'un machine virtuelle Java
Nécessite : Machine virtuelle Java
Téléchargement : Pas encore de release, il faut compiler depuis les sources (script Ant fourni)
Licence : GPL v3 (http://www.gnu.org/licenses/gpl-3.0.html)
Langage : Java
Les sources : https://secure.n7mm.org/svn/gturing
A venir : bientôt je l'espère une première version facilement utilisable et propre
GniehTuring, donc est un projet contenant plusieurs parties :
- Un langage (TMDL) permettant d'écrire des machines de Turing (spécifié)
- Une bytecode (TBC) permettant d'exécuter les machines à l'aide d'une machine virtuelle (spécifiés tous les deux)
- Une implémentation en Java du compilateur TMDL -> TBC
- Une implémentation en Java d'une machine virtuelle exécutant du TBC
Description
Le but de ce projet est d'un aspect pédagoogique, pour toute personne intéressée par la théorie des compilateurs et/ou les machines virtuelles, étant donné que tout ce système reste encore simple. Il peut aussi avoir un intérêt pour les personnes s'intéressant aux machines de Turing. J'ai tenté lors de la spécification (et de l'implémentation) du langage et de la machine virtuelle de décrire les machines de Turing et leur exécution, telles qu'Alan Turing lui même les avait décrites dans son article On computable umbers with an application to the Entscheidungsproblem, impressionné que je fus en le lisant par l'avant-gardisme des idées de Turing.
Ce projet me permet (et pourrait si vous le souhaitez vous permettre) de mettre en application mon intérêt pour les machines de Turing avec mes connaissances sur la théorie de la compilation et des langages formels (le but n'est vraiment pas de révolutionner le monde).
Bref comme je l'ai dit plus haut, l'intérêt de ce projet est avant tout pédagogique.
Etat actuel
Le projet est encore en cours de développement, et il reste encore beaucoup à faire, mais il est cependant déjà utilisable (voir ici) dans des cas simples, mais permettant déjà de faire tourner des machines.
Voilà donc, tout commentaire me permettant de faire évoluer ce projet est le bienvenu (vous pouvez en laisser sur le site, ainsi qu'ouvrir un ticket si cela est nécessaire).
En vous remerciant par avance de l'intérêt que vous porterez à ce petit projet.![]()
Partager