Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Apache cocoon project (June 2004), http://cocoon.apache.org/
CGI: Common gateway interface (1999), http://www.w3.org/CGI/
Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., Berners-Lee, T.: Hypertext transfer protocol (June 1999), http://www.faqs.org/rfcs/rfc2616.html
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)
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)
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)
Haskell 98, a non-strict, purely functional language (December 1998), http://www.haskell.org/definition
Hégaret, P.L., Whitmer, R., Wood, L.: W3c document object model (August 2003), http://www.w3.org/DOM/
Thiemann, P.: An embedded domain-specific language for type-safe server-side Web-scripting. ACM Transactions on Internet Technology 5(1), 1–46 (2005)
Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995)
Web authoring system in Haskell (WASH) (March 2001), http://www.informatik.uni-freiburg.de/~thiemann/haskell/WASH
XForms - the next generation of Web forms (May 2003), http://www.w3.org/MarkUp/Forms/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Thiemann, P. (2005). Server-Side Web Programming in WASH. In: Vene, V., Uustalu, T. (eds) Advanced Functional Programming. Lecture Notes in Computer Science, vol 3622. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11546382_8
Download citation
DOI: https://doi.org/10.1007/11546382_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28540-3
Online ISBN: 978-3-540-31872-9
eBook Packages: Computer ScienceComputer Science (R0)