Tonic: An Infrastructure to Graphically Represent the Definition and Behaviour of Tasks

  • Jurriën StutterheimEmail author
  • Rinus Plasmeijer
  • Peter Achten
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8843)


In Task Oriented Programming (TOP), tasks, as performed by both humans and computers, are the core concept. TOP is implemented by the iTask system (iTasks) as a shallowly embedded Domain Specific Language (DSL) in the functional programming language Clean. iTasks is used in industry for rapid prototyping in complex sociotechnical domains. However, for non-technical stakeholders, an iTask specification is too difficult to understand. Stakeholders like to communicate their ideas informally, using drawings and natural language, while TOP programmers model tasks in Clean. We propose a way to eliminate this communication gap by translating a textual iTasks specification into a graphical one, called a blueprint, which should be understandable by non-technical stakeholders. Blueprints abstract from Clean language details as much as possible, yet contain enough information to be understandable independently. Furthermore, we show how blueprints are instantiated at runtime, resulting in an animated trace, showing how end-users progress with which tasks. The Clean compiler has been adjusted to generate blueprints, as well as inject wrapper code that relates run-time information to the compile time specification. A Tonic viewer application, written in iTasks, uses this wrapper code to visualize the traces.


Domain Expert Task Function Functional Programming Task Structure Task Application 
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.
    Plasmeijer, R., Lijnse, B., Michels, S., Achten, P., Koopman, P.: Task-oriented programming in a pure functional language. In: Proceedings of the 2012 ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, PPDP 2012, Leuven, Belgium, pp. 195–206. ACM, September 2012Google Scholar
  2. 2.
    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: PEPM 2011: Proceedings Workshop on Partial Evaluation and Program Manipulation, Austin, TX, USA, pp. 151–160. ACM, New York (2011)Google Scholar
  3. 3.
    Plasmeijer, R., van Eekelen, M.: Clean language report (version 2.1) (2002).
  4. 4.
    Jansson, P., Jeuring, J.: PolyP — a polytypic programming language extension. In: Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 470–482. ACM Press (1997)Google Scholar
  5. 5.
    Alimarine, A., Plasmeijer, R.: A generic programming extension for clean. In: Arts, T., Mohnen, M. (eds.) IFL 2001. LNCS, vol. 2312, pp. 168–185. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  6. 6.
    Barendsen, E., Smetsers, S.: Uniqueness typing for functional languages with graph rewriting semantics. Mathematical Structures in Computer Science 6, 579–612 (1996)zbMATHMathSciNetGoogle Scholar
  7. 7.
    Pil, M.: Dynamic types and type dependent functions. In: Hammond, K., Davie, T., Clack, C. (eds.) IFL 1998. LNCS, vol. 1595, pp. 169–185. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  8. 8.
    Lijnse, B., Jansen, J., Plasmeijer, R.: Incidone: a task-oriented incident coordination tool. In: Rothkrantz, L., Ristvej, J., Franco, Z. (eds.) Proceedings of the 9th International Conference on Information Systems for Crisis Response and Management, ISCRAM 2012, Vancouver, Canada, April 2012Google Scholar
  9. 9.
    Object Modeling Group: OMG Unified Modeling Language Specification. Technical report, March 2000Google Scholar
  10. 10.
    Object Modeling Group: OMG Unified Modeling Language (OMG UML), Infrastructure. Technical report, March 2012Google Scholar
  11. 11.
    Achten, P.: Clean for Haskell98 programmers - a quick reference guide, 13 July 2007Google Scholar
  12. 12.
    Poswig, J., Vrankar, G., Morara, C.: VisaVis: a Higher-order Functional Visual Programming Language. Journal of Visual Languages & Computing 5(1), 83–111 (1994)CrossRefGoogle Scholar
  13. 13.
    Reekie, H.J.: Visual Haskell: a first attempt. Technical report (1994)Google Scholar
  14. 14.
    Hanna, K.: Interactive visual functional programming. ACM SIGPLAN Notices 37(9), 145–156 (2002)CrossRefGoogle Scholar
  15. 15.
    Elliott, C.M.: Tangible functional programming. ACM SIGPLAN Notices 42(9), 59–70 (2007)CrossRefGoogle Scholar
  16. 16.
    Henrix, J., Plasmeijer, R., Achten, P.: GiN: a graphical language and tool for defining iTask workflows. In: Peña, R., Page, R. (eds.) TFP 2011. LNCS, vol. 7193, pp. 163–178. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 17.
    Petri, C.A.: Communication with Automata. Technical Report RADC-TR-65-377, January 1966Google Scholar
  18. 18.
    White, S.A.: Business Process Model and Notation, V1.1, pp. 1–318, January 2008Google Scholar
  19. 19.
    Fuhs, J., Cannady, J.: An automated approach in reverse engineering Java applications using Petri Nets. In: IEEE SoutheastCon, 2004, Greensboro, North Carolina, pp. 90–96. IEEE, March 2004Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Jurriën Stutterheim
    • 1
    Email author
  • Rinus Plasmeijer
    • 1
  • Peter Achten
    • 1
  1. 1.Institute for Computing and Information SciencesRadboud University NijmegenNijmegenThe Netherlands

Personalised recommendations