WASH is a Haskell library for server-side web scripting. It presents a session-based abstraction to the programmer which is implemented through a CGI program running a replay monad.

The present paper introduces a retargetted implementation of the WASH run-time system inside a web server. The run-time system supports uploading of WASH programs in source format to the running web server as well as a more efficient, multi-threaded execution model that eliminates the inefficient replay. In recapitulating the replay monad, we further present new operators that improve the efficiency of its log-based implementation.


Execution Model Table Entry Callback Action Interaction Step Form Submission 
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.
    Brabrand, C., Můller, A., Schwartzbach, M.: The <bigwig> Project. ACM Transactions on Internet Technology 2(2), 79–114 (2002)CrossRefGoogle Scholar
  2. 2.
    Broberg, N.: Haskell server pages through dynamic loading. In: Leijen, D. (ed.) Proceedings of the 2005 ACM SIGPLAN Haskell Workshop, Tallinn, Estland, September 2005, pp. 39–48 (2005)Google Scholar
  3. 3.
    Christensen, A.S., Můller, A., Schwartzbach, M.I.: Extending Java for high-level Web service construction. ACM Transactions on Programming Languages and Systems 25(6), 814–875 (2003)CrossRefGoogle Scholar
  4. 4.
    Elsman, M., Hallenberg, N.: Web programming with SMLserver. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol. 2562, pp. 74–91. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Felleisen, M.: Developing interactive web programs. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 100–128. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    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
  7. 7.
    Ji, P., Ge, Z., Kurose, J., Towsley, D.: A comparison of hard-state and soft-state signaling protocols. In: Proceedings of ACM SIGCOMM 2003, Karlsruhe, Germany (August 2003)Google Scholar
  8. 8.
    Marlow, S.: Developing a high-performance Web server in Concurrent Haskell. Journal of Functional Programming 12(4&5), 359–374 (2002)MathSciNetzbMATHGoogle Scholar
  9. 9.
    Matthews, J., Findler, R.B., Graunke, P., Krishnamurthi, S., Felleisen, M.: Automatically restructuring programs for the web. Automated Software Engineering 11(4), 337–364 (2004)CrossRefGoogle Scholar
  10. 10.
    Meijer, E., van Velzen, D.: Haskell Server Pages, functional programming and the battle for the middle tier. In: Draft proceedings of the 2000 ACM SIGPLAN Haskell Workshop, Montreal, Canada, September 2000, pp. 23–33 (2000)Google Scholar
  11. 11.
    Pang, A., Stewart, D., Seefried, S., Chakravarty, M.M.T.: Plugging Haskell in. In: Nilsson, H. (ed.) Proceedings of the 2004 ACM SIGPLAN Haskell Workshop, Snowbird, Utah, USA, September 2004, pp. 10–21 (2004)Google Scholar
  12. 12.
    Jones, S.P., Gordon, A., Finne, S.: Concurrent Haskell. In: Proceedings of the 1996 ACM SIGPLAN Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, USA, pp. 295–308. ACM Press, New York (1996)Google Scholar
  13. 13.
    Thiemann, P.: An embedded domain-specific language for type-safe server-side Web-scripting. ACM Transactions on Internet Technology 5(1), 1–46 (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Peter Thiemann
    • 1
  1. 1.Universität FreiburgFreiburgGermany

Personalised recommendations