Skip to main content

WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2257))

Abstract

The common gateway interface (CGI) is one of the prevalent methods to provide dynamic contents on the Web. Since it is cumbersome to use in its raw form, there are many libraries that make CGI programming easier.

WASH/CGI is a Haskell library for server-side Web scripting. Its implementation relies on CGI, but its use avoids most of CGI’s drawbacks. It incorporates the concept of a session, provides a typed, compositional approach to constructing interaction elements (forms), and relies on callbacks to specify control flow. From a programmer’s perspective, programming WASH/CGI is like programming a graphical user interface (GUI), where the layout is specified using HTML via a novel monadic interface.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Haskell 98, a non-strict, purely functional language. http://www.haskell.org/definition (1998)

  2. Meijer, E.: Server-side web scripting with Haskell. Journal of Functional Programming 10 (2000) 1–18

    Article  MathSciNet  Google Scholar 

  3. Jones, M. P.: Functional programming with overloading and higher-order polymorphism. In: Advanced Functional Programming. Volume 925 of Lecture Notes in Computer Science. Springer-Verlag (1995) 97–136

    Google Scholar 

  4. Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37 (2000) 67–111

    Article  MATH  MathSciNet  Google Scholar 

  5. Hughes, J. Private communication (2000)

    Google Scholar 

  6. Hanus, M.: High-level server side Web scripting in Curry. In: Practical Aspects of Declarative Languages, Proceedings of the Third International Workshop, PADL’01. Lecture Notes in Computer Science, Las Vegas, NV, USA, Springer-Verlag (2001)

    Google Scholar 

  7. Graunke, P., Krishnamurthi, S., Hoeven, S. V. D., Felleisen, M.: Programming the Web with high-level programming languages. In Sands, D., ed.: Proc. 10th European Symposium on Programming. Lecture Notes in Computer Science, Genova, Italy, Springer-Verlag (2001) 122–136

    Google Scholar 

  8. Queinnec, C.: The influence of browsers on evaluators or, continuations to program Web servers. [25] 23–33

    Google Scholar 

  9. 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, IEEE CS Press (2001)

    Google Scholar 

  10. Sandholm, A., Schwartzbach, M. I.: A type system for dynamic web documents. In Reps, T., ed.: Proc. 27th Annual ACM Symposium on Principles of Programming Languages, Boston, MA, USA, ACM Press (2000) 290–301

    Google Scholar 

  11. Brabrand, C., Møller, A., Sandholm, A., Schwartzbach, M. I.: A runtime system for interactive web services. Journal of Computer Networks (1999)

    Google Scholar 

  12. Ladd, D. A., Ramming, J. C.: Programming the Web: An application-oriented language for hypermedia service programming, World Wide Web Consortium (1995) 567–586

    Google Scholar 

  13. Atkinson, D., Ball, T., Benedikt, M., Bruns, G., Cox, K., Mataga, P., Rehor, K.: Experience with a domain specific language for form-based services. In: Conference on Domain-Specific Languages, Santa Barbara, CA, USENIX (1997)

    Google Scholar 

  14. Levy, M. R.: Web programming in Guide. Software-Practice & Experience 28 (1998) 1581–1603

    Article  Google Scholar 

  15. Carlsson, M., Hallgren, T.: FUDGETS: A graphical interface in a lazy functional language. In Arvind, ed.: Proc. Functional Programming Languages and Computer Architecture 1993, Copenhagen, Denmark, ACM Press, New York (1993) 321–330

    Google Scholar 

  16. Vullinghs, T., Tuijnman, D., Schulte, W.: Lightweight GUIs for functional programming. In Swierstra, D., Hermenegildo, M., eds.: International Symposium on Programming Languages, Implementations, Logics and Programs (PLILP’ 95). Number 982 in Lecture Notes in Computer Science, Utrecht, The Netherlands,Springer-Verlag (1995) 341–356

    Google Scholar 

  17. Finne, S., Peyton Jones, S.: Composing Haggis. In: Proc. 5th Eurographics Workshop on Programming Paradigms in Graphics, Maastricht, NL (1995)

    Google Scholar 

  18. Sage, M.: FranTk-a declarative GUI language for Haskell. [25] 106–117

    Google Scholar 

  19. Thiemann, P.: Modeling HTML in Haskell. In: Practical Aspects of Declarative Languages, Proceedings of the Second International Workshop, PADL’00. Number 1753 in Lecture Notes in Computer Science, Boston, Massachusetts, USA (2000) 263–277

    Google Scholar 

  20. Thiemann, P.: A typed representation for HTML and XML in Haskell. Journal of Functional Programming (2001) To appear.

    Google Scholar 

  21. Peligrí-Llopart, E., Cable, L.: Java Server Pages Specification. http://java.sun.com/products/jsp/index.html (1999)

  22. 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 (2000) 23–33

    Google Scholar 

  23. Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: Conference Record of POPL’ 96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, USA (1996) 295–308

    Google Scholar 

  24. Wadler, P., ed.: International Conference on Functional Programming. In Wadler, P., ed.: Proc. International Conference on Functional Programming 2000, Montreal, Canada, ACM Press, New York (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Thiemann, P. (2002). WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds) Practical Aspects of Declarative Languages. PADL 2002. Lecture Notes in Computer Science, vol 2257. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45587-6_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-45587-6_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43092-6

  • Online ISBN: 978-3-540-45587-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics