Anciens projets d'étudiants

Bon nombre d'étudiants ont mené à bien des projets de recherche ou de développement sous la supervision du LAMP. Cette liste non-exhaustive est une mémoire de ces travaux.

Les oeuvres (code source ou documentation) référencées depuis cette page sont la propriété de l'étudiant-auteur. Ces oeuvres peuvent être consultées. Par contre, et sauf indication contraire, le droit de copie de ces oeuvres, en tout ou en partie y compris dans le cadre d'un produit dérivé, ne vous est pas accordé. Veuillez prendre contact avec l'étudiant ou le LAMP, qui transmettra, si vous souhaitez obtenir une licence d'utilisation.

2011

Scala SBT build

keywords: scala, sbt

Goal

Scala currently uses ant for its build. This build bootstraps the libraries and compiler and runs a number of tests using the partest tool. The ant script to do this is 1628 lines of XML long and is quite hard to maintain. Fortunately, there is now a better alternative with SBT, a Simple Build Tool which is written in Scala and which uses Scala as its build language. Your task in this project is to duplicate the behavior of the current ant script in SBT. If sucessful, your new script will replace ant in all Scala builds.

Scala bytecode viewer

keywords: scala, java bytecode, swing

The Scala compiler generates ordinary java classfiles which can be inspected with any available bytecode tool (e.g. javap, jad, jclasslib). However, every classfile originating from Scala is equipped with additional metadata (the ``Scala signature'') in the form of a classfile attribute, which contains information about the types, symbols and annotations appearing in the class. Since existing tools are not aware of the Scala signature attribute they are not able to decode and display its content.

Goal

The goal of this project is to extend the jclasslib graphical java bytecode viewer to display the contents of the Scala signature attribute. jclasslib is written in Java and uses swing for its graphical user interface.

Your task

A reflection library for Scala which decodes the binary representation of the Scala signature attribute and provides it's content through a nice API is currently in the works by Gilles Dubochet. Your task is to create a clean and user-friendly graphical representation of the information provided by the reflection library. Since the library is written in Scala we encourage you to write the jclasslib extension in Scala as well.

2008

Scalab: a Build Tool for Scala

par Vincent Pazeller sous la supervision de Gilles Dubochet (projet de master).

Continuant sur les bases théoriques du premier projet Scalab, Vincent a implanté un outil d'automatisation de la construction de projets (build tool) en Scala. Ayant défini une notion de modèle, inspiré de circuits électroniques, représentant les dépendances dans le processus de construction, l'outil offre une bibliothèque pour représenter ceux-ci comme programmes Scala. Un outil en ligne de commande permet d'exécuter ces fichiers directement.

Le projet s'est particulièrement concentré sur la définition de systèmes d'antémémoires (caches), permettant d'accélérer le processus de construction en réutilisant les résultats précédents dont on peut s'assurer qu'ils n'ont pas été modifiés.

Télécharger le rapport ou visiter le dépôt SVN.


Scalit – Literate Programming in Scala

par Sebastian Gfeller sous la supervision de Geoffrey Washburn (projet de semestre).

A literate program is written and presented in a form that is better accessible to human reading by providing the possibility to reorder its parts in the order they should be explained. This work aims to provide tools for literate programming in Scala. Besides providing an overview of the implementation of the Scalit tool suite, the applicability of literate programming techniques to Scala is explored.

Télécharger le report ou visiter le Scalit site web.


Static type safety guarantees for the operators of a relational database querying system

par Cédric Lavanchy sous la supervision de Gilles Dubochet (projet de semestre).

Dans la mesure où Scala offrait à ce moment, a travers les types structurels, une représentation de types compatible avec celle de l'algèbre relationel, Cédric à étudié les contraintes pratiques de l'implantation d'une bibliothèque fortement et statiquement typée d'algèbre relationel en Scala.

La bibliothèque résultante de ce projet démontre que les types structurels, les manifests et les proxys dynamiques permettent, ensemble, de concevoir une bibliothèque d'algèbre relationnelle qui, étant une définition des types d'une base de données, peut maintenir ces types tout au long d'un programme. En d'autres termes, elle permet au compilateur de détecter des erreurs de types à toutes les étapes du processus : construction des requêtes et lecture des résultats.

Outre cette démonstration, ce projet à également défini des rêgles de transformation entre l'algèbre relationel et l'algèbre SQL, ainsi que les limites de SQL en la matière.

Télécharger le rapport ou visiter le dépôt SVN. Le code de ce projet est régi par la licence open-source Scala. Vous êtes donc libre de l'améliorer ou de l'utiliser dans vos propres logiciels.

2007

DocuWiki:— automatic interaction with versioned source data

par Christian Conus, Pascal Conus et Sammy Ramareddy sous la supervision de Gilles Dubochet (projet de semestre).

Dans ce projet, Christian, Pascal et Sammy ont développé un outil complet de wikification des commentaires Scala stockés dans un dépôt SVN (scaladoc). L'outil extrait automatiquement les commentaires d'un ensemble de fichiers sur SVN, les introduit dans une base de données qui est ensuite présentée sous forme de wiki éditable grâce à une application web sous Tomcat. Les changements dans le wiki sont réintroduits, automatiquement également, dans le dépôt SVN à intervalles réguliers.

Outre les questions d'ingénierie résolues dans le cadre de ce projet, ces étudiants ont raffiné le modèle, basé sur celui de Sygeco, pour écrire des applications web sur Tomcat. Ce projet définit et implémente un modèle entité-relation modélisant les entités (définitions et types) relevantes à la documentation de code.

Télécharger le rapport ou les sources.


Mirror-based reflection in Scala

par Yohann Coppel sous la supervision de Gilles Dubochet (projet de semestre).

Télécharger le rapport ou les sources.


Sygeco 3

par Micaël Paquier sous la supervision de Gilles Dubochet (projet de semestre).

Visiter le dépôt SVN.


Scala GUI library

par Olivier Gobet sous la supervision de Gilles Dubochet (projet de semestre).

Visiter le dépôt SVN.


Scala IDE as an Ajax Web Application

par Stephane Ruchet sous la supervision de Gilles Dubochet (projet de semestre).

Télécharger le rapport ou visiter le dépôt SVN.

2006

Efficient Semi-structured Queries in Scala using XQuery Shipping

par Fatemeh Borran-Dejnabadi sous la supervision de Gilles Dubochet (projet de master).

Fatemeh a étudié la possibilité d'utiliser les outils de métaprogrammation de Scala pour implanter une bibliothèque XQuery. La bibliothèque analyse à l'exécution un arbre de syntaxe produit par le compilateur pour une expression composée de compréhensions de séquences (boucles for). Des heuristiques de réécriture traduisent cette expression Scala en une expression XQuery équivalente.

Outre l'implantation du prototype de bibliothèque, ce projet compare formellement les expressions XQuery avec les compréhensions Scala et propose un formalisme faisant correspondre les unes aux autres.

Télécharger le rapport ou visiter le dépôt SVN.