Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
80 tokens/sec
GPT-4o
59 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
7 tokens/sec
GPT-4.1 Pro
50 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Eliom: A Language for Modular Tierless Web Programming (1901.11411v1)

Published 31 Jan 2019 in cs.PL

Abstract: Tierless Web programming languages allow programmers to combine client-side and server-side programming in a single program. Programmers can then define components with both client and server parts and get flexible, efficient and typesafe client-server communications. However, the expressive client-server features found in most tierless languages are not necessarily compatible with functionalities found in many mainstream languages. In particular, we would like to benefit from type safety, an efficient execution, static compilation, modularity and separate compilation. In this paper, we propose Eliom, an industrial-strength tierless functional Web programming language which extends OCaml with support for rich client/server interactions. It allows to build whole applications as a single distributed program, in which it is possible to define modular tierless libraries with both server and client behaviors and combine them effortlessly. Eliom is the only language that combines type-safe and efficient client/server communications with a static compilation model that supports separate compilation and modularity. It also supports excellent integration with OCaml, allowing to transparently leverage its ecosystem. To achieve all these features, Eliom borrows ideas not only from distributed programming languages, but also from meta-programming and modern module systems. We present the design of Eliom, how it can be used in practice and its formalization; including its type system, semantics and compilation scheme. We show that this compilation scheme preserves typing and semantics, and that it supports separate compilation.

User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (3)
  1. Gabriel Radanne (5 papers)
  2. Jérôme Vouillon (1 paper)
  3. Vincent Balat (1 paper)
Citations (2)