UTP Semantics of Reactive Processes with Continuations

  • Gerard Ekembe NgondiEmail author
  • Jim Woodcock
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10134)


Based on the Unifying Theories of Programming (UTP) semantic framework, Hoare and He have defined (a means for constructing) a high-level language with labels and jumps, using the concept of continuations. The language permits placing labels at given points within a program and making jumps to these labels when desired. In their work, Hoare and He have limited themselves to the definition of continuations for sequential programs. This paper is concerned with the extension of that work to reactive programs. We first extend their results to include parallelism and Higher Order programs. This is achieved by designing a new control variable \(\mathcal {L}\) whose value follows the parallel structure of programs. We then proceed to define reactive (CSP) processes that contain the new control variable \(\mathcal {L}\), resulting in the theory of Reactive (Process) Blocks. The encapsulation operator defined by Hoare and He and which may also be used for hiding the control variable \(\mathcal {L}\) does readily provide a (functional) link between both UTP theories of Reactive Processes and of Reactive Blocks. The semantics are denotational.


Continuations Denotational semantics UTP CSP Reactive processes 



We are grateful to the anonymous reviewers for their useful comments.


  1. 1.
    Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice-Hall, Upper Saddle River (1998)zbMATHGoogle Scholar
  2. 2.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)zbMATHGoogle Scholar
  3. 3.
    Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall, Upper Saddle River (1998)Google Scholar
  4. 4.
    Cavalcanti, A., Woodcock, J.: A tutorial introduction to CSP in unifying theories of programming. In: Cavalcanti, A., Sampaio, A., Woodcock, J. (eds.) PSSE 2004. LNCS, vol. 3167, pp. 220–268. Springer, Heidelberg (2006). doi: 10.1007/11889229_6 CrossRefGoogle Scholar
  5. 5.
    Tang, X., Woodcock, J.: Travelling processes. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 381–399. Springer, Heidelberg (2004). doi: 10.1007/978-3-540-27764-4_20 CrossRefGoogle Scholar
  6. 6.
    Tang, X., Woodcock, J.: Towards mobile processes in UTP. In: SEFM 2004, pp. 44–53. IEEE (2004)Google Scholar
  7. 7.
    Fuggetta, A., Picco, G.P., Vigna, G.: Understanding code mobility. In: TSE 1998, vol. 24, pp. 342–361. IEEE (1998)Google Scholar
  8. 8.
    Woodcock, J., Hughes, A.: Unifying theories of parallel programming. In: George, C., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, pp. 24–37. Springer, Heidelberg (2002). doi: 10.1007/3-540-36103-0_5 CrossRefGoogle Scholar
  9. 9.
    Jahnig, N., Gothel, T., Glesner, S.: A denotational semantics for communicating unstructured code. In: FESCA 2015, EPTCS, vol. 178, pp. 9–21 (2015)Google Scholar
  10. 10.
    Reynolds, J.C.: The discoveries of continuations. LISP Symbolic Comput. 6, 233–247 (1993)CrossRefGoogle Scholar
  11. 11.
    Strachey, C., Wadsworth, C.P.: Continuations: a mathematical semantics for handling full jumps. Higher-Order Symbolic Comput. 13, 135–152 (2000)CrossRefzbMATHGoogle Scholar
  12. 12.
    Danvy, O., Filinski, A.: Representing control: a study of the CPS transformation. Math. Struct. Comp. Sci. 2, 361–391 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Felleisen, M., Friedman, D.P., Duba, B.F., Merrill, J.: Beyond continuations. Technical report, Indiana University Computer Science Department (1987)Google Scholar
  14. 14.
    Giorgi, J.F., LeMetayer, D.: Continuation-based parallel implementations of functional languages. In: LFP 1990, pp. 209–217. ACM (1990)Google Scholar
  15. 15.
    Moreau, L., Queinnec, C.: Partial continuations as the difference of continuations a duumvirate of control operators. In: Hermenegildo, M., Penjam, J. (eds.) PLILP 1994. LNCS, vol. 844, pp. 182–197. Springer, Heidelberg (1994). doi: 10.1007/3-540-58402-1_14 CrossRefGoogle Scholar
  16. 16.
    Todoran, E., Papaspyrou, N.S.: Continuations for parallel logic programming. In: PPDP 2000, pp. 257–267. ACM (2000)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of YorkYorkUK

Personalised recommendations