CANOU Benjamin
Direction de recherche : Emmanuel CHAILLOUX
Co-encadrement : BALAT Vincent
Programmation Web Typée
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 la couche objet de JavaScript et celle d'OCaml, permettant d'utiliser de façon bien typée 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.
Soutenance : 04/10/2011
Membres du jury :
Emmanuel Chailloux, Professeur UPMC
Vincent Balat, Maître de Conférences à l'Université Paris Diderot
Jacques Garrigu, Professeur à l'Université de Nagoya [rapporteur]
Peter Van Roy, Professeur à l'Université Catholique de Louvain [rapporteur]
Christian Queinnec, Professeur UPMC
Giuseppe Castagna, Directeur de Recherches au CNRS
Manuel Serrano, Directeur de Recherches à l'INRIA Sophia Antipolis
Alain Frisch, Directeur Technique, LexiFi
Publications 2007-2013
-
2013
- B. Canou, E. Chailloux, V. Botbol : “Static Typing and JavaScript Libraries: Towards a More Considerate Relationship”, International World Wide Web Conference, dev track, Rio de Janeiro, Brazil, pp. 15-17 (2013)
- B. Canou, E. Chailloux, V. Balat : “A declarative-friendly API for Web document manipulation”, International Symposium on Practical Aspects of Declarative Languages (PADL 2013), vol. 7752, Lecture Notes in Computer Science, Rome, Italy, pp. 109-124, (Springer) (2013)
-
2012
- B. Canou, E. Chailloux, J. Vouillon : “How to Run your Favorite Language in Web Browsers”, WWW2012 dev track proceedings, Lyon, France (2012)
-
2011
- B. Canou : “Programmation Web Typée”, soutenance de thèse, soutenance 04/10/2011, direction de recherche Chailloux, Emmanuel, co-encadrement : Balat, Vincent (2011)
-
2009
- M. Bourgoin, B. Canou, E. Chailloux, A. Jonquet, Ph. Wang : “OC4MC: Objective Caml for Multicore Architectures”, 21st Symposium on Implementation and Application of Functional Languages, vol. SHU-TR-CS-2009-09-1, South Orange, United States, pp. 24-41 (2009)
- B. Pagano, O. Andrieu, Th. Moniot, B. Canou, E. Chailloux, Ph. Wang, P. Manoury, J.‑L. Colaço : “Experience Report: Using Objective Caml to develop safety-critical embedded tool in a certification framework”, The 14th ACM SIGPLAN International Conference on Functional Programming (ICFP 2009), Edinburgh, United Kingdom, pp. 215-220, (ACM) (2009)
- B. Canou, A. Darrasse : “Fast and sound random generation for automated testing and benchmarking in Objective Caml”, 2009 ACM SIGPLAN Workshop on ML, Edinburgh, United Kingdom, pp. 61-70, (ACM) (2009)
-
2007
- B. Pagano, B. Canou, E. Chailloux, J.‑L. Colaço, Ph. Wang : “Couverture de code Caml pour la réalisation d’outils de développement certifiés”, Journées Francophones des Langages Applicatifs (JFLA 2007), Aix-les-Bains, France, pp. 71-86 (2007)