Skip to main content

A type-based algorithm for the control-flow analysis of higher-order concurrent programs

  • Conference paper
  • First Online:
  • 131 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1268))

Abstract

We address, in a type-based framework, the problem of control-flow analysis for concurrent and functional languages. We present an efficient algorithm that propagates automatically types, communication effects and call graphs. The algorithm comes with a logical characterization that consists of a type proof system. The latter operates on a Concurrent ML core-syntax: a strongly typed, polymorphic kernel that supports higher-order functions and concurrency primitives. Effects are represented as algebraic terms that record communication effects resulting from channel creation, sending and receiving. Call graphs record function calls and are captured by a term algebra that is close to usual process algebras. Types are annotated with effects and call graphs. For the sake of flexibility, a subtyping relation is considered on the type algebra. We present the language syntax together with its static semantics that consists of the typing rules and an inference algorithm. The latter is proved to be sound with respect to the typing rules.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers principles, techniques, and tools. Addison-Wesley, Reading, MA, 1986.

    Google Scholar 

  2. D. Bolignano and M. Debbabi. A coherent type inference system for a concurrent, functional and imperative programming language. In Proceedings of the AMAST'93 Conference. Springer Verlag, June 1993.

    Google Scholar 

  3. D. Bolignano and M. Debbabi. A denotational model for the integration of concurrent functional and imperative programming. In Proceedings of the ICCI'93 Conference. IEEE, May 1993.

    Google Scholar 

  4. D. Bolignano and M. Debbabi. A semantic theory for CML. In Proceedings of the TACS'94 Conference. Springer Verlag, April 1994.

    Google Scholar 

  5. D. Berry, A.J.R.G. Milner, and D. Turner. A semantics for ML concurrency primitives. In Proc. 17th ACM Symposium on Principles of Programming Languages, 1992.

    Google Scholar 

  6. P. Cousot and R. Cousot. Inductive definitions, semantics, and abstract interpretation. In Conference Record of the 19th Annual ACM Symposium on Principles of Programming Languages, pages 83–94, Albuquerque, NM, January 1992.

    Google Scholar 

  7. M. Debbabi. Intégration des paradigmes de programmation paralléle, fonctionnelle et imperative: fondements sémantiques. Université Paris Sud, Centre d'Orsay, July 1994. These de Doctorat.

    Google Scholar 

  8. L. M. M. Damas and R. Milner. Principal type schemes for functional programs. In Proceedings of the 9th ACM Symposium on Principles of Programming Languages, Albuquerque, pages 207–212, New York, NY, 1982. ACM.

    Google Scholar 

  9. D.K. Gifford, P. Jouvelot, J.M. Lucassen, and M.A. Sheldon. Fx-87 reference manual. Technical Report MIT/LCS/TR-407, MIT Laboratory for Computer Science, September 1987.

    Google Scholar 

  10. X. Leroy. Typage polymorphe d'un langage algorithmique. PhD thesis, Université de Paris VII, June 1992.

    Google Scholar 

  11. A.J.R.G. Milner. Communication and Concurrency. Prentice-Hall, 1989.

    Google Scholar 

  12. A.J.R.G. Milner. A calculus of communicating systems. In Lecture Notes in Computer Science 92, pages 281–305. Springer-Verlag, 1991.

    Google Scholar 

  13. F. Nielson and A. R. Nielsen. Constraints for polymorphic behaviours of concurrent ML. Lecture Notes in Computer Science, 845:73–--, 1994.

    Google Scholar 

  14. Hanne Riis Nielson and Flemming Nielson. Higher-order concurrent programs with finite communication topology. In Conference Record of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'94), pages 84–97, Portland, Oregon, January 17–21, 1994. ACM Press. Extended abstract.

    Google Scholar 

  15. J.H. Reppy. CML: A higher-order concurrent language. In Proceedings of the ACM SIGPLAN '91 PLDI, pages 294–305. SIGPLAN Notices 26(6), 1991.

    Google Scholar 

  16. J.H Reppy. An operational semantics of first-class synchronous operations. Technical Report TR 91–1232, Department of Computer Science, Cornell University, August 1991.

    Google Scholar 

  17. O. Shivers. Control flow analysis in scheme. In Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation, volume 23, pages 164–174, Atlanta, GA, June 1988.

    Google Scholar 

  18. O. Shivers. Control-Flow Analysis of Higher-Order Languages or Taming Lambda. PhD thesis, School of Computer Science, Carnegie Mellon University, May 1990. also published as CMU Technical Report CMU-CS-91–145.

    Google Scholar 

  19. Y. M. Tang. Systèmes d'Effet et Interprétation Abstraite pour l'Analyse de Flot de Controle. PhD thesis, Université de Paris VI, March 1994.

    Google Scholar 

  20. B. Thomsen. Polymorphic sorts and types for concurrent functional programs. Technical Report Draft, ECRC, Munich, March 1993.

    Google Scholar 

  21. J. Talpin and P. Jouvelot. The type and effect discipline. In Proc. Logic in Computer Science, 1992.

    Google Scholar 

  22. Y. M. Tang and P. Jouvelot. Separate abstract interpretation for control-flow analysis. In Proceedings of the TACS'94 Conference. Springer Verlag, April 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Werner Kluge

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Debbabi, M., Faour, A., Tawbi, N. (1997). A type-based algorithm for the control-flow analysis of higher-order concurrent programs. In: Kluge, W. (eds) Implementation of Functional Languages. IFL 1996. Lecture Notes in Computer Science, vol 1268. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63237-9_29

Download citation

  • DOI: https://doi.org/10.1007/3-540-63237-9_29

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63237-5

  • Online ISBN: 978-3-540-69239-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics