Skip to main content

The Essence of Form Abstraction

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5356))

Abstract

Abstraction is the cornerstone of high-level programming; HTML forms are the principal medium of web interaction. However, most web programming environments do not support abstraction of form components, leading to a lack of compositionality. Using a semantics based on idioms, we show how to support compositional form construction and give a convenient syntax.

Supported by EPSRC grant number EP/D046769/1.

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. Atkey, R.: Parameterised notions of computation. In: MSFP (2006)

    Google Scholar 

  2. Balat, V.: Ocsigen: typing web interaction with objective caml. In: ML Workshop 2006, pp. 84–94 (2006)

    Google Scholar 

  3. Benton, N., Hughes, J., Moggi, E.: Monads and effects. In: Barthe, G., Dybjer, P., Pinto, L., Saraiva, J. (eds.) APPSEM 2000. LNCS, vol. 2395, pp. 42–122. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  4. Brabrand, C., Møller, A., Schwartzbach, M.I.: Static validation of dynamically generated HTML. In: PASTE, pp. 38–45 (2001)

    Google Scholar 

  5. Christensen, A.S., Møller, A., Schwartzbach, M.I.: Extending Java for high-level web service construction. TOPLAS 25(6), 814–875 (2003)

    Article  Google Scholar 

  6. Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: web programming without tiers. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2006. LNCS, vol. 4709, pp. 266–296. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  7. Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idiom’s guide to formlets. Technical Report EDI-INF-RR-1263, University of Edinburgh (2008)

    Google Scholar 

  8. Eidhof, C.: Formlets in Haskell (2008), http://blog.tupil.com/formlets-in-haskell/

  9. Elsman, M., Larsen, K.F.: Typing XHTML web applications in ML. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 224–238. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  10. Graunke, P.T., Krishnamurthi, S., Van Der Hoeven, S., Felleisen, M.: Programming the web with high-level programming languages. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 122–136. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  11. Hanus, M.: Type-oriented construction of web user interfaces. In: PPDP 2006, pp. 27–38 (2006)

    Google Scholar 

  12. Hanus, M.: Putting declarative programming into the web: Translating Curry to JavaScript. In: PPDP 2007, pp. 155–166 (2007)

    Google Scholar 

  13. Hosoya, H., Pierce, B.C.: XDuce: A statically typed XML processing language. ACM Trans. Internet Techn. 3(2), 117–148 (2003)

    Article  Google Scholar 

  14. Hughes, J.: Generalising monads to arrows. Sci. Comput. Program. 37(1-3), 67–111 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  15. Lift website (March 2008), http://liftweb.net/

  16. Lindley, S.: Many holes in Hindley-Milner. In: ML Workshop 2008 (2008)

    Google Scholar 

  17. Lindley, S., Wadler, P., Yallop, J.: Idioms are oblivious, arrows are meticulous, monads are promiscuous. In: Capretta, V., McBride, C. (eds.) MSFP 2008, Reykjavik, Iceland (2008)

    Google Scholar 

  18. McBride, C.: Idioms, 2005. In: SPLS (June 2005), http://www.macs.hw.ac.uk/~trinder/spls05/McBride.html

  19. McBride, C., Paterson, R.: Applicative programming with effects. Journal of Functional Programming 18(1) (2008)

    Google Scholar 

  20. Moggi, E.: Computational lambda-calculus and monads. In: LICS 1989, pp. 14–23 (1989)

    Google Scholar 

  21. Møller, A., Schwartzbach, M.I.: The design space of type checkers for XML transformation languages. In: Eiter, T., Libkin, L. (eds.) ICDT 2005. LNCS, vol. 3363, pp. 17–36. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  22. PHP Hypertext Preprocessor (March 2008), http://www.php.net/

  23. Plasmeijer, R., Achten, P.: iData for the world wide web: Programming interconnected web forms. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 242–258. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  24. Plasmeijer, R., Achten, P., Koopman, P.: iTasks: executable specifications of interactive work flow systems for the web. SIGPLAN Not. 42(9), 141–152 (2007)

    Article  Google Scholar 

  25. Ruby on Rails website (March 2008), http://www.rubyonrails.org/

  26. Strugnell, S.: Creating linksCollab: an assessment of Links as a web development language. B.Sc thesis, University of Edinburgh (2008), http://groups.inf.ed.ac.uk/links/papers/undergrads/steve.pdf

  27. Thiemann, P.: A typed representation for HTML and XML documents in Haskell. J. Funct. Program. 12(4&5), 435–468 (2002)

    MathSciNet  MATH  Google Scholar 

  28. Thiemann, P.: An embedded domain-specific language for type-safe server-side web scripting. ACM Trans. Inter. Tech. 5(1), 1–46 (2005)

    Article  Google Scholar 

  29. Wadler, P.: Monads for functional programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  30. Wadler, P., Thiemann, P.: The marriage of effects and monads. ACM Trans. Comput. Log. 4(1), 1–32 (2003)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cooper, E., Lindley, S., Wadler, P., Yallop, J. (2008). The Essence of Form Abstraction. In: Ramalingam, G. (eds) Programming Languages and Systems. APLAS 2008. Lecture Notes in Computer Science, vol 5356. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89330-1_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89330-1_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89329-5

  • Online ISBN: 978-3-540-89330-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics