www.heig-vd.ch
Auteur:
Répondant externe:
Prof. responsable:
Sujet proposé par:
Jérôme Amiguet
Claude Evéquoz
Institut SIM
HEIG-VD © 2013, filière Informatique
Programmation répartie à l'aide d'un langage
fonctionnel
Mots clés
Programmation répartie ;
Programmation fonctionnelle ;
Erlang ;
Scala.
Description
Le but de ce projet est d’implémenter différents
algorithmes de programmation répartie dans
un ou des langages de programmation
fonctionnelle.
Ces implémentations sont comparées aux
implémentations Ada données dans le cours
de programmation répartie. Elles sont aussi
comparées entre elles pour déterminer lequel
des langages est le plus approprié pour mettre
en évidence le principe de ces algorithmes de
programmation répartie.
Langages choisis
Plusieurs langages ont été utilisés lors de ce
travail puisqu’il est plus intéressant d’avoir
différents points de vues.
Erlang est un langage de programmation
fonctionnelle qui a été créé pour faire de la
programmation sur un réseau. Ainsi, il est, à
priori, adapté au problème posé.
Scala est un langage de programmation multi-
paradigme. Il met en œuvre le paradigme
orienté objet et le paradigme fonctionnel. Il est
donc intéressant de voir ce que ce multi-
paradigme peut apporter au projet.
Ces deux langages sont des langages
fonctionnels impurs.
Un troisième langage, Clean, est aussi abordé
dans ce travail. Cependant, les difficultés à
permettre la transmission des messages entre
différents nœuds ont exclu toutes approches
pratiques. Une approche théorique est
néanmoins présentée.
Algorithmes choisis
Exclusion mutuelle : Lamport ;
Election en anneau avec pannes
possibles des sites ;
Paradigme des sondes et des échos :
o Diffusion dun message ;
o Simple exploration du réseau ;
o Exploration en profondeur ;
Terminaison par diffusion.
Interprétation et implémentation
Dans un premier temps, les différents
algorithmes sont interprétés pour une
représentation fonctionnelle de manière
théorique. Cette approche saffranchit de toute
spécificité dun langage donné. Ainsi, une base
de travail théorique est donnée pour pouvoir
implémenter ces algorithmes.
Ensuite, ces algorithmes sont implémentés en
Erlang et en Scala. Ces implémentations sont
critiquées sur leur lisibilité et sont comparées
avec leurs correspondantes en Ada.
Quelques implémentations théoriques en
Clean sont données pour illustrer ce qui serait
faisable dans un langage fonctionnel pur.
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !