Skip to main content

Operational and algebraic semantics for facile: A symmetric integration of concurrent and functional programming

  • Conference paper
  • First Online:
Automata, Languages and Programming (ICALP 1990)

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

Included in the following conference series:

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

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Egidio Astesiano and Gianna Reggio. SMoLCS-Driven Concurrent Calculi. In LNCS 249: TAPSOFT '87, pages 169–201, Springer-Verlag, Berlin, 1987.

    Google Scholar 

  2. Egidio Astesiano and Elena Zucca. Parametric Channels via Label Expressions in CCS. Technical Report, Universita di Genova, January 1984.

    Google Scholar 

  3. Luca Cardelli. Amber. In Cousineau, Curien, and Robinet, editors, LNCS 242: Combinators and Functional Programming Languages, pages 21–47, Springer-Verlag, 1986.

    Google Scholar 

  4. U. Engberg and M. Nielsen. A Calculus of Communicating Systems with Label Passing. Technical Report DAIMI PB-208, Aarhus University Computer Science Department, 1986.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. occam Programming Manual. 1984. Prentice-Hall International Series in Computer Science, C.A.R. Hoare (Series Editor).

    Google Scholar 

  9. Gilles Kahn. The Semantics of a Simple Language for Parallel Programming. In Proceedings of the IFIP Conference, pages 471–475, IFIP, 1974.

    Google Scholar 

  10. Kim G. Larsen. Context-Dependent Bisimulation between Processes. PhD thesis, University of Edinburgh, 1986.

    Google Scholar 

  11. Silvio Meira. Processes and Functions. In J. Diaz and F. Orejas, editors, LNCS 352: TAPSOFT '89, pages 286–297, Springer-Verlag, Berlin, March 1989.

    Google Scholar 

  12. Robin Milner. A Calculus of Communicating Systems. Volume 92 of Lecture Notes in Computer Science, Springer-Verlag, 1980.

    Google Scholar 

  13. Robin Milner. Calculi for Synchrony and Asynchrony. Theoretical Computer Science, 25:267–310, 1983.

    Google Scholar 

  14. Robin Milner. Operational and Algebraic Semantics of Concurrent Processes. Technical Report ECS-LFCS-88-46, University of Edinburgh, 1988.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Flemming Nielson. The Typed λ-Calculus with First-Class Processes. In LNCS 366: Proceedings of PARLE 89, pages 357–373, Springer-Verlag, Berlin, 1989.

    Google Scholar 

  17. D. Park. Concurrency and Automata on Infinite Sequences. Volume LNCS 104, Springer-Verlag, Berlin, 1981.

    Google Scholar 

  18. G.D. Plotkin. Call by name, call by value, and the λ calculus. Theoretical Computer Science, 1:125–159, 1975.

    Google Scholar 

  19. G.D. Plotkin. A Structural Approach to Operational Semantics. Technical Report DAIMI FN-19, Aarhus University, September 1981.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alessandro Giacalone .

Editor information

Michael S. Paterson

Rights and permissions

Reprints 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

Publish with us

Policies and ethics