FU Berlin, Fachbereich Mathematik und Informatik, Institut für Informatik
Type-Safe Server-Side Web Scripting
Prof. Dr. Peter
Thiemann, Leiter des Arbeitsbereichs Programmiersprachen, Institut für
Informatik, Fakultät für
Angewandte Wissenschaften, Universität Freiburg
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 that provides 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.
[ home ] [ search ] [ up ] | webmaster@inf.fu-berlin.de |