Skip to main content

C**: A large-grain, object-oriented, data-parallel programming language

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1992)

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

Abstract

C** is a new data-parallel programming language based on a new computation model called largegrain data parallelism. C** overcomes many disadvantages of existing data-parallel languages, yet retains their distinctive and advantageous programming style and deterministic behavior. This style makes data parallelism well-suited for massively-parallel computation. Large-grain data parallelism enhances data parallelism by permitting a wider range of algorithms to be expressed naturally.

C** is an object-oriented programming language that inherits data abstraction features from C++. Existing scientific programming languages do not provide modern programming facilities such as operator extensibility, abstract datatypes, or object-oriented programming. C**- and its sequential subset C++-support modern programming practices and enable a single language to be used for all parts of large, complex programs and libraries.

This work was supported by the National Science Foundation under grants CCR-9101035 and CDA-9024618.

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. Guy E. Blelloch. Vector Models for Data-Parallel Computing. MIT Press, 1990.

    Google Scholar 

  2. Guy E. Blelloch. NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-92-103, Department of Computer Science, Carnegie Mellon University, January 1992.

    Google Scholar 

  3. Guy E. Blelloch and Gary W. Sabot. Compiling Collection-Oriented Languages onto Massively Parallel Computers. Journal of Parallel and Distributed Computing, 8:119–134, 1990.

    Google Scholar 

  4. Timothy A. Budd. An APL Compiler for a Vector Processor. ACM Transactions on Programming Languages and Systems, 6(3):297–313, July 1984.

    Google Scholar 

  5. Craig M. Chase, Alex L. Cheung, Anthony P. Reeves, and Mark R. Smith. Paragon: A Parallel Programming Environment for Scientific Applications Using Communication Structures. In Proceedings of the 1991 International Conference on Parallel Processing (Vol. II Software), pages II-211–218, August 1991.

    Google Scholar 

  6. Andrew A. Chien and William J. Dally. Concurrent Aggregates (CA). In Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP), pages 187–196, February 1990.

    Google Scholar 

  7. Philip J. Hatcher and Michael J. Quinn. Data-Parallel Programming on MIMD Computers. MIT Press, 1991.

    Google Scholar 

  8. W. Daniel Hillis and Guy L. Steele, Jr. Data Parallel Algorithms. Communications of the ACM, 29(12):1170–1183, December 1986.

    Google Scholar 

  9. Jenq Kuen Lee and Dennis Gannon. Object Oriented Parallel Programming Experiments and Results. In Proceedings of Supercomputing 91, pages 273–282, Albuquerque, NM, November 1991.

    Google Scholar 

  10. Christos Papadimitriou. The Theory of Database Concurrency Control. Computer Science Press, 1986.

    Google Scholar 

  11. John R. Rose. C*: A C++-like Language for Data-Parallel Computation. Technical Report PL-87-8, Thinking Machines Corporation, December 1987. Appeared in Usenix C++ Workshop Proceedings.

    Google Scholar 

  12. John R. Rose and Guy L. Steele Jr. C*: An Extended C Language for Data Parallel Programming. In Proceedings of the Second International Conference on Supercomputing, pages 2–16, Santa Clara, California, May 1987.

    Google Scholar 

  13. Guy L. Steele Jr. Making Asynchronous Parallelism Safe for the World. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, pages 218–231, January 1990.

    Google Scholar 

  14. Thinking Machines Corporation. C* Reference Manual, Version 4.0, August 1987.

    Google Scholar 

  15. Thinking Machines Corporation. Supplement to C* Reference Manual, Version 4.3, May 1988.

    Google Scholar 

  16. Thinking Machines Corporation. C* Reference Manual, Version 6.0 Pre-Beta, July 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Larus, J. (1993). C**: A large-grain, object-oriented, data-parallel programming language. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_56

Download citation

  • DOI: https://doi.org/10.1007/3-540-57502-2_56

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57502-3

  • Online ISBN: 978-3-540-48201-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics