Authors: Gabriel Radanne and Jérôme Vouillon
Keywords: Web, client/server, OCaml, ML, Eliom, functional, module, separate compilation
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 offer a larger-scale notion of com-, position, we propose to leverage a well-known tool: ML-style mod-, ules. In modern ML languages, the module system is a layer separate, from the expression language., Eliom is an extension of OCaml for tierless Web programming, which provides type-safe communication and an efficient execution, model. In this article, we present how the Eliom module system, combines the flexibility of tierless Web programming languages, with a powerful module systems, thus providing good support for, abstraction, modularity and separate compilation. We also show, that we can provide all these advantages while providing seamless, integration with OCaml and its ecosystem.
Authors: Arthur Charguéraud, Alan Schmitt and Thomas Wood
FAUST Domain Specific Audio DSP language compiled to WebAssembly
Authors: Stéphane Letz, Yann Orlarey and Dominique Fober
Keywords: Signal processing, Domain Specific Language, audio, Faust, DSP, compilation, WebAssembly, WebAudio
This paper demonstrates how FAUST, a functional programming language for sound synthesis and audio processing, can now be used to develop efficient audio nodes for the Web. After a brief introduction of the language, the generation of WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive benchmarks to compare the performances of native and WebAssembly versions of the same set of DSP have be done and will be commented.
Language-integrated queries: a BOLDR approach
Authors: Véronique Benzaken, Giuseppe Castagna, Laurent Daynes, Julien Lopez, Kim Nguyen and Romain Vernoux
Keywords: databases, language runtimes, language integrated queries, dynamic languages
We present BOLDR, a modular framework that enables the evaluation in, databases of queries containing application logic and, in particular,, user-defined functions. BOLDR also allows the nesting of queries for different, databases of possibly different data models. The framework detects the, boundaries of queries present in an application, translates them into an, intermediate representation together with the relevant language environment,, rewrites them in order to avoid query avalanches and to make the most out of, database optimizations, and converts the results back to the application. We, also present experiments showing that the techniques we implemented are, applicable to real-world database applications, both in terms of successfully, handling different sorts of language-integrated queries, and in terms of, better performance.
PixieDust: Declarative Incremental User Interface Rendering through Static Dependency Tracking
Authors: Nick ten Veen, Daco Harkes and Eelco Visser
Keywords: User Interface, Incremental Computing, Reactive Programming
Modern web applications are interactive., Reactive programming languages and libraries are the state-of-the-art approach for declaratively specifying these interactive applications., However, programs written with these approaches contain error-prone boilerplate code for efficiency reasons., , In this paper we present PixieDust, a declarative user-interface language for browser-based applications., PixieDust uses static dependency analysis to incrementally update a browser-DOM at runtime, without boilerplate code., We demonstrate that applications in PixieDust contain less boilerplate code than state-of-the-art approaches, while achieving on-par performance.
A Better Facet of Dynamic Information Flow Control
Authors: Minh Ngo, Nataliia Bielova, Cormac Flanagan, Tamara Rezk, Alejandro Russo and Thomas Schmitz
Keywords: Multiple Facets, Dynamic Information Flow Control, Non-Interference, Secure Multi-Execution
A Formal Semantics of the Core DOM in Isabelle/HOL
Authors: Achim D. Brucker and Michael Herzberg
Keywords: Document Object Model, DOM, Formal Semantics, Standard Conformance Testing, Isabelle/HOL