Abstract
In this article, we introduce a partial evaluator for a concurrent functional language with synchronous communications over channels, dynamic process and channel creations, and the ability to communicate channel names. Partial evaluation executes at compile-time the communications of a program for which the emitter, the receptor and the message contents are statically known. The partial evaluator and the static analyses used to guide it were implemented and we show the results of the specialization of concurrent programs for particular execution contexts, corresponding to different assumptions on the network or on the messages.
Chapter PDF
Similar content being viewed by others
References
Dave Berry, Robin Milner, and David N. Turner. A Semantics for ML Concurrency Primitives. In Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages POPL’92. ACM, 1992.
Chiara Bodei, Pierpaolo Degano, Flemming Nielson, and Hanne Riis Nielson. Control Flow Analysis for the Pi-Calculus. In Concur’98, number 1466 in Lecture Notes in Computer Science, pages 84–98. Springer Verlag, 1998.
Anders Bondorf and Jesper Jorgensen. Efficient analyses for realistic off-line partial evaluation: Extended version. DIKU Research Report 93/4, University of Copenhagen, 1993.
Charles Consel and François Noöl. A General Approach for Run-time Specialisation and its Application to C. In Proceedings of the ACM-SIGPLAN Symposium on Principles of Programming Languages, POPL’96. ACM, 1996.
Yoshihito Futamura. Partial Evaluation of Computation Processes-an Approach to a Compiler-compiler. Systems, Computers, Controls, 2(5):49–50, 1971.
Marc Gengler and Matthieu Martel. Self-applicable Partial Evaluation for the Pi-Calculus. In Proceedings of the ACM-SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulations, PEPM’97, pages 36–46. ACM, 1997.
Marc Gengler and Matthieu Martel. Des étages en Concurrent ML. In Rencontres Francophones du Parallélisme, Renpar10, 1998.
Carsten K. Gomard and Neil D. Jones. A Partial Evaluator for the Untyped Lambda-Calculus. Journal of Functional Programming, 1(1):21–69, January 1991.
Haruo Hosoya, Naoki Kobayashi, and Akinori Yonezawa. Partial Evaluation Scheme for Concurrent Languages and its Correctness. In Europar’96, volume 1123 of Lecture Notes in Computer Science, pages 625–632. Springer Verlag, 1996.
Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall International, International Series in Computer Science, 1993.
Mihnea Marinescu and Benjamin Goldberg. Partial Evaluation Techniques for Concurrent Programs. In Proceedings of the ACM-SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulations, PEPM’97, pages 47–62. ACM, 1997.
Matthieu Martel. Analyse Statique et Evaluation Partielle de Systémes de Processus Mobiles. PhD thesis, Université de la Méditerranée, Marseille, France, 2000.
Matthieu Martel and Marc Gengler. Communication Topology Analysis for Concurrent Programs. In SPIN’2000, volume 1885 of Lecture Notes in Computer Science. Springer Verlag, 2000.
Gilles Muller, Eugen-Nicolae Volanschi, and Renaud Marlet. Scaling up Partial Evaluation for Optimizing the Sun Commercial RPC Protocol. In Proceedings of the ACM-SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulations, PEPM’97, pages 101–111. ACM, 1997.
Flemming Nielson and Hanne Riis Nielson. Two-level Functional Languages. Cambridge University Press, 1992.
Flemming Nielson, Hanne Riis Nielson, and Chris Hankin. Principles of Program Analysis. Springer Verlag, 1999.
John H. Reppy. An operational semantics of first-class synchronous operations. Technical Report TR-91-1232, Department of Computer Science, Cornell University, Ithaca, 1991.
John H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999.
Olin Shivers. Control Flow Analysis of Higher Order Languages. PhD thesis, Carnegie Mellon University, School of Computer Science, 1991. Technical Report CMU-CS-91-145.
Kirsten L. Solberg, Flemming Nielson, and Hanne Riis Nielson. Systematic Realisation of Control Flow Analyses for CML. In Proceedings of the ACM-SIGPLAN International Conference on Functional Programming, ICFP’97, pages 38–51. ACM, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Martel, M., Gengler, M. (2001). Partial Evaluation of Concurrent Programs. In: Sakellariou, R., Gurd, J., Freeman, L., Keane, J. (eds) Euro-Par 2001 Parallel Processing. Euro-Par 2001. Lecture Notes in Computer Science, vol 2150. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44681-8_74
Download citation
DOI: https://doi.org/10.1007/3-540-44681-8_74
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42495-6
Online ISBN: 978-3-540-44681-1
eBook Packages: Springer Book Archive