Skip to main content

Temporal Constraint Functional Programming: A Declarative Framework for Concurrency and Interaction

  • Conference paper
Declarative Programming, Sasbachwalden 1991

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

  • 36 Accesses

Abstract

This paper introduces Temporal Constraint Functional Programming (TCFP), a declarative paradigm suitable for concurrent programming. The paper defines an example TCFP language, a method for specifying the semantics of TCFP languages, and the basis of a transformation methodology for TCFP programs. The main advantages of TCFP are:

  • Functional programs are free of control flow, allowing process bodies to be programmed without explicit reference to time or sequencing;

  • Through temporal constraints, I/O, communication and time are explicitly recognized in a declarative way, and are formalized as a natural extension to the semantics of the underlying functional language;

  • The temporal logic provides a natural abstraction for global and persistent state, long a problem in functional programming in the large;

  • The framework gives support for transformation of concurrent programs, the correctness of which can be demonstrated via proofs in temporal logic.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Warren Burton. Non-determinism with referential transparency in functional programming languages. The Computer Journal, 31 (3): 243–247, 1988.

    Article  MathSciNet  Google Scholar 

  2. Roland Dietrich, Birgit Heinz, and Hendrik C.R. Lock. Guarded functional programming and lazy streams. ESPRIT Basic Research Action 3147, the Phoenix project, Deliverable B. 2. 2 (ii), 1991.

    Google Scholar 

  3. Roland Dietrich and Hendrik C.R. Lock. Exploiting Non-Determinism through Laziness in Guarded Functional Languages. In TAPSOFT, 1991.

    Google Scholar 

  4. Dov Gabbay. The declarative past and imperative future. In Temporal Logic in Specification, volume LNCS 398, pages 409–448. Springer Verlag, 1987.

    Google Scholar 

  5. Andrew Gordon. PFL-i-: A kernel scheme for functional I/O. Technical report, University of Cambridge Computer Laboratory, March 1989.

    Google Scholar 

  6. T.C. Nicholas Graham. Temporal constraint functional programming: A semantic framework. ESPRIT Basic Research Action 3147, the Phoenix project, Deliverable B6. 1, 1991.

    Google Scholar 

  7. C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, London, 1985.

    MATH  Google Scholar 

  8. Paul Hudak, Philip Wadler, Arvind, Brian Boutel, Jon Fairburn, Joe Fasel, John Hughes, Thomas Johnsson, Dick Kieburtz, Simon Peyton Jones, Rishiyur Nikhil, Mike Reeve, David Wise, and Jonathon Young. Report on the functional programming language Haskell. Technical report, Yale University, December 1988.

    Google Scholar 

  9. Kent Karlsson. Nebula — a functional operating system. Technical report, Chalmers University, 1981.

    Google Scholar 

  10. Hendrik C.R. Lock. An amalgamation of functional and logic programming languages. Technical Report 408, GMD, September 1989.

    Google Scholar 

  11. Hendrik C.R. Lock and Stefan Jânichen. Linda meets functional programming. In Proceedings of the Second IEEE Workshop of Future Trends of Distributed Computing Systems, 1990.

    Google Scholar 

  12. R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes. Technical Report ECS-LFCS-89–85, Laboratory for Foundations of Computer Science, University of Edinburgh, 1989.

    Google Scholar 

  13. Robin Milner. The Standard ML Core Language. Polymorphism, 2 (2): 1–28, October 1985.

    Google Scholar 

  14. Robin Milner. Communication and Concurrency. Prentice-Hall, Hemel Hempstead, 1986.

    Google Scholar 

  15. Ross Paterson. Non-deterministic a-calculus: a core for integrated languages. Technical Report IC/FPG/Phoenix/7, Imperial College, University of London, January 1991.

    Google Scholar 

  16. Nigel Perry. I/O and inter-language calling for functional languages. In Proceedings of the Ninth International Conference of the Chilean Computer Science Society and Fifteenth Latin American Conference on Informatics, July 1989.

    Google Scholar 

  17. Robert W. Scheifler and Jim Gettys. The X window system. ACM Transactions on Graphics, 5 (2): 79–109, 1986.

    Article  Google Scholar 

  18. David A. Schmidt. Denotational Semantics: A Methodology for Language Development. Wm. C. Brown Publishers, Dubuque, Iowa, 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag London

About this paper

Cite this paper

Graham, T.C.N. (1992). Temporal Constraint Functional Programming: A Declarative Framework for Concurrency and Interaction. In: Darlington, J., Dietrich, R. (eds) Declarative Programming, Sasbachwalden 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3794-8_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3794-8_6

  • Publisher Name: Springer, London

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

  • Online ISBN: 978-1-4471-3794-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics