Skip to main content

Schematic: A concurrent object-oriented extension to Scheme

  • Massively Parallel Programming Languages
  • Conference paper
  • First Online:
Object-Based Parallel and Distributed Computation (OBPDC 1995)

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

Abstract

A concurrent object-oriented extension to the programming language Scheme, called Schematic, is described. Schematic supports familiar constructs often used in typical parallel programs (future and higher-level macros such as plet and pbegin), which are actually defined atop a very small number of fundamental primitives. In this way, Schematic achieves both the convenience for typical concurrent programming and simplicity and flexibility of the language kernel. Schematic also supports concurrent objects which exhibit more natural and intuitive behavior than the “bare” (unprotected) shared memory, and permit intra-object concurrency. Schematic will be useful for intensive parallel applications on parallel machines or networks of workstations, concurrent graphical user interface programming, distributed programming over network, and even concurrent shell programming.

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. Gul A. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. The MIT Press, Cambridge, Massachusetts, 1986.

    Google Scholar 

  2. Thomas E. Anderson, David E. Culler, David A. Patterson, and the NOW Team. A case for NOW (networks of workstations). IEEE Micro, 15(1):54–64, February 1995.

    Google Scholar 

  3. Yariv Aridor. An Efficient Software Environment for Implicit Parallel Programming with a Multi-Paradigm Language. PhD thesis, the Senate of Tel-Aviv University, 1995.

    Google Scholar 

  4. W. C. Athas and C. L. Seitz. Cantor user report version 2.0. Technical report, Computer Science Department, California Institute of Technology, 1987.

    Google Scholar 

  5. Nanette J. Boden, Danny Cohen, Robert E. Felderman, Alan E. Kulawik, Charles L. Seitz, Jakov N. Seizovic, and Wen-King Su. Myrinet: A gigabit-per-second local area network. IEEE Micro, 15(1):29–36, February 1995.

    Google Scholar 

  6. F. Bodin, P. Beckman, D. Gannon, S. Yang, S. Kesavan, A. Malony, and B. Mohr. Implementing a parallel C++ runtime system for scalable parallel systems. In Proceedings of Supercomputing, pages 588–597, 1993.

    Google Scholar 

  7. K. Mani Chandy and Carl Kesselman. CC++: A declarative concurrent object-oriented programming notation. In Gul Agha, Peter Wegner, and Akinori Yonezawa, editors, Research Directions in Concurrent Object-Oriented Programming, chapter 11, pages 281–313. The MIT Press, 1993.

    Google Scholar 

  8. Andrew Chien, M. Straka, Julian Dolby, Vijay Karamcheti, John Plevyak, and Xingbin Zhang. A case study in irregular parallel programming. In Proceedings of the DIMACS workshop on Specification of Parallel Algorithms, 1994.

    Google Scholar 

  9. Andrew A. Chien. Concurrent Aggregates (CA). PhD thesis, MIT, 1991.

    Google Scholar 

  10. Andrew A. Chien and William J. Dally. Concurrent aggregates (CA). In Proceedings of the Second ACM SIGPLAN Symposium on Princeples & Practice of Parallel Programming, pages 187–196, Seattle, Washington, March 1990.

    Google Scholar 

  11. Andrew. A. Chien, U. S. Reddy, J. Plevyak, and J. Dolby. ICC++ — a C++ dialect for high performance parallel computing. In Proceedings of the Second International Symposium on Object Technologies for Advanced Software (To appear), 1996.

    Google Scholar 

  12. High Performance Fortran Forum. HPF-2 Scope of Activities and Motivating Applications, 1994.

    Google Scholar 

  13. Ananth Y. Grama, Vipin Kumar, and Ahmed Sameh. Scalable parallel formulation of the Barnes-Hut method for n-body simulations. In Proceedings of Supercomputing '94, pages 439–448, 1994.

    Google Scholar 

  14. Robert H. Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, April 1985.

    Google Scholar 

  15. Kenichi Hayashi, Tunehisa Doi, Takeshi Horie, Yoichi Koyanagi, Osamu Shiraki, Nobutaka Imamura, Toshiyuki Shimizu, Hiroaki Ishihata, and Tatsuya Shindo. AP1000+: Architectural support of put/get interface for parallelizing compiler. In Proceedings of Architectural Support for Programming Languages and Operating Systems, pages 196–207, 1994.

    Google Scholar 

  16. Maurice P. Herlihy. A methodology for implementing highly concurrent data objects. ACM Transactions on Programming Languages and Systems, 15(5):745–770, 1993.

    Google Scholar 

  17. Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463–492, 1990.

    Google Scholar 

  18. Waldemar Horwat, Andrew A. Chien, and William J. Dally. Experience with CST: Programming and implementation. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 101–109, Portland, Oregon, July 1989.

    Google Scholar 

  19. Yutaka Ishikawa. The MPC++ Programming Language V1.0 Specification with Commentary Document Version 0.1. Technical Report TR-94014, RWC, June 1994. http://www. rwcp. or. jp/people/mpslab/ mpc++/mpc++. html.

    Google Scholar 

  20. Naoki Kobayashi and Akinori Yonezawa. Higher-order concurrent linear logic programming. In Proceedings of Workshop on Theory and Practice of Parallel Programming (TPPP), volume 907 of Lecture Notes in Computer Science, pages 137–166. Springer Verlag, 1994. http:// web.yl.is.s.u-tokyo.ac. jp/pl/hacl.html.

    Google Scholar 

  21. Robin Milner. The polyadic π-calculus: A tutorial. Technical Report ECS-LFCS-91-180, University of Edinburgh, 1991.

    Google Scholar 

  22. Akihiro Nakaya, Kenji Yamamoto, and Akinori Yonezawa. RNA secondary structure prediction using highly parallel computers. Comput. Applic. Biosci. (CABIOS) (to appear), 11, 1995.

    Google Scholar 

  23. Benjamin C. Pierce and David N. Turner. Concurrent objects in a process calculus. In Proceedings of Workshop on Theory and Practice of Parallel Programming (TPPP), volume 907 of Lecture Notes in Computer Science, pages 187–215. Springer Verlag, 1994.

    Google Scholar 

  24. Benjamin C. Pierce and David N. Turner. PICT: A programming language based on the Pi-Calculus. Technical report in preparation; available electronically, 1995.

    Google Scholar 

  25. John H. Reppy. CML: A higher-order concurrent language. In Proceedings of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 293–305, 1991.

    Google Scholar 

  26. John Sargeant. United functions and objects: An overview. Technical report, Department of Computer Science, University of Manchester, 1993.

    Google Scholar 

  27. John Sargeant. Uniting functional and object-oriented programming. In Shojiro Nishio and Akinori Yonezawa, editors, Proceedings of First JSSST International Symposium on Object Technologies for Advanced Software, volume 742 of Lecture Notes in Computer Science, pages 1–26. Springer-Verlag, 1993.

    Google Scholar 

  28. Toshiyuki Shimizu, Takeshi Horie, and Hiroaki Ishihata. Low-latency message communication support for the AP1000. In The 19th Annual International Symposium on Computer Architecture, pages 288–297, 1992.

    Google Scholar 

  29. Olin Shivers. Data-flow analysis and type recovery in Scheme. In Peter Lee, editor, Topics in Advanced Language Implementation, chapter 3, pages 47–87. The MIT Press, 1991.

    Google Scholar 

  30. Kenjiro Taura, Satoshi Matsuoka, and Akinori Yonezawa. An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers. In Proceedings of the ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming PPOPP, pages 218–228, 1993. http://web.yl.is.s.u-tokyo.ac.jp/pl/schematic.html.

    Google Scholar 

  31. Kenjiro Taura, Satoshi Matsuoka, and Akinori Yonezawa. ABCL/f: A future-based polymorphic typed concurrent object-oriented language — its design and implementation-. In G. Blelloch, M. Chandy, and S. Jagannathan, editors, Proceedings of the DIMACS workshop on Specification of Parallel Algorithms, number 18 in Dimacs Series in Discrete Mathematics and Theoretical Computer Science, pages 275–292. American Mathematical Society, 1994. http://web.yl.is.s.u-tokyo.ac.jp/pl/ schematic.html.

    Google Scholar 

  32. Kenjiro Taura, Satoshi Matsuoka, and Akinori Yonezawa. Stack Threads: An abstract machine for scheduling fine-grain threads on stock CPUs. In Proceedings of Workshop on Theory and Practice of Parallel Programming (TPPP), number 907 in Lecture Notes in Computer Science, pages 121–136. Springer Verlag, 1994. http://web.yl.is.s.u-tokyo.ac.jp/pl/ schematic.html.

    Google Scholar 

  33. Thorsten von Eicken, Anindya Basu, and Vineet Buch. Low-latency communication over ATM networks using active messages. IEEE Micro, 15(1):46–53, February 1995.

    Google Scholar 

  34. William Weihl, Eric Brewer, Adrian Colbrook, Chrysanthos Dellarocas, Wilson Hsieh, Anthony Joseph, Carl Waldspurger, and Paul Wang. PRELUDE: A system fpr portable parallel software. Technical Report MIT/LCS/TR-519, Laboratory for Computer Science, Massachusetts Institute of Technology, 1991.

    Google Scholar 

  35. Akinori Yonezawa. ABCL: An Object-Oriented Concurrent System—Theory, Language, Programming, Implementation and Application. The MIT Press, 1990.

    Google Scholar 

  36. Akinori Yonezawa, Jean-Pierre Briot, and Etsuya Shibayama. Object-oriented concurrent programming in ABCL/1. In OOPSLA '86 Conference Proceedings, pages 258–268, 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jean-Pierre Briot Jean-Marc Geib Akinori Yonezawa

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Taura, K., Yonezawa, A. (1996). Schematic: A concurrent object-oriented extension to Scheme. In: Briot, JP., Geib, JM., Yonezawa, A. (eds) Object-Based Parallel and Distributed Computation. OBPDC 1995. Lecture Notes in Computer Science, vol 1107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61487-7_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-61487-7_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61487-6

  • Online ISBN: 978-3-540-68672-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics