Termination in Impure Concurrent Languages
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.
KeywordsType System Imperative Input Logical Relation Functional Language Functional Core
Unable to display preview. Download preview PDF.
- Demangeon, R., Hirschkoff, D., Sangiorgi, D.: Appendix to this paper, proofs (2010), http://www.cs.unibo.it/~sangio/
- Demangeon, R., Hirschkoff, D., Sangiorgi, D.: A Method for Termination in a λ-calculus with References (2010), http://www.cs.unibo.it/~sangio/
- 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
- 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
- Sangiorgi, D., Walker, D.: The π-calculus: a Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)Google Scholar
- Turner, N.D.: The polymorphic pi-calculus: Theory and Implementation. PhD thesis, Department of Computer Science, University of Edinburgh (1996)Google Scholar