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.
References
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers principles, techniques, and tools. Addison-Wesley, Reading, MA, 1986.
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.
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.
D. Bolignano and M. Debbabi. A semantic theory for CML. In Proceedings of the TACS'94 Conference. Springer Verlag, April 1994.
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.
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.
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.
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.
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.
X. Leroy. Typage polymorphe d'un langage algorithmique. PhD thesis, Université de Paris VII, June 1992.
A.J.R.G. Milner. Communication and Concurrency. Prentice-Hall, 1989.
A.J.R.G. Milner. A calculus of communicating systems. In Lecture Notes in Computer Science 92, pages 281–305. Springer-Verlag, 1991.
F. Nielson and A. R. Nielsen. Constraints for polymorphic behaviours of concurrent ML. Lecture Notes in Computer Science, 845:73–--, 1994.
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.
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.
J.H Reppy. An operational semantics of first-class synchronous operations. Technical Report TR 91–1232, Department of Computer Science, Cornell University, August 1991.
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.
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.
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.
B. Thomsen. Polymorphic sorts and types for concurrent functional programs. Technical Report Draft, ECRC, Munich, March 1993.
J. Talpin and P. Jouvelot. The type and effect discipline. In Proc. Logic in Computer Science, 1992.
Y. M. Tang and P. Jouvelot. Separate abstract interpretation for control-flow analysis. In Proceedings of the TACS'94 Conference. Springer Verlag, April 1994.
Author information
Authors and Affiliations
Editor information
Rights 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