Advertisement

Compiling Pattern Matching in Join-Patterns

  • Qin Ma
  • Luc Maranget
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3170)

Abstract

We propose an extension of the join-calculus with pattern matching on algebraic data types. Our initial motivation is twofold: to provide an intuitive semantics of the interaction between concurrency and pattern matching; to define a practical compilation scheme from extended join-definitions into ordinary ones plus ML pattern matching. To assess the correctness of our compilation scheme, we develop a theory of the applied join-calculus, a calculus with value-passing and value matching.

Keywords

Pattern Match Topological Order Message Content Closed Process Reaction Rule 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Fournet, C.: Mobile values, new names, and secure communication. In: Proceedings of POPL 2001, pp. 104–115 (2001)Google Scholar
  2. 2.
    Amadio, R.M., Castellani, I., Sangiorgi, D.: On bisimulations for the asynchronous π–calculus. Theoretical Computer Science 195(2), 291–324 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Berry, G., Boudol, G.: The chemical abstract machine. Theoretical Computer Science 96(1), 217–248 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Fournet, C.: The Join-Calculus: a Calculus for Distributed Mobile Programming. PhD thesis, Ecole Polytechnique (November 1998)Google Scholar
  5. 5.
    Fournet, C., Gonthier, G.: The reflexive chemical abstract machine and the join-calculus. In: Proceedings of POPL 1996, pp. 372–385 (1996)Google Scholar
  6. 6.
    Fournet, C., Laneve, C., Maranget, L., Rémy, D.: Inheritance in the join calculus. Journal of Logic and Algebraic Programming 57(1-2), 23–69 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Fournet, C., Maranget, L., Laneve, C., Rémy, D.: Implicit typing à la ML for the join-calculus. In: Mazurkiewicz, A., Winkowski, J. (eds.) CONCUR 1997. LNCS, vol. 1243, pp. 196–212. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  8. 8.
    Gardner, P., Laneve, C., Wischik, L.: Linear forwarders. In: Amadio, R.M., Lugiez, D. (eds.) CONCUR 2003. LNCS, vol. 2761, pp. 415–430. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Honda, K., Yoshida, N.: On reduction-based process semantics. Theoretical Computer Science 151(2), 437–486 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Le Fessant, F.: The JoCaml system (1998), http://pauillac.inria.fr/jocaml
  11. 11.
    Le Fessant, F., Maranget, L.: Optimizing pattern-matching. In: Proceedings of ICFP 2001, pp. 26–37 (2001)Google Scholar
  12. 12.
    Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml System, version 3.07 (2003), http://caml.inria.fr/
  13. 13.
    Ma, Q., Maranget, L.: Expressive synchronization types for inheritance in the join calculus. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 20–36. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    Ma, Q., Maranget, L.: Compiling pattern matching in join-patterns. Rapport de recherche 5160, INRIA-Rocquencourt (April 2004), Available at: http://pauillac.inria.fr/~ma/papers/ptjoin-tr.ps
  15. 15.
    Merro, M., Sangiorgi, D.: On asynchrony in name-passing calculi. In: Larsen, K.G., Skyum, S., Winskel, G. (eds.) ICALP 1998. LNCS, vol. 1443, pp. 856–867. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  16. 16.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I and II. Information and Computation 100, 1–77 (1992)Google Scholar
  17. 17.
    Milner, R., Sangiorgi, D.: Barbed bisimulation. In: Kuich, W. (ed.) ICALP 1992. LNCS, vol. 623, pp. 685–695. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  18. 18.
    Odersky, M.: Functional nets. In: Smolka, G. (ed.) ESOP 2000 and ETAPS 2000. LNCS, vol. 1782, pp. 1–25. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  19. 19.
    Odersky, M.: The Scala Language (2002), http://lamp.epfl.ch/~odersky/scala/
  20. 20.
    Pritchard, P.: On computing the subset graph of a collection of sets. Journal of Algorithms 33(2), 187–203 (1999)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Qin Ma
    • 1
  • Luc Maranget
    • 1
  1. 1.INRIA-RocquencourtLe ChesnayFrance

Personalised recommendations