Tierless Modules - Archive ouverte HAL Accéder directement au contenu
Pré-Publication, Document De Travail Année : 2017

Tierless Modules

Résumé

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
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

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

Licence

Paternité

Identifiants

  • HAL Id : hal-01485362 , version 1

Citer

Gabriel Radanne, Jérôme Vouillon. Tierless Modules. 2017. ⟨hal-01485362⟩
424 Consultations
227 Téléchargements

Partager

Gmail Facebook X LinkedIn More