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
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
Atkey, R.: Parameterised notions of computation. In: MSFP (2006)
Balat, V.: Ocsigen: typing web interaction with objective caml. In: ML Workshop 2006, pp. 84–94 (2006)
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)
Brabrand, C., Møller, A., Schwartzbach, M.I.: Static validation of dynamically generated HTML. In: PASTE, pp. 38–45 (2001)
Christensen, A.S., Møller, A., Schwartzbach, M.I.: Extending Java for high-level web service construction. TOPLAS 25(6), 814–875 (2003)
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)
Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idiom’s guide to formlets. Technical Report EDI-INF-RR-1263, University of Edinburgh (2008)
Eidhof, C.: Formlets in Haskell (2008), http://blog.tupil.com/formlets-in-haskell/
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)
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)
Hanus, M.: Type-oriented construction of web user interfaces. In: PPDP 2006, pp. 27–38 (2006)
Hanus, M.: Putting declarative programming into the web: Translating Curry to JavaScript. In: PPDP 2007, pp. 155–166 (2007)
Hosoya, H., Pierce, B.C.: XDuce: A statically typed XML processing language. ACM Trans. Internet Techn. 3(2), 117–148 (2003)
Hughes, J.: Generalising monads to arrows. Sci. Comput. Program. 37(1-3), 67–111 (2000)
Lift website (March 2008), http://liftweb.net/
Lindley, S.: Many holes in Hindley-Milner. In: ML Workshop 2008 (2008)
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)
McBride, C.: Idioms, 2005. In: SPLS (June 2005), http://www.macs.hw.ac.uk/~trinder/spls05/McBride.html
McBride, C., Paterson, R.: Applicative programming with effects. Journal of Functional Programming 18(1) (2008)
Moggi, E.: Computational lambda-calculus and monads. In: LICS 1989, pp. 14–23 (1989)
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)
PHP Hypertext Preprocessor (March 2008), http://www.php.net/
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)
Plasmeijer, R., Achten, P., Koopman, P.: iTasks: executable specifications of interactive work flow systems for the web. SIGPLAN Not. 42(9), 141–152 (2007)
Ruby on Rails website (March 2008), http://www.rubyonrails.org/
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
Thiemann, P.: A typed representation for HTML and XML documents in Haskell. J. Funct. Program. 12(4&5), 435–468 (2002)
Thiemann, P.: An embedded domain-specific language for type-safe server-side web scripting. ACM Trans. Inter. Tech. 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)
Wadler, P., Thiemann, P.: The marriage of effects and monads. ACM Trans. Comput. Log. 4(1), 1–32 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)