HAL will be down for maintenance from Friday, June 10 at 4pm through Monday, June 13 at 9am. More information
Skip to Main content Skip to Navigation
Preprints, Working Papers, ...

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.
Document type :
Preprints, Working Papers, ...
Complete list of metadata

Contributor : Gabriel Radanne Connect in order to contact the contributor
Submitted on : Wednesday, March 8, 2017 - 4:21:22 PM
Last modification on : Monday, November 16, 2020 - 12:28:02 PM
Long-term archiving on: : Friday, June 9, 2017 - 1:49:06 PM


Files produced by the author(s)


Distributed under a Creative Commons Attribution 4.0 International License


  • HAL Id : hal-01485362, version 1


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



Record views


Files downloads