Affiliation:
1. Universität Freiburg, Germany
Abstract
WASH/CGI is an embedded domain-specific language for server-side Web scripting. Due to its reliance on the strongly typed, purely functional programming language Haskell as a host language, it is highly flexible and---at the same time---it provides extensive guarantees due to its pervasive use of type information.WASH/CGI can be structured into a number of sublanguages addressing different aspects of the application. The
document sublanguage
provides tools for the generation of parameterized XHTML documents and forms. Its typing guarantees that almost all generated documents are valid XHTML documents. The
session sublanguage
provides a session abstraction with a transparent notion of session state and allows the composition of documents and Web forms to entire interactive scripts. Both are integrated with the
widget sublanguage
which describes the communication (parameter passing) between client and server. It imposes a simple type discipline on the parameters that guarantees that forms posted by the client are always understood by the server. That is, the server never asks for data not submitted by the client and the data submitted by the client has the type requested by the server. In addition, parameters are received in their typed internal representation, not as strings. Finally, the
persistence sublanguage
deals with managing shared state on the server side as well as individual state on the client side. It presents shared state as an abstract data type, where the script can control whether it wants to observe mutations due to concurrently executing scripts. It guarantees that states from different interaction threads cannot be confused.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Networks and Communications
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards a Domain-Specific Language for the Renarration of Web Pages;Proceedings of the 11th Innovations in Software Engineering Conference;2018-02-09
2. Towards a Guaranteed (X)HTML Compliant Dynamic Web Application;Lecture Notes in Business Information Processing;2012
3. JavaGI;ACM Transactions on Programming Languages and Systems;2011-07
4. JavaGI in the battlefield;ACM SIGPLAN Notices;2010-02
5. How to CPS Transform a Monad;Lecture Notes in Computer Science;2009