CTJ - CSP To Java
Benjamin Le Bozec

CTJ, qu'est-ce que c'est ?

CTJ (CSP to JAVA) permet l'exécution de programmes CSP, en les traduisant (compilant) en Java.

Développé en 2005, CTJ fut mon sujet de stage de dernière année d'IUT informatique. Je l'avais effectué à l'IRCCyN (Institut de Recherche en Communication et Cybernétique de Nantes) sous la tutelle de M. Olivier Roux.

Pour exécuter un programme CSP, CTJ procède en deux étapes. Tout d'abord il traduit le programme en classes JAVA, puis il compile ces classes à l'aide d'un compilateur classique (javac). CTJ intègre aussi un environnement d'exécution afin de suivre en temps réel les processus créés, les sorties, ...

Afin de simplifier l'utilisation de cet outils, un interface graphique a en plus été developpé. Il se divise en deux fenêtres : une fenêtre compilateur, permettant de selectionner le programme CSP ainsi que le compilateur JAVA (javac); une fenêtre 'environnement d'exécution'.

Et CSP, c'est quoi ?

CSP (Communicating Sequential Processes) correspond au langage définit par Hoare en 1978. C'est un langage de programmation parallèle permettant de définir simplement des interactions entre processus, et intégrant un mécanisme de synchronisation basé sur le principe du rendez-vous.

Un tel langage permet donc d'implémenter avec élégance les principaux paradigmes de la programmation parallèle (producteurs/ consommateurs, etc.) mais n'est pas suffisamment complet pour devenir un véritable langage de programmation.

Exemple d'un producteur/consommateur avec un tampon une place : prodcons.csp

Par ailleurs vous trouverez ici l'article dans lequel Hoare définit CSP : hoare1978csp.pdf

Téléchargements

CTJ en .jar :

CTJ 1.4
CTJ 1.3

Sources (compilation testée avec succès sous eclipse 3.2) :

CTJ 1.4 src
CTJ 1.3 src

Manuel d'utilisation (il vaut ce qu'il vaut...) :

Manuel d'utilisation 1.0

Rapport de stage et annexes :

rapport 1.1
annexe 1.1

Pour me contacter

Si vous avez des questions, des remarques, ou si vous avez détecté des erreurs dans le programme, voilà un mail où me joindre :

benjamin_lebozec@hotmail.fr

Dernière mise à jour le 11-12-06