Termination in Impure Concurrent Languages

  • Romain Demangeon
  • Daniel Hirschkoff
  • Davide Sangiorgi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6269)


An impure language is one that combines functional and imperative constructs. We propose a method for ensuring termination of impure concurrent languages that makes it possible to combine term rewriting measure-based techniques with traditional approaches for termination in functional languages such as logical relations. The method can be made parametric on the termination technique employed on the functional part; it can also be iterated.

We illustrate the method in the case of a π-calculus with both functional and imperative names, and show that, with respect to previous approaches to termination, it allows us to extend considerably the set of processes that can be handled.

The method can also be applied to sequential languages, e.g., λ-calculi with references.


Type System Imperative Input Logical Relation Functional Language Functional Core 
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. Amadio, R.: On Stratified Regions. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 210–225. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. Blanqui, F.: A type-based termination criterion for dependently-typed higher-order rewrite systems. In: van Oostrom, V. (ed.) RTA 2004. LNCS, vol. 3091, pp. 24–39. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. Boudol, G.: Fair Cooperative Multithreading. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR 2007. LNCS, vol. 4703, pp. 272–286. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  4. Demangeon, R., Hirschkoff, D., Kobayashi, N., Sangiorgi, D.: On the Complexity of Termination Inference for Processes. In: Barthe, G., Fournet, C. (eds.) TGC 2007 and FODO 2008. LNCS, vol. 4912, pp. 140–155. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. Demangeon, R., Hirschkoff, D., Sangiorgi, D.: Appendix to this paper, proofs (2010),
  6. Demangeon, R., Hirschkoff, D., Sangiorgi, D.: A Method for Termination in a λ-calculus with References (2010),
  7. Deng, Y., Sangiorgi, D.: Ensuring Termination by Typability. Information and Computation 204(7), 1045–1082 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  8. Girard, J.-Y., Lafont, Y., Taylor, P.: Proofs and Types. Cambridge Tracts in Theoretical Computer Science, vol. 7. Cambridge University Press, Cambridge (1988)Google Scholar
  9. Pierce, B.C., Turner, D.N.: Pict: a programming language based on the pi-calculus. In: Proof, Language, and Interaction, pp. 455–494. The MIT Press, Cambridge (2000)Google Scholar
  10. Sangiorgi, D.: Termination of Processes. Math. Structures in Comput. Sci. 16(1), 1–39 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  11. Sangiorgi, D., Walker, D.: The π-calculus: a Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)Google Scholar
  12. Turner, N.D.: The polymorphic pi-calculus: Theory and Implementation. PhD thesis, Department of Computer Science, University of Edinburgh (1996)Google Scholar
  13. Yoshida, N., Berger, M., Honda, K.: Strong Normalisation in the Pi-Calculus. Information and Computation 191(2), 145–202 (2004)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Romain Demangeon
    • 1
  • Daniel Hirschkoff
    • 1
  • Davide Sangiorgi
    • 2
  1. 1.ENS Lyon, Université de Lyon, CNRS, INRIAFrance
  2. 2.INRIA/Università di BolognaItaly

Personalised recommendations