Nothing Special   »   [go: up one dir, main page]

Skip to main content
  • 127 Accesses

Synonyms

Eventual values; Promises

Definition

The programming language construct “future E” indicates that the evaluation of the expression “E” may proceed in parallel with the evaluation of the rest of the program. It is typically implemented by immediately returning a future object that is a proxy for the eventual value of “E.” Attempts to access the value of an undetermined future object block until that value is determined.

Discussion

Introduction

The construct “future E” permits the run-time system to evaluate the expression “E” in parallel with the rest of the program. To initiate parallel evaluation, the run-time system forks a parallel task that evaluates “E,” and also creates an object known as a future object that will eventually contain the result of that computation of “E.” The future object is initially undetermined, and becomes determined or resolvedonce the parallel task evaluates “E” and updates (or resolves/fulfils/binds) the future object to contain the result of...

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 379.99
Price excludes VAT (USA)
  • Durable hardcover 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

Bibliography

  1. Halstead R (Oct 1985) Multilisp: A language for concurrent symbolic computation. ACM Trans Program Lang Syst 7(4):501–538

    MATH  Google Scholar 

  2. Feeley M (1993) An efficient and general implementation of futures on large scale shared-memory multiprocessors. PhD thesis, Department of Computer Science, Brandeis University

    Google Scholar 

  3. Flanagan C, Felleisen M (1995) The semantics of future and its use in program optimization. In: Proceedings of the ACM SIGPLAN-SIGACT symposium on the principles of programming languages. POPL’95, pp 209–220

    Google Scholar 

  4. Moreau L (1994) Sound evaluation of parallel functional programs with first-class continuations. PhD thesis, Universite de Liege

    Google Scholar 

  5. Kranz D, Halstead R, Mohr E (1989) Mul-T: A high performance parallel lisp. In: Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, Portland, pp 81–90

    Google Scholar 

  6. Knueven P, Hibbard P, Leverett B (June 1976) A language system for a multiprocessor environment. In: Proceedings of the 4th international conference on design and implementation of algorithmic languages, Courant Institute of mathematical Studies, New York, pp 264–274

    Google Scholar 

  7. Friedman DP, Wise DS (1976) The impact of applicative programming on multiprocessing. 1976 International conference on parallel processing, pp 263–272

    Google Scholar 

  8. Welc A, Jagannathan S, Hosking A (2005) Safe futures for Java. In: Proceedings of the 20th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications (OOPSLA 2005), ACM, pp 439–453

    Google Scholar 

  9. Baker H, Hewitt C (Aug 1977) The incremental garbage collection of processes. In: Proceedings of symposium on AI and programming languages, ACM SIGPLAN Notices 12(8): 55–59

    Google Scholar 

  10. Moreau L (1996) The semantics of scheme with future. In: Proceedings of the first ACM SIGPLAN international conference on functional programming, pp 146–156

    Google Scholar 

  11. Mohr E, Kranz D, Halstead R (1990) Lazy task creation: a technique for increasing the granularity of parallel programs. In: Proceedings of the 1990 ACM conference on LISP and functional programming, pp 185–197

    Google Scholar 

  12. Arvind, Nikhil RS, Pingali KK (1989) I-Structures: Data structures for parallel computing. ACM Trans Program Lang Syst 11(4):598–632

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Flanagan, C. (2011). Futures. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_482

Download citation

Publish with us

Policies and ethics