Thu 6 Apr 2017 10:45 - 11:15 at D0.07 - Research Papers 4 Chair(s): Crista Lopes

Since the early days of the Web, web application developers have aspired to develop much of their applications declaratively. However, one aspect of the application, namely its business-logic is constantly left imperative. In this work we present Application Embedding, a novel approach to application development which allows all aspects of an application, including its business-logic, to be programmed declaratively.

We achieve this approach in a two-step process. First, we draw a mapping between Web applications and Domain-Specific Languages (DSLs). Second, we note that out of the two methods for implementing DSLs, namely as internal and external DSLs, most traditional Web applications correspond to external DSLs, while the the technique that corresponds to DSL embedding (implementing internal DSLs) is left mostly unexplored.

By projecting the well-known technique of DSL embedding to web applications, we derive our novel technique – Application Embedding. Application embedding offers a separation of code assets that encourages reuse of imperative code, while keeping all application-specific assets, including those specifying its business-logic, declarative.

As validation, we implemented a simple, though nontrivial web application using the proposed separation of assets. This implementation includes an application-agnostic imperative host application named Fish-Tank, intended to be applicable for a wide variety of such applications, and a declarative definition of the different aspects of the specific application, intended to be loaded on that host.

This novel separation of code assets facilitates a better separation of work, in comparison to traditional methods. By this separation, host application developers can focus mostly on the extra-functional aspects of a web application, namely on improving performance, scalability and availability, while developers of an embedded application can focus on the functional aspects of their application, without worrying about extra-functional concerns. The reusability of the host application can make it cost-effective to put much effort into a better implementation, which can benefit all applications built on top of it.

Thu 6 Apr

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:45 - 12:15
Research Papers 4Research Papers at D0.07
Chair(s): Crista Lopes University of California, Irvine
10:45
30m
Talk
Application Embedding: A Language Approach to Declarative Web Programming
Research Papers
David H. Lorenz Open University and Technion IIT, Boaz Rosenan University of Haifa
Link to publication DOI
11:15
30m
Talk
Profunctor Optics: Modular Data Accessors
Research Papers
Matthew Pickering , Jeremy Gibbons Department of Computer Science, University of Oxford, Nicolas Wu University of Bristol
Link to publication DOI
11:45
30m
Talk
Miscomputation in software: Learning to live with errors
Research Papers
Tomas Petricek Alan Turing Institute
Link to publication DOI