Tierless Modules - Archive ouverte HAL Access content directly
Preprints, Working Papers, ... Year :

Tierless Modules


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.
Fichier principal
Vignette du fichier
main.pdf (891.82 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01485362 , version 1 (08-03-2017)




  • HAL Id : hal-01485362 , version 1


Gabriel Radanne, Jérôme Vouillon. Tierless Modules. 2017. ⟨hal-01485362⟩
413 View
219 Download


Gmail Facebook Twitter LinkedIn More