Abstract
We study the semantic foundations of a class of languages that combine the typed λ-calculus with process constructs for synchronised communication over typed channels. Examples include PFL, Amber, PML and Facile, a language under development at Stony Brook that supports a symmetric integration of functional and concurrent programming. Expressions in Facile are very general and may dynamically create processes and cause communication.
The main result is an extensional notion of program behaviour which we characterise using operational techniques. A new concept of abstraction in observation is introduced: a system is observed through a set of channels called a window. The concept of window is used to generalise bisimulation to indexed families of relations, thus supporting reasoning about higher-order processes whose interface may expand dynamically during execution. A definition of process and expression equivalence is introduced which takes into account both observable behaviour and resulting value. We close with a discussion on compositional reasoning using this notion of window-parametrised equivalence.
This work has been partially supported by NSF CCR-8704309 and NSF CCR-8706973
Preview
Unable to display preview. Download preview PDF.
References
Egidio Astesiano and Gianna Reggio. SMoLCS-Driven Concurrent Calculi. In LNCS 249: TAPSOFT '87, pages 169–201, Springer-Verlag, Berlin, 1987.
Egidio Astesiano and Elena Zucca. Parametric Channels via Label Expressions in CCS. Technical Report, Universita di Genova, January 1984.
Luca Cardelli. Amber. In Cousineau, Curien, and Robinet, editors, LNCS 242: Combinators and Functional Programming Languages, pages 21–47, Springer-Verlag, 1986.
U. Engberg and M. Nielsen. A Calculus of Communicating Systems with Label Passing. Technical Report DAIMI PB-208, Aarhus University Computer Science Department, 1986.
A. Giacalone, P. Mishra, and S. Prasad. FACILE: A Symmetric Integration of Concurrent and Functional Programming. International Journal of Parallel Processing, 18(2):121–160, April 1989.
Alessandro Giacalone, Prateek Mishra, and Sanjiva Prasad. FACILE: A Symmetric Integration of Concurrent and Functional Programming. In J. Diaz and F. Orejas, editors, LNCS 352: TAPSOFT '89, pages 184–209, Springer-Verlag, Berlin, March 1989.
Sören Holmström. PFL: A Functional Language for Parallel Programming, and its Implementation. Programming Methodology Group 7, University of Göteborg and Chalmers University of Technology, September 1983.
occam Programming Manual. 1984. Prentice-Hall International Series in Computer Science, C.A.R. Hoare (Series Editor).
Gilles Kahn. The Semantics of a Simple Language for Parallel Programming. In Proceedings of the IFIP Conference, pages 471–475, IFIP, 1974.
Kim G. Larsen. Context-Dependent Bisimulation between Processes. PhD thesis, University of Edinburgh, 1986.
Silvio Meira. Processes and Functions. In J. Diaz and F. Orejas, editors, LNCS 352: TAPSOFT '89, pages 286–297, Springer-Verlag, Berlin, March 1989.
Robin Milner. A Calculus of Communicating Systems. Volume 92 of Lecture Notes in Computer Science, Springer-Verlag, 1980.
Robin Milner. Calculi for Synchrony and Asynchrony. Theoretical Computer Science, 25:267–310, 1983.
Robin Milner. Operational and Algebraic Semantics of Concurrent Processes. Technical Report ECS-LFCS-88-46, University of Edinburgh, 1988.
Robin Milner, Joachim Parrow, and David Walker. A Calculus of Mobile Processes. Technical Report ECS-LFCS-89-86, LFCS, Department of Computer Science, University of Edinburgh, June 1989. Also published as CSR-303-89.
Flemming Nielson. The Typed λ-Calculus with First-Class Processes. In LNCS 366: Proceedings of PARLE 89, pages 357–373, Springer-Verlag, Berlin, 1989.
D. Park. Concurrency and Automata on Infinite Sequences. Volume LNCS 104, Springer-Verlag, Berlin, 1981.
G.D. Plotkin. Call by name, call by value, and the λ calculus. Theoretical Computer Science, 1:125–159, 1975.
G.D. Plotkin. A Structural Approach to Operational Semantics. Technical Report DAIMI FN-19, Aarhus University, September 1981.
J.H. Reppy. Synchronous Operations as First-class Values. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 250–259, ACM SIGPLAN, June 1988.
Bent Thomsen. A Calculus of Higher Order Communicating Systems. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, January 1989., 1989.
David Turner. Functional Programming and Communicating Processes. In de Bakker, Nijman, and Treleaven, editors, LNCS 259: PARLE Parallel Architectures and Languages Europe, pages 54–74, Springer-Verlag, Berlin, June 1987.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Prasad, S., Giacalone, A., Mishra, P. (1990). Operational and algebraic semantics for facile: A symmetric integration of concurrent and functional programming. In: Paterson, M.S. (eds) Automata, Languages and Programming. ICALP 1990. Lecture Notes in Computer Science, vol 443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032073
Download citation
DOI: https://doi.org/10.1007/BFb0032073
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-52826-5
Online ISBN: 978-3-540-47159-2
eBook Packages: Springer Book Archive