An Effective Methodology for Defining Consistent Semantics of Complex Systems

  • Pieter Koopman
  • Rinus Plasmeijer
  • Peter Achten
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6299)


This paper has two contributions. First, it gives a semantics for the iTask workflow management system. Second, it describes an effective methodology to construct such a semantics.

Semantics is a formal description of the meaning of language constructs. Just like any other formal description there are umpteen ways of introducing flaws in such a description. Even trained people are not very effective in spotting issues in formal text. In this paper we show that it is very well possible to describe semantics of programming languages using a modern functional programming as carrier of the specification. This enables automatic sanity checks by the language compiler, simulation of the described semantics to validate the specification, and automatic testing of properties of the semantics.

We illustrate this technique with the well-known example of simple imperative language as well as the iTask workflow management system. In our experience this methodology works very well. The combination of sanity checks, simulation and automatic testing of properties really helped to construct a trustworthy semantics for the iTask system.


Proof Assistant Functional Language Denotational Semantic Language Construct High Order Function 
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.
    Achten, P., van Eekelen, M., de Mol, M., Plasmeijer, R.: An Arrow based semantics for interactive applications. In: Morazán, M. (ed.) Proceedings of the 8th Symposium on Trends in Functional Programming, TFP 2007, New York, NY, USA, April 2-4 (2007)Google Scholar
  2. 2.
    Aydemir, B.E., Bohannon, A., Fairbairn, M., Foster, J.N., Pierce, B.C., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The poplmark challenge. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50–65. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Barendregt, H.: The lambda calculus, its syntax and semantics (revised edition). Studies in Logic, vol. 103. North-Holland, Amsterdam (1984)zbMATHGoogle Scholar
  4. 4.
    Cheney, J.: Scrap your nameplate (functional pearl). SIGPLAN Not. 40(9), 180–191 (2005)CrossRefzbMATHGoogle Scholar
  5. 5.
    Danvy, O.: From reduction-based to reduction-free normalization. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 66–164. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Koopman, P., Plasmeijer, R.: Generic generation of elements of types. In: Proceedings of the 6th Symposium on Trends in Functional Programming, TFP 2005, Tallin, Estonia, Septmeber 23-24, pp. 163–178. Intellect Books, Bristol (2005) ISBN 978-1-84150-176-5Google Scholar
  7. 7.
    Benzmüller, C.E., Brown, C.E.: A structured set of higher-order problems. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 66–81. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Koopman, P., Plasmeijer, R.: Fully automatic testing with functions as specifications. In: Horváth, Z. (ed.) CEFP 2005. LNCS, vol. 4164, pp. 35–61. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Koopman, P., Plasmeijer, R., Achten, P.: An executable and testable semantics for iTasks. In: Scholz, S.-B. (ed.) Revised Selected Papers of the 20th International Symposium on the Implementation and Application of Functional Languages, IFL 2008, pp. 53–64. University of Hertfordshire, UK (2008)Google Scholar
  10. 10.
    Lakin, M.R., Pitts, A.M.: A metalanguage for structural operational semantics. In: Morazán, M. (ed.) Trends in Functional Programming, vol. 8, pp. 19–35. Intellect (2008)Google Scholar
  11. 11.
    Lee, S.-Y., Lee, Y.-H., Kim, J.-G., Lee, D.C.: Workflow system modeling in the mobile healthcare B2B using semantic information. In: Gervasi, O., Gavrilova, M.L., Kumar, V., Laganá, A., Lee, H.P., Mun, Y., Taniar, D., Tan, C.J.K. (eds.) ICCSA 2005. LNCS, vol. 3481, pp. 762–770. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  12. 12.
    Ludäscher, B., Altintas, I., Berkley, C., Higgins, D., Jaeger, E., Jones, M., Lee, E., Tao, J., Zhao, Y.: Scientific workflow management and the Kepler system. Concurrency and Computation: Practice & Experience 18, 2006 (2005)Google Scholar
  13. 13.
    de Mol, M.: Reasoning About Functional Programs - Sparkle: a proof assistant for Clean. PhD thesis, Institute for Computing and Information Sciences, Radboud University Nijmegen,(2009) ISBN 978-90-9023885-2 Google Scholar
  14. 14.
    de Mol, M., van Eekelen, M., Plasmeijer, R.: The mathematical foundation of the proof assistant Sparkle. Technical Report ICIS-R07025, Institute for Computing and Information Sciences, Radboud University Nijmegen, (November 2007)Google Scholar
  15. 15.
    Nielson, H., Nielson, F.: Semantics with applications: a formal introduction. John Wiley & Sons, Chichester (1992)zbMATHGoogle Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Plasmeijer, R., van Eekelen, M.: Functional programming and parallel graph rewriting. Addison-Wesley Publishing Company, Reading (1993) ISBN 0-201-41663-8zbMATHGoogle Scholar
  18. 18.
    Plotkin, G.D.: The origins of structural operational semantics. Journal of Logic and Algebraic Programming 60-61, 3–15 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Russell, N., ter Hofstede, A., van der Aalst, W.: newYAWL: specifying a workflow reference language using coloured Petri nets. In: Proceedings of the 8th 2007 (2007)Google Scholar
  20. 20.
    Sewell, P., Nardelli, F.Z., Owens, S., Peskine, G., Ridge, T., Sarkar, S., Strniša, R.: Ott: effective tool support for the working semanticist. SIGPLAN Not. 42(9), 1–12 (2007)CrossRefzbMATHGoogle Scholar
  21. 21.
    Stirling, C.: The joys of bisimulation. In: Brim, L., Gruska, J., Zlatuška, J. (eds.) MFCS 1998. LNCS, vol. 1450, pp. 142–151. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  22. 22.
    Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)zbMATHGoogle Scholar
  23. 23.
    Team, T.C.D.: The Coq proof assistant reference manual, (version 7.0) (1998),
  24. 24.
    Urban, C., Pitts, A.M., Gabbay, M.J.: Nominal unification. Theoretical Computer Science 323, 473–497 (2004)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Pieter Koopman
    • 1
  • Rinus Plasmeijer
    • 1
  • Peter Achten
    • 1
  1. 1.Nijmegen Institute for Computing and Information SciencesRadboud University NijmegenThe Netherlands

Personalised recommendations