[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1291151.1291174acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

iTasks: executable specifications of interactive work flow systems for the web

Published: 01 October 2007 Publication History

Abstract

In this paper we introduce the iTask system: a set of combinators to specify work flows in a pure functional language at a very high level of abstraction. Work flow systems are automated systems in which tasks are coordinated that have to be executed by humans and computers. The combinators that we propose support work flow patterns commonly found in commercial work flow systems. Compared with most of these commercial systems, the iTask system offers several advantages: tasks are statically typed, tasks can be higher order, the combinators are fully compositional, dynamic and recursive work flows can be specified, and last but not least, the specification is used to generate an executable web-based multi-user work flow application. With the iTask system, useful work flows can be defined which cannot be expressed in other systems: work can be interrupted and subsequently directed to other workers for further processing.
The implementation is special as well. It is based on the Clean iData toolkit which makes it possible to create fully dynamic, interactive, thin client web applications. Thanks to the generic programming techniques used in the iData toolkit, the programming effort is reduced significantly: state handling, form rendering, user interaction, and storage management is handled automatically. The iTask system allows a task to be regarded as a special kind of persistent redex being reduced by the application user via task completion. The combinators control the order in which these redexes are made available to the application user. The system rewrites the persistent task redexes in a similar way as functions are rewritten in lazy functional languages.

References

[1]
Artem Alimarine. Generic Functional Programming - Conceptual Design, Implementation and Applications. PhD thesis, University of Nijmegen, The Netherlands, 2005. ISBN 3-540-67658-9.
[2]
David Atkins, Thomas Ball, Michael Benedikt, Glenn Bruns, Kenneth Cox, Peter Mataga, and Kenneth Rehor. Experience with a Domain Specific Language for Form-based Services. In Usenix Conference on Domain Specific Languages, October 1997.
[3]
Claus Brabrand, Anders Møller, Mikkel Ricky, and Michael I. Schwartzbach. Powerforms: Declarative client-side form field validation. World Wide Web Journal, 3(4):205--314, 2000.
[4]
Claus Brabrand, Anders Møller, and Michael I. Schwartzbach. The<bigwig> Project. In ACM Transactions on Internet Technology (TOIT), 2002.
[5]
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Proceedings of the 5th International Symposium on Formal Methods for Components and Objects (FMCO'06), CWI, Amsterdam, The Netherlands, 7-10 November 2006. Springer-Verlag. to appear.
[6]
Stéphane Ducasse, Adrian Lienhard, and Lukas Renggli. Seaside - A Multiple Control Flow Web Application Framework. In St&3233;phane Ducasse, editor, Proceedings ESUG 2004 International Conference - Research Track, volume Technical Report IAM-04-008, pages 231--254. Institut für Informatik und Angewandte Mathematik, University of Bern, Switzerland, November 7 2004.
[7]
Martin Elsman and Niels Hallenberg. Web programming with SML server. In Fifth International Symposium on Practical Aspects of Declarative Languages (PADL'03). Springer-Verlag, January 2003.
[8]
Martin Elsman and Ken Friis Larsen. Typing XHTML Web applications in ML. In International Symposium on Practical Aspects of Declarative Languages (PADL'04), volume 3057 of LNCS, pages 224--238. Springer-Verlag, June 2004.
[9]
Paul Graunke, Shriram Krishnamurthi, Robert Bruce Findler, and Matthias Felleisen. Automatically Restructuring Programs for the Web. In M. Feather and M. Goedicke, editors, Proceedings 16th IEEE International Conference on Automated Software Engineering (ASE'01). IEEE CS Press, September 2001.
[10]
M. Hanus. High-Level Server Side Web Scripting in Curry. In Proc. of the Third International Symposium on Practical Aspects of Declarative Languages (PADL'01), pages 76--92. Springer LNCS 1990, 2001.
[11]
Ralf Hinze. A new approach to generic functional programming. In The 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 119--132. Boston, Massachusetts, January 2000. citeseer.nj.nec.com/hinze99new.html.
[12]
John Hughes. Generalising Monads to Arrows. Science of Computer Programming, 37:67--111, May 2000.
[13]
Jan Martin Jansen, Pieter Koopman, and Rinus Plasmeijer. Efficient Interpretation by Transforming Data Types and Patterns to Functions. In H. Nilsson, editor, Proceedings Seventh Symposium on Trends in Functional Programming, TFP 2006, pages 157--172, Nottingham, UK, The University of Nottingham, April 19-21 2006.
[14]
Erik Meijer. Server Side Web Scripting in Haskell. Journal of Functional Programming, 10(1):1--18, 2000.
[15]
Rinus Plasmeijer and Peter Achten. The Implementation of iData - A Case Study in Generic Programming. In A. Butterfield, editor, Proceedings Implementation and Application of Functional Languages - Revised Selected Papers, 17th International Workshop, IFL05, LNCS 4015, Department of Computer Science, Trinity College, University of Dublin, September 19-21 2006a.
[16]
Rinus Plasmeijer and Peter Achten. iData For The World Wide Web -Programming Interconnected Web Forms. In Proceedings Eighth International Symposium on Functional and Logic Programming (FLOPS 2006), volume 3945 of LNCS, Fuji Susono, Japan, Apr 24-26 2006b. Springer-Verlag.
[17]
Rinus Plasmeijer and Peter Achten. A Conference Management System based on iData. In Z. Horvath and V. Zsok, editors, Proceedings of the 18th International Symposium on Implementation and Application of Functional Languages, IFL'06, Budapest, Hungary, Eotvos Lorand University, Faculty of Informatics, Department of Programming Languages and Compilers, Sept 4-6 2006c. To appear in Springer LNCS.
[18]
Christian Queinnec. The influence of browsers on evaluators or, continuations to program web servers. In Proceedings Fifth International Conference on Functional Programming (ICFP'00), September 2000.
[19]
Manuel Serrano, Erick Gallesio, and Florian Loitsch. Hop, a language for programming the web 2.0. In Proceedings ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2006), pages 975--985, Portland, Oregon, USA, October 22-26 2006.
[20]
Peter Thiemann. WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms. In S. Krishnamurthi and C. R. Ramakrishnan, editors, Practical Aspects of Declarative Languages: 4th International Symposium, PADL 2002, volume 2257 of LNCS, pages 192--208, Portland, OR, USA, January 19-20 2002. Springer-Verlag.
[21]
W. M. P. van der Aalst, A. H. M. ter Hofstede, B. Kiepuszewski, and A. P. Barros. Workflow patterns. QUT Technical report, FIT-TR-2002-02, Queensland University of Technology, Brisbane, 2002.

Cited By

View all
  • (2025)Compositional Views in Compositional Images – Category: Research –Trends in Functional Programming10.1007/978-3-031-74558-4_4(75-91)Online publication date: 10-Jan-2025
  • (2023)Dynamic TopHat: Start and Stop Tasks at RuntimeProceedings of the 35th Symposium on Implementation and Application of Functional Languages10.1145/3652561.3652574(1-13)Online publication date: 29-Aug-2023
  • (2023)Could Tierless Languages Reduce IoT Development Grief?ACM Transactions on Internet of Things10.1145/35729014:1(1-35)Online publication date: 23-Feb-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
October 2007
346 pages
ISBN:9781595938152
DOI:10.1145/1291151
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 42, Issue 9
    Proceedings of the ICFP '07 conference
    September 2007
    331 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1291220
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. clean
  2. iData
  3. iTask

Qualifiers

  • Article

Conference

ICFP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Compositional Views in Compositional Images – Category: Research –Trends in Functional Programming10.1007/978-3-031-74558-4_4(75-91)Online publication date: 10-Jan-2025
  • (2023)Dynamic TopHat: Start and Stop Tasks at RuntimeProceedings of the 35th Symposium on Implementation and Application of Functional Languages10.1145/3652561.3652574(1-13)Online publication date: 29-Aug-2023
  • (2023)Could Tierless Languages Reduce IoT Development Grief?ACM Transactions on Internet of Things10.1145/35729014:1(1-35)Online publication date: 23-Feb-2023
  • (2019)Lazy interworking of compiled and interpreted code for sandboxing and distributed systemsProceedings of the 31st Symposium on Implementation and Application of Functional Languages10.1145/3412932.3412941(1-12)Online publication date: 25-Sep-2019
  • (2019)Type-Safe Functions and Tasks in a Shallow Embedded DSL for MicroprocessorsCentral European Functional Programming School10.1007/978-3-030-28346-9_8(283-340)Online publication date: 14-Aug-2019
  • (2018)A Task-Based DSL for MicrocomputersProceedings of the Real World Domain Specific Languages Workshop 201810.1145/3183895.3183902(1-11)Online publication date: 24-Feb-2018
  • (2018)A Mission-Driven C2 Framework for Enabling Heterogeneous CollaborationNL ARMS Netherlands Annual Review of Military Studies 201810.1007/978-94-6265-246-0_6(107-130)Online publication date: 13-Jul-2018
  • (2018)Maintaining Separation of Concerns Through Task Oriented Software DevelopmentTrends in Functional Programming10.1007/978-3-319-89719-6_2(19-38)Online publication date: 19-Apr-2018
  • (2017)A Distributed Dynamic Architecture for Task Oriented ProgrammingProceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages10.1145/3205368.3205375(1-12)Online publication date: 30-Aug-2017
  • (2016)Towards the Layout of ThingsProceedings of the 28th Symposium on the Implementation and Application of Functional Programming Languages10.1145/3064899.3064905(1-13)Online publication date: 31-Aug-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media