Soutenance de thèse de Benjamin Canou

Agenda

La soutenance se déroulera le Mardi 4 octobre 2011, à 10h45 en salle 25-26-105 sur le campus de Jussieu (voir plus bas les informations d'accès).

Résumé de la thèse

Le manuscrit complet est téléchargeable ici.

En Français

Le but de cet thèse est de contribuer à rendre la programmation Web plus flexible et plus sûre qu'elle ne l'est avec les solutions répandues actuellement. Pour ceci, proposons une solution dans la lignée des langages de la famille ML, qui laisse un maximum de liberté au programmeur de part son côté multi-paradigmes, tout en offrant un degré de sûreté important grâce au typage statique.

Dans une première partie, nous montrons qu'il est possible de programmer le navigateur sans se plier au style de JavaScript. Notre solution est OBrowser, une implantation en JavaScript de la machine virtuelle OCaml. L'implantation prend en charge l'ensemble du langage OCaml et de sa bibliothèque, y compris le modèle de concurrence préemptif. Nous présentons de plus un mécanisme d'inter-opérabilité entre les couches objet de JavaScript et d'OCaml, permettant d'utiliser de façon bien typé l'environnement du navigateur avec les objets d'OCaml.

Dans une seconde partie, nous fournissons une API de manipulation du document plus sûre et de plus haut niveau que le DOM des navigateurs. En particulier, nous cherchons à éliminer les déplacements implicites effectués par le DOM pour maintenir la forme d'arbre, qui limitent les possibilités de typage statique. Nous donnons d'abord fDOM, un modèle formel minimal similaire au DOM. Puis nous proposons cDOM, un modèle alternatif où les déplacements sont remplacés par des copies. Nous décrivons ensuite FidoML, un langage basé sur ML, permettant les manipulations bien typées du document grâce à l'utilisation de cDOM. Dans toute cette partie, nous faisons attention à ce que les solutions données soient aussi adaptables que possible.

Dans une troisième partie, nous montrons comment les travaux, jusqu'ici principalement présentés dans le cadre du navigateur, s'appliquent à un contexte multi-tiers. Nous donnons d'abord un tour d'horizon des plates-formes multi-tiers proches issues de la recherche. Nous décrivons en particulier les solutions qu'elles apportent à un ensemble de problématiques spécifiques à la programmation Web. Puis nous concluons en présentant les grandes lignes d'un langage multi-tiers mettant à profit les travaux des deux parties précédentes dans les solutions à ces différentes problématiques.

In English

The goal of this thesis is to contribute to make Web programming safer and more flexible than it is in the solutions prevalent today. To achieve this goal, we propose a solution based on the ML language family, which brings freedom to the programmer by its multi-paradigm aspect, while providing an important level of safety thanks to static typing.

In the first part, we show that it is possible to program the browser without sticking to the style of JavaScript. Our solution is OBrowser, an OCaml virtual machine in JavaScript. The implementation supports the whole OCaml language and its library, including the preemptive concurrency model. We additionaly present a mechanism for inter-operability between the object layers of JavaScript and OCaml, that allows to use the browser's API in a type-safe way, using OCaml objects.

In the second part, we give an API for document manipulations, designed to be safest and more high-level than the browser's DOM. In particular, we aim at eliminating the implicit moves performed by the DOM to maintain the tree structure, and which limit the possibilities of static typing. First, we give fDOM, a minimal formal model similar to the DOM. Then, we propose cDOM, an alternative model in which moves are replaced by copy operations. We then describe FidoML, a language based on ML equiped with document manipulation features, that are well typed thanks to the use of cDOM. Throughout this part, we make a special effort to design solutions flexible enough to be used in languages other than ML.

In the third and final part, we show how the work, so far presented in the context of the browser, can be applied to a multi-tier model. First, we give an overview of related multi-tier research platforms. In particular we describe the solutions they provide to a selected set of language aspects specific to Web programming. Then, we conclude by giving the outline of a multi-tier language, using the work of the first two parts to built solutions to these language aspects.

Comment venir


Plan d'accès.