Tierless Modules

Abstract : Tierless Web programming languages allow to combine client-side and server-side programming in a single program. This allows to define expressions with both client and server parts, and at the same time provides good static guarantees regarding client-server communication. However, these nice properties come at a cost: most tierless languages offer very poor support for modularity and separate compilation. To regain this modularity and ooer a larger-scale notion of composition, we propose to leverage a well-known tool: ML-style modules. In this article, we show how to extend the OCaml module system with tierless annotations that specify whether some definitions should be on the server, on the client, or both. In modern ML languages, the module system is a layer separate from the expression language. Our work relies on Eliom for the expression language. Eliom is an ML tierless Web programming language that provides type-safe communication and an efficient execution model. We complement that with a module language that preserves all the desirable properties of Eliom in terms of typing and efficiency, allows separate compilation, integrates well with the vanilla OCaml module language, and supports datatype abstraction.
Type de document :
Pré-publication, Document de travail
2017
Liste complète des métadonnées

https://hal.archives-ouvertes.fr/hal-01485362
Contributeur : Gabriel Radanne <>
Soumis le : mercredi 8 mars 2017 - 16:21:22
Dernière modification le : jeudi 11 janvier 2018 - 06:27:39
Document(s) archivé(s) le : vendredi 9 juin 2017 - 13:49:06

Fichier

main.pdf
Fichiers produits par l'(les) auteur(s)

Licence


Distributed under a Creative Commons Paternité 4.0 International License

Identifiants

  • HAL Id : hal-01485362, version 1

Collections

Citation

Gabriel Radanne, Jérôme Vouillon. Tierless Modules. 2017. 〈hal-01485362〉

Partager

Métriques

Consultations de la notice

221

Téléchargements de fichiers

162