Defining Multi-user Web Applications with iTasks

  • Rinus Plasmeijer
  • Peter Achten
  • Bas Lijnse
  • Steffen Michels
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7241)


In these lecture notes we explain how multi-user web applications can be developed in a programming style that favors tasks as main building block for the construction of such systems. A task is work that has to be performed by human-beings and computers working together on the internet. This concept has been implemented in the iTask framework as a monadic combinator library that is embedded in the pure and lazy functional programming language Clean. These lecture notes consist of many examples and exercises, and also discusses the foundation of both the iTask system and task-oriented programming.


Shared Data Type Task Functional Programming Parallel Task Shared State 
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.
    van der Aalst, W., ter Hofstede, A., Kiepuszewski, B., Barros, A.: Workflow patterns. Technical Report FIT-TR-2002-02, Queensland University of Technology (2002)Google Scholar
  2. 2.
    Barendsen, E., Smetsers, S.: Conventional and Uniqueness Typing in Graph Rewrite Systems (Extended Abstract). In: Shyamasundar, R.K. (ed.) FSTTCS 1993. LNCS, vol. 761, pp. 41–51. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: An idiom’s guide to formlets. Technical report, The University of Edinburgh, UK (2007),
  5. 5.
    Domoszlai, L., Bruël, E., Jansen, J.M.: Implementing a non-strict purely functional language in JavaScript. Acta Universitatis Sapientiae 3, 76–98 (2011)zbMATHGoogle Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    Elsman, M., Hallenberg, N.: Web Programming with SMLserver. In: Dahl, V. (ed.) PADL 2003. LNCS, vol. 2562, pp. 74–91. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  8. 8.
    Hanus, M.: High-Level Server Side Web Scripting in Curry. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 76–92. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  9. 9.
    Jansen, J.M., Koopman, P., Plasmeijer, R.: Efficient interpretation by transforming data types and patterns to functions. In: Nilsson, H. (ed.) Proceedings of the 7th Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, April 19-21, pp. 157–172 (2006) ISBN 978-1-84150-188-8Google Scholar
  10. 10.
    Jansen, J.M., Plasmeijer, R., Koopman, P.: iEditors: Extending iTask with Interactive Plug-ins. In: Scholz, S.-B., Chitil, O. (eds.) IFL 2008. LNCS, vol. 5836, pp. 192–211. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  11. 11.
    Koopman, P., Plasmeijer, R., Achten, P.: An Executable and Testable Semantics for iTasks. In: Scholz, S.-B., Chitil, O. (eds.) IFL 2008. LNCS, vol. 5836, pp. 212–232. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  12. 12.
    Lijnse, B., Jansen, J.M., Nanne, R., Plasmeijer, R.: Capturing the Netherlands coast guard’s sar workflow with itasks. In: Mendonca, D., Dugdale, J. (eds.) Proceedings of the 8th International Conference on Information Systems for Crisis Response and Management, ISCRAM 2011, Lisbon, Portugal. ISCRAM Association (May 2011)Google Scholar
  13. 13.
    Loitsch, F., Serrano, M.: Hop client-side compilation. In: Proceedings of the 7th Symposium on Trends in Functional Programming, TFP 2007, New York, NY, USA, April 2-4, pp. 141–158. Interact (2007)Google Scholar
  14. 14.
    Meijer, E.: Server side web scripting in Haskell. Journal of Functional Programming 10(1), 1–18 (2000)CrossRefGoogle Scholar
  15. 15.
    Michels, S., Plasmeijer, R., Achten, P.: iTask as a New Paradigm for Building GUI Applications. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 153–168. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  16. 16.
    Plasmeijer, R., Achten, P., Koopman, P.: iTasks: executable specifications of interactive work flow systems for the web. In: Hinze, R., Ramsey, N. (eds.) Proceedings of the International Conference on Functional Programming, ICFP 2007, Freiburg, Germany, pp. 141–152. ACM Press (2007)Google Scholar
  17. 17.
    Plasmeijer, R., Achten, P., Koopman, P., Lijnse, B., van Noort, T., van Groningen, J.: iTasks for a change - Type-safe run-time change in dynamically evolving workflows. In: Khoo, S.-C., Siek, J. (eds.) Proceedings of the Workshop on Partial Evaluation and Program Manipulation, PEPM 2011, Austin, TX, USA, pp. 151–160. ACM Press (2011)Google Scholar
  18. 18.
    Plasmeijer, R., Jansen, J.M., Koopman, P., Achten, P.: Declarative Ajax and client side evaluation of workflows using iTasks. In: Proceedings of the 10th International Conference on Principles and Practice of Declarative Programming, PPDP 2008, Valencia, Spain, July 15-17, pp. 56–66 (2008)Google Scholar
  19. 19.
    Plasmeijer, R., Lijnse, B., Achten, P., Michels, S.: Getting a grip on tasks that coordinate tasks. In: Proceedings Workshop on Language Descriptions, Tools, and Applications (LDTA), Saarbrücken, Germany, March 26-27 (2011)Google Scholar
  20. 20.
    Serrano, M., Gallesio, E., Loitsch, F.: Hop, a language for programming the web 2.0. In: Proceedings of the 11th International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, Portland, Oregon, USA, October 22-26, pp. 975–985 (2006)Google Scholar
  21. 21.
    Thiemann, P.: WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 192–208. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  22. 22.
    Wadler, P.: Comprehending monads. In: Proceedings of the Conference on Lisp and Functional Programming, LFP 1990, Nice, France, pp. 61–77 (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Rinus Plasmeijer
    • 1
  • Peter Achten
    • 1
  • Bas Lijnse
    • 1
  • Steffen Michels
    • 1
  1. 1.Institute for Computing and Information SciencesRadboud University NijmegenNijmegenThe Netherlands

Personalised recommendations