1 Projets/stages d'année liés au langage SCOL
1.1 Technologie SCOL
La société Cryo-Networks développe depuis 96 une technologie dédiée aux applications multi-utilisateurs sur internet appelée Scol (Standard Cryo On Line). Cette technologie, sans concurrence à l'heure actuelle, repose sur
deux niveaux :
-
une machine virtuelle, contenant :
- un compilateur à la volée dun langage de programmation fonctionnelle
- une gestion automatique de la mémoire avec présence dun GC
- des nombreuses librairies : 3d, 2d, texte, audio, video, http client et serveur, sql, telnet, arithmétique, ...
- une architecture de composants distribués, DMS
Dès l'origine, le projet a montré une ambition scientifique, et notamment
celle de servir de support à certains enseignements.
Pour ce faire, l'accès à la machine virtuelle et à la documentation du
langage est gratuite, et loutil graphique dassemblage des composants DMS
est gracieusement fourni aux universités qui en font la demande.
Par ailleurs, Cryo-Networks met en oeuvre cette technologie pour
réaliser des mondes persistants sur Internet, à caractère ludique.
En novembre 99 sortira ainsi Venise, un jeu de négociation au 16e siècle,
entièrement réalisé avec larchitecture DMS.
Cryo-Networks souhaite développer ses liens avec les milieux universitaires,
notamment par lun des ces trois moyens :
-
favoriser les projets réalisés à luniversité et basés sur la technologie Scol
- proposer des stages de fin détude ou de DEA/DESS, débouchant
généralement sur une proposition dembauche, ou si le sujet le permet
sur une thèse en entreprise
- développer un enseignement de Scol, sous forme de Td.
L'expérience récente a montré, notamment à Jussieu et à Rennes, que l'intérêt
des enseignants pour les aspects innovants et sérieux du langage,
rencontrait celui des élèves pour les applications graphiques et en réseau.
1.2 Liste de projets/stages année 1999/2000
Ces sujets d'études sont proposés par Sylvain Huet (Cryo-networks)
en liaison avec le cours <<Langages Fonctionnels>>.
Tous les sujets d'étude sont des stages individuels possibles.
Seuls les numéros
1,2 et 6 peuvent être choisis comme projet d'année
pour des binômes du DESS GLA.
-
Approche composante DMS et agents
L'architecture DMS (Distributed Modules System) développée à partir de Scol
poursuit un objectif simple : rationnaliser le développement d'une
application en simplifiant les interactions entre les différents composants.
Cette architecture modulaire suit la règle suivante : on ne doit trouver
dans un module aucune référence explicite à un autre module. En d'autres
termes, un module ne connaît rien des autres, et en particulier ne peut
invoquer explicitement une méthode d'un autre module. Chaque module dispose
d'un nombre quelconque dentrées et de sorties et peut traiter les signaux
entrant et produire des signaux en sortie. La connaissance mutuelle des
modules est remplacée par la travail de lintégrateur qui assemble les
modules au moyens de liens orientés : une sortie vers une ou plusieurs
entrées. Tout comme en électronique des circuits imprimés, le graphe obtenu
est statique.
Dans cette architecture, on introduit la notion dutilisateur, proche de
celle dagent. Les utilisateurs se déplacent dans le graphe (on parle
de graphe User-Flow) et peuvent interagir lorsquils sont présents dans
le même module. Le problème de la connaissance mutuelle des utilisateurs
se pose de nouveau, mais avec une difficulté supplémentaire,
car les utilisateurs sont dynamiques : ils apparaissent et disparaissent
de manière imprévisible. Deux questions se posent alors : avec qui un
utilisateur donné va-t-il communiquer? quelle va être la forme de cette
communication? Il va de soi que lon souhaite conserver le même principe de
non-connaissance mutuelle, appliqué cette fois aux utilisateurs.
L'objet du projet est d'étudier les différents systèmes existants,
de proposer et dimplémenter une solution, extension de larchitecture DMS.
- Langage Scol extension objet
Le langage Scol est un langage fonctionnel. Pour simplifier le développement
de certaines applications, et notamment les applications graphiques aux
effets de bord nombreux, une extension objet du langage est souhaitée.
L'objet du projet est danalyser les différences fondamentales entre
programmation objet et programmation fonctionnelle, puis de proposer une
extension et notamment une syntaxe, enfin de participer à l'implémentation
de cette extension dans le compilateur Scol.
- Machine virtuelle GC
La machine virtuelle Scol est basée sur une gestion automatique de la mémoire,
par un système d'allocation explicite et de désallocation par GC.
Un certain nombre d'études peuvent être menées sur le système actuel.
Dans un premier temps, un analyse statistique de la structure des blocs
alloués: taille, durée de vie, nombre de pointeurs, ...
Dans un deuxième temps, et après une étude des nombreux
algorithmes GC documentés, des propositions de modification du GC seront
faites, implémentées et analysées.
- 3d modélisation automatique
Le développement de la 3d sur internet se heurte à trois difficultés de
niveaux différents. Les deux premières sont la puissance requise pour la 3d
temps réelle et la taille des scènes 3d (qui équivaut en gros à la taille
des textures de la scène). Ces deux difficultés se résolvent petit à petit
par l'augmentation des performances des divers matériels impliqués.
La troisième difficulté est celle de la modélisation. Les outils de
modélisation 3d requièrent un temps de développement long, sans compter
le temps de formation, lui aussi très coûteux.
De plus la modification dune scène 3d existante est souvent lourde et malaisée.
L'objet de ce projet est de modéliser automatiquement un espace à partir
d'une base de données dinformations. On prendra comme première application
la modélisation automatique de rayonnages en 3d, à partir dune base de
données de produits et de photos des produits : le programme crée
automatiquement un rayonnage en 3d présentant les produits sous forme de
photos, reliées à des Url de description du produit.
- portage Scol
La machine virtuelle Scol a été conçue dès le début pour être multiplateforme.
Son coeur a dailleurs été développé initialement sur Unix.
Une version complète sous Windows est disponible. Une version Unix sans les
librairies audio est également disponible. Il manque principalement une
version Macintosh.
L'objet du projet est de porter Scol sur ces plateformes. Ce projet doit
impérativement se dérouler dans les murs de l'entreprise.
- Debugger fonctionnel et distribué
Un debugger pour Scol est un logiciel relativement complexe à écrire.
D'une part, Scol est un langage fonctionnel avec inférence de type.
Cela signifie qu'en général le type des données n'est pas conservé au-delà
de la compilation. Ensuite les applications Scol sont le plus souvent
distribuées entre plusieurs machines, qui ne communiquent pas forcément
en étoile mais selon un graphe quelconque.
Ecrire un tel programme nécessite donc une étude très approfondie du domaine.
Une thèse en entreprise peut être envisagée.
1.3 Cryo-networks
CRYO NETWORKS
44-50, avenue du capitaine Glarner
93585 Saint-Ouen
France
Tél : 33 1 49 48 69 00
Fax : 33 1 49 48 69 01
www : http://www.cryo-networks.com
Contact :
Sylvain Huet
Directeur de la Technologie
Directeur Général Adjoint