Skip to main content

Concurrent ML: Design, application and semantics

  • Chapter
  • First Online:
Functional Programming, Concurrency, Simulation and Automated Reasoning

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

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. Abramsky, S. and R. Bornat. Pascal-m: A language for loosely coupled distributed systems. In Y. Paker and J.-P. Verjus (eds.), Distributed Computing Systems, pp. 163–189. Academic Press, New York, N.Y., 1986.

    Google Scholar 

  2. Agha, G. Actors: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge, Mass., 1986.

    Google Scholar 

  3. Appel, A. W. and D. B. MacQueen. A Standard ML compiler. In Functional Programming Languages and Computer Architecture, vol. 274 of Lecture Notes in Computer Science. Springer-Verlag, September 1987, pp. 301–324.

    Google Scholar 

  4. Andrews, G. R. Concurrent Programming: Principles and Practice. Benjamin/Cummings, Redwood City, California, 1991.

    Google Scholar 

  5. Andrews, G. R., R. A. Olsson, M. Coffin, and I. Elshoff. An overview of the SR language and implementation. ACM Transactions on Programming Languages and Systems, 10(7), January 1988, pp. 51–86.

    Google Scholar 

  6. Appel, A. W. Compiling with Continuations. Cambridge University Press, New York, N.Y., 1992.

    Google Scholar 

  7. Andrews., G. R. and F. B. Schneider. Concepts and notations for concurrent programming. ACM Computing Surveys, 15(1), March 1983, pp. 3–43.

    Google Scholar 

  8. Berry, G. and G. Boudol. The chemical abstract machine. In Conference Record of the 17th Annual ACM Symposium on Principles of Programming Languages, January 1990, pp. 81–94.

    Google Scholar 

  9. [BCJ+90] Birman, K., R. Cooper, T. A. Joseph, K. Marzullo, M. Makpangou, K. Kane, F. Schmuck, and M. Wood. The ISIS system manual, version 2.0. Department of Computer Science, Cornell University, Ithaca, N.Y., March 1990.

    Google Scholar 

  10. Berry, D., R. Milner, and D. N. Turner. A semantics for ML concurrency primitives. In Conference Record of the 19th Annual ACM Symposium on Principles of Programming Languages, January 1992, pp. 119–129.

    Google Scholar 

  11. Bornat, R. A protocol for generalized occam. Software — Practice and Experience, 16(9), September 1986, pp. 783–799.

    Google Scholar 

  12. Burns, A. Programming in occam 2. Addison-Wesley, Reading, Mass., 1988.

    Google Scholar 

  13. Cardelli, L. Amber. In Combinators and Functional Programming Languages, vol. 242 of Lecture Notes in Computer Science. Springer-Verlag, July 1986, pp. 21–47.

    Google Scholar 

  14. Cooper, R. and C. D. Krumvieda. Distributed programming with asynchronous ordered channels in Distributed ML. In Proceedings of the 1992 ACM SIGPLAN Workshop on ML and its Applications, June 1992, pp. 134–148.

    Google Scholar 

  15. Cooper, E. C. and J. G. Morrisett. Adding threads to Standard ML. Technical Report CMU-CS-90-186, School of Computer Science, Carnegie Mellon University, December 1990.

    Google Scholar 

  16. Constable, R. et al. Implementing Mathematics with The Nuprl Development System. Prentice-Hall, Englewood Cliffs, N.J., 1986.

    Google Scholar 

  17. Cardelli, L. and R. Pike. Squeak: A language for communicating with mice. In SIGGRAPH '85, July 1985, pp. 199–204.

    Google Scholar 

  18. Duba, B., R. Harper, and D. MacQueen. Type-checking first-class continuations. In Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages, January 1991, pp. 163–173.

    Google Scholar 

  19. Felleisen, M. and D. P. Friedman. Control operators, the SECD-machine, and the λ-calculus. In M. Wirsing (ed.), Formal Description of Programming Concepts — III, pp. 193–219. North-Holland, New York, N.Y., 1986.

    Google Scholar 

  20. George, L. and G. Lindstrom. Using a functional language and graph reduction to program multiprocessor machines. Technical Report UUCS-91-020, Department of Computer Science, University of Utah, October 1991.

    Google Scholar 

  21. Giacalone, A., P. Mishra, and S. Prasad. Facile: A symemetric integration of concurrent and functional programming. In TAPSOFT'89 (vol. 2), vol. 352 of Lecture Notes in Computer Science. Springer-Verlag, March 1989, pp. 184–209.

    Google Scholar 

  22. Gansner, E. R. and J. H. Reppy. eXene. In Proceedings of the 1991 CMU Workshop on Standard ML, Carnegie Mellon University, September 1991.

    Google Scholar 

  23. Gansner, E. R. and J. H. Reppy. A foundation for user interface construction.In B. A. Myers (ed.), Languages for Developing User Interfaces, pp. 239–260. Jones & Bartlett, Boston, Mass., 1992.

    Google Scholar 

  24. Haahr, D. Montage: Breaking windows into small pieces. In USENIX Summer Conference, June 1990, pp. 289–297.

    Google Scholar 

  25. Harper, R. Introduction to Standard ML. Technical Report ECS-LFCS-86-14, Laboratory for Foundations of Computer Science, Computer Science Department, Edinburgh University, August 1986.

    Google Scholar 

  26. Hieb, R., R. K. Dybvig, and C. Bruggeman. Representing control in the presence of first-class continuations. In Proceedings of the SIGPLAN'90 Conference on Programming Language Design and Implementation, June 1990, pp. 66–77.

    Google Scholar 

  27. Holmström, S. PFL: A functional language for parallel programming. In Declarative programming workshop, April 1983, pp. 114–139.

    Google Scholar 

  28. [KKR+86] Kranz, D., R. Kelsey, J. Rees, P. Hudak, J. Philbin, and N. Adams. Orbit: An optimizing compiler for Scheme. In Proceedings of the SIGPLAN'86 Symposium on Compiler Construction, July 1986, pp. 219–233.

    Google Scholar 

  29. Krumvieda, C. D. DML: Packaging high-level distributed abstractions in SML. In Proceedings of the 1991 CMU Workshop on Standard ML, September 1991.

    Google Scholar 

  30. Krumvieda, C. D. Expressing fault-tolerant and consistency-preserving programs in Distributed ML. In Proceedings of the 1992 ACM SIGPLAN Workshop on ML and its Applications, June 1992, pp. 157–162.

    Google Scholar 

  31. Liskov, B., D. Curtis, P. Johnson, and R. Scheifler. Implementation of Argus. In Proceedings of the 11th ACM Symposium on Operating System Principles, November 1987, pp. 111–122.

    Google Scholar 

  32. Lieberman, H. Using prototypical objects to implement shared behavior in object oriented systems. In OOPSLA '86 Proceedings, September 1986, pp. 214–223.

    Google Scholar 

  33. Liskov, B. and L. Shrira. Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation, June 1988, pp. 260–267.

    Google Scholar 

  34. MacQueen, D. B. Modules for Standard ML. In Conference record of the 1984 ACM Conference on Lisp and Functional Programming, July 1984, pp. 198–207.

    Google Scholar 

  35. Matthews, D. C. J. Processes for Poly and ML. In Papers on Poly/ML, Technical Report 161. University of Cambridge, February 1989.

    Google Scholar 

  36. Milner, R. and M. Tofte. Commentary on Standard ML. The MIT Press, Cambridge, Mass, 1991.

    Google Scholar 

  37. Milner, R., M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, Cambridge, Mass, 1990.

    Google Scholar 

  38. Nye, A. Xlib Programming Manual, vol. 1. O'Reilly & Associates, Inc., 1990.

    Google Scholar 

  39. Ophel, J. An introduction to the high-level language Standard ML, 1992. In this volume.

    Google Scholar 

  40. Paulson, L. C. ML for the Working Programmer. Cambridge University Press, New York, N.Y., 1991.

    Google Scholar 

  41. Pellerin, C. The concurrent constraint programming language taskell. Master's dissertation, School of Computer Science, McGill University, Montréal, Québec, Canada, January 1992.

    Google Scholar 

  42. Prasad, S., A. Giacalone, and P. Mishra. Operational and algebraic semantics for Facile: A symemetric integration of concurrent and functional programming. In Proceedings of the 17th International Colloquium on Automata, Languages and Programming, vol. 443 of Lecture Notes in Computer Science. Springer-Verlag, July 1990, pp. 765–780.

    Google Scholar 

  43. Pike, R. A concurrent window system. Computing Systems, 2(2), 1989, pp. 133–153.

    Google Scholar 

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

    Google Scholar 

  45. Ramsey, N. Concurrent programming in ML. Technical Report CS-TR-262-90, Department of Computer Science, Princeton University, April 1990.

    Google Scholar 

  46. Reppy, J. H. Synchronous operations as first-class values. In Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation, June 1988, pp. 250–259.

    Google Scholar 

  47. Reppy, J. H. First-class synchronous operations in Standard ML. Technical Report TR 89–1068, Department of Computer Science, Cornell University, December 1989.

    Google Scholar 

  48. Reppy, J. H. Asynchronous signals in Standard ML. Technical Report TR 90–1144, Department of Computer Science, Cornell University, August 1990.

    Google Scholar 

  49. Reppy, J. H. Concurrent programming with events — The Concurrent ML manual. Department of Computer Science, Cornell University, Ithaca, N.Y., November 1990. (Last revised October 1991).

    Google Scholar 

  50. Reppy, J. H. CML: A higher-order concurrent language. In Proceedings of the SIGPLAN'91 Conference on Programming Language Design and Implementation, June 1991, pp. 293–305.

    Google Scholar 

  51. Reppy, J. H. An operational semantics of first-class synchronous operations. Technical Report TR 91–1232, Department of Computer Science, Cornell University, August 1991.

    Google Scholar 

  52. Reppy, J. H. Higher-order concurrency. Ph.D. dissertation, Department of Computer Science, Cornell University, Ithaca, NY, January 1992. Available as Technical Report TR 92–1285.

    Google Scholar 

  53. Reppy, J. H. and E. R. Gansner. A foundation for programming environments. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, December 1986, pp. 218–227.

    Google Scholar 

  54. Scheifler, R. W. and J. Gettys. The X window system. ACM Transactions on Graphics, 5(2), April 1986, pp. 79–109.

    Google Scholar 

  55. Steele Jr., G. L. Rabbit: A compiler for Scheme. Master's dissertation, MIT, May 1978.

    Google Scholar 

  56. Tofte, M. Type inference for polymorphic references. Information and Computation, 89, 1990, pp. 1–34.

    Google Scholar 

  57. University of California, Berkeley. UNIX Programmer's Reference Manual (4.3bsd), 1986.

    Google Scholar 

  58. Wand, M. Continuation-based multiprocessing. In Conference Record of the 1980 Lisp Conference, August 1980, pp. 19–28.

    Google Scholar 

  59. Wright, A. and M. Felleisen. A syntactic approach to type soundness. Technical Report TR91-160, Department of Computer Science, Rice University, April 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to John H. Reppy .

Editor information

Peter E. Lauer

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Reppy, J.H. (1993). Concurrent ML: Design, application and semantics. In: Lauer, P.E. (eds) Functional Programming, Concurrency, Simulation and Automated Reasoning. Lecture Notes in Computer Science, vol 693. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56883-2_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-56883-2_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56883-4

  • Online ISBN: 978-3-540-47776-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics