Abstract
Derivatives are introduced to provide optimistic computation as a programming language construct. The motivation is in avoiding communication latency in wide-area distributed computing environments. A derivative represents a handle on a value that has not yet been received, where moreover the potential receiver may take assumptions about the value in order to proceed. Derivatives can therefore be seena as a generalization of futures and promises, which have also been introduced in order to deal with latency. A programming language, type system and operational semantics are provided supporting optimistic execution.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Bibliography
David F. Bacon and Robert E. Strom. Optimistic parallelization of communicating sequential processes. In Symposium on Principles and Practice of Parallel Programming, 1991.
R. Rubenik and W. Zwanepoel. Semantics of optimistic computation. In International Conference on Distributed Computing Systems, pages 20–27, 1990.
Crispin Cowan and Hanan Lutfiyya. Formal semantics for expressing optimism. In Proceedings of ACM Symposium on Principles of Distributed Computing, 1995.
Alessandro Giacalone, Prateek Mishra, and Sanjiva Prasad. Facile: A symmetric integration of concurrent and functional programming. International Journal of Parallel Programming, 18(2):121–160, 1996
J. Gray, P. Helland, P. O’Neil, and D. Shasha. The dangers of replication and a solution. In Proceedings of the 1996 SIGMOD Conference, 1996.
Robert Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–537, 1985.
David Jefferson. Virtual time. ACM Transactions on Programming Languages and Systems, 7(3):404–420, 1985.
A. Joseph, A. F. deLespinasse, J. A. Tauber, D. K. Gifford and F. Kaashoek. Rover: A toolkit for mobile information access. In Symposium on Operating Systems Principles, 1995.
Morry Katz and Daniel Weise. Continuing into the future: On the interaction of futures and first-class continuations. In Proceedings of ACM Symposium on Lisp and Functional Programming, pages 176–184. ACM Press, 1990.
J. J. Kistler and M. Satyanarayanan. Disconnected operation in the Coda file system. ACM Transactions on Computer Systems, 10:3–25, 1992.
B. Liskov and L. Shrira. Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, 1998.
James S. Miller. MultiScheme: A Parallel Processing System Based on MIT Scheme. PhD thesis. MIT, 1987.
Luc Moreau. The semantics of Scheme with future. In Proceedings of ACM International Conference on Functional Programming, pages 146–156. ACM Press, 1996.
Hanne Riis Nielson and Flemming Nielson. Higher-order concurrent programs with finite communication topology. In Proceedings of ACM Symposium on Principles of Programming Languages, 84–97. ACM Press, 1994.
R. E. Strom and S. Yemini. Optimistic recovery in distributed systems. ACM Transactions on Computer Systems, 3(3):204–226, 1985.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Duggan, D. (1999). Derivatives: A Construct for Internet Programming. In: Bal, H.E., Belkhouche, B., Cardelli, L. (eds) Internet Programming Languages. ICCL 1998. Lecture Notes in Computer Science, vol 1686. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47959-7_6
Download citation
DOI: https://doi.org/10.1007/3-540-47959-7_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66673-8
Online ISBN: 978-3-540-47959-8
eBook Packages: Springer Book Archive