Eliom: A Core ML Language for Tierless Web Programming

  • Gabriel RadanneEmail author
  • Jérôme Vouillon
  • Vincent Balat
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10017)


Eliom is a dialect of OCaml for Web programming in which server and client pieces of code can be mixed in the same file using syntactic annotations. This allows to build a whole application as a single distributed program, in which it is possible to define in a composable way reusable widgets with both server and client behaviors. Our language also enables simple and type-safe communication. Eliom matches the specificities of the Web by allowing the programmer to interleave client and server code while maintaining efficient one-way server-to-client communication. The Eliom language is both sufficiently small to be implemented on top of an existing language and sufficiently powerful to allow expressing many idioms of Web programming.

In this paper, we present a formalization of the core language of Eliom. We provide a type system, the execution model and a compilation scheme.


Web Client-server OCaml ML Eliom Functional 


  1. 1.
    Balat, V.: Client-server web applications widgets. In: WWW 2013 Dev Track (2013)Google Scholar
  2. 2.
    Balat, V.: Rethinking traditional web interaction: theory and implementation. Int. J. Adv. Internet Technol. 63–74 (2014)Google Scholar
  3. 3.
    Balat, V., Chambart, P., Henry, G.: Client-server web applications with Ocsigen. In: WWW 2012 Dev Track, p. 59. Lyon, France, April 2012Google Scholar
  4. 4.
    Balat, V., Vouillon, J., Yakobowski, B.: Experience report: Ocsigen, a web programming framework. In: ICFP, pp. 311–316. ACM (2009)Google Scholar
  5. 5.
  6. 6.
    Boudol, G., Luo, Z., Rezk, T., Serrano, M.: Reasoning about web applications: an operational semantics for HOP. Trans. Program. Lang. Syst. 34(2), 10 (2012)Google Scholar
  7. 7.
    Chlipala, A.: An optimizing compiler for a purely functional web-application language. In: ICFP (2015)Google Scholar
  8. 8.
    Chlipala, A.: Ur/Web: a simple model for programming the web. In: POPL (2015)Google Scholar
  9. 9.
    Chong, S., Liu, J., Myers, A.C., Qi, X., Vikram, K., Zheng, L., Zheng, X.: Secure web applications via automatic partitioning. In: SOSP 2007 (2007)Google Scholar
  10. 10.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: web programming without tiers. In: Boer, F.S., Bonsangue, M.M., Graf, S., Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 266–296. Springer, Heidelberg (2007). doi: 10.1007/978-3-540-74792-5_12 CrossRefGoogle Scholar
  11. 11.
    Ekblad, A., Claessen, K.: A seamless, client-centric programming model for type safe web applications. In: SIGPLAN Symposium on Haskell, Haskell 2014 (2014)Google Scholar
  12. 12.
    Eliom web site.
  13. 13.
    New York University Gencore.
  14. 14.
    Kiselyov, O.: The design and implementation of BER MetaOCaml - system description. In: FLOPS (2014)Google Scholar
  15. 15.
  16. 16.
  17. 17.
    Opa web site.
  18. 18.
    Philips, L., De Roover, C., Van Cutsem, T., De Meuter, W.: Towards tierless web development without tierless languages. In: Onward! 2014 (2014)Google Scholar
  19. 19.
  20. 20.
    Scherer, G., Vouillon, J.: Macaque : Interrogation sûre et flexible de base de données depuis OCaml. In: 21ème journées francophones des langages applicatifs (2010)Google Scholar
  21. 21.
    Serrano, M., Queinnec, C.: A multi-tier semantics for Hop. Higher-Order Symbolic Comput. 23(4), 409–431 (2010)CrossRefzbMATHGoogle Scholar
  22. 22.
  23. 23.
    Vouillon, J.: Lwt: a cooperative thread library. In: ACM Workshop on ML (2008)Google Scholar
  24. 24.
    Vouillon, J., Balat, V.: From bytecode to JavaScript: the Js_of_ocaml compiler. Softw. Pract. Experience 44(8), 951–972 (2014)CrossRefGoogle Scholar
  25. 25.
    White, L., Bour, F., Yallop, J.: Modular implicits. In: ML workshop (2014)Google Scholar
  26. 26.
    Wright, A.K., Felleisen, M.: A syntactic approach to type soundness. Inf. Comput. 115(1), 38–94 (1994)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Gabriel Radanne
    • 1
    Email author
  • Jérôme Vouillon
    • 2
  • Vincent Balat
    • 2
  1. 1.Univ Paris Diderot, Sorbonne Paris Cité, IRIF UMR 8243 CNRSParisFrance
  2. 2.CNRS, IRIF UMR 8243, Univ Paris Diderot, Sorbonne Paris Cité, BeSportParisFrance

Personalised recommendations