Server-Side Web Programming in WASH

  • Peter Thiemann
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3622)


WASH makes server-side Web programming as easy as programming a stand-alone application with an XHTML-based GUI. Starting from an interaction graph model of the application where nodes model web pages and edges correspond to form submissions, each node is implemented by a WASH function and the edges correspond to function invocation. Nodes can be decomposed further into “pagelets”, which are XHTML fragments bundled with associated logic.

We give an introduction to the concepts of WASH programming with this methodology and advocate the design of interactive web functionality in terms of such pagelets. The two components of a pagelet may be specified monolithically or in separation. Pagelets may also be composed up to an entire WASH page. The development of a web-based logging application serves as a running example.


Attribute Node Callback Function Common Gateway Interface Document Object Model Document Node 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apache cocoon project (June 2004),
  2. 2.
    CGI: Common gateway interface (1999),
  3. 3.
    Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., Berners-Lee, T.: Hypertext transfer protocol (June 1999),
  4. 4.
    Graunke, P., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Automatically restructuring programs for the Web. In: Proceedings of ASE-2001: The 16th IEEE International Conference on Automated Software Engineering, San Diego, USA, November 2001, pp. 211–222. IEEE CS Press, Los Alamitos (2001)CrossRefGoogle Scholar
  5. 5.
    Graunke, P.T., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Modeling Web interactions. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 238–252. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Graunke, P.T., Krishnamurthi, S.: Advanced control flows for flexible graphical user interfaces: or, growing GUIs on trees or, bookmarking GUIs. In: Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), May 19-25, pp. 277–290. ACM Press, New York (2002)CrossRefGoogle Scholar
  7. 7.
    Haskell 98, a non-strict, purely functional language (December 1998),
  8. 8.
    Hégaret, P.L., Whitmer, R., Wood, L.: W3c document object model (August 2003),
  9. 9.
    Thiemann, P.: An embedded domain-specific language for type-safe server-side Web-scripting. ACM Transactions on Internet Technology 5(1), 1–46 (2005)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995)Google Scholar
  11. 11.
    Web authoring system in Haskell (WASH) (March 2001),
  12. 12.
    XForms - the next generation of Web forms (May 2003),

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Peter Thiemann
    • 1
  1. 1.Institut für InformatikUniversität FreiburgFreiburgGermany

Personalised recommendations