The C++ programming language
Inheritance and synchronization in concurrent OOP
European conference on object-oriented programming on ECOOP '87
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
PRESTO: a system for object-oriented parallel programming
Software—Practice & Experience
Concurrent C++: concurrent programming with class(es)
Software—Practice & Experience
Object-oriented concepts, databases, and applications
Object-oriented concepts, databases, and applications
Concurrent object-oriented programming languages
Object-oriented concepts, databases, and applications
Inheritance in actor based concurrent object-oriented languages
The Computer Journal - Special issue on object-oriented programming
Inheritance and synchronization with enabled-sets
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
ACT++: building a concurrent C++ with actors
Journal of Object-Oriented Programming
COOL: a language for parallel programming
Selected papers of the second workshop on Languages and compilers for parallel computing
The design of the C++ Booch Components
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
&mgr;C++: concurrency in the object-oriented language C++
Software—Practice & Experience
CHARM++: a portable concurrent object oriented system based on C++
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
ABC++: concurrency by inheritance in C++
IBM Systems Journal
The structure of the “THE”-multiprogramming system
Communications of the ACM
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
A Concurrency Control Mechanism for C++ Objects
ECOOP '91 Proceedings of the Workshop on Object-Based Concurrent Computing
Hi-index | 0.00 |
C++ is increasingly becoming the language of choice among software developers. It is therefore not surprising to see the many attempts that have been made to add concurrency to C++. Concurrency can be added to C++ either by extending the language or through the use of a class library.There is much debate among language designers about the approach to take in the integration of two paradigms of concurrency and object-oriented programming (OOP). The library approach keeps the language small, allows the programmer to work with familiar compilers and tools, provides the option of sup - porting many concurrent models through a variety of libraries, and eases porting of code to other architectures (usually, a small amount of assembler code needs to be changed). Software developers typically have large investments in existing code and are reluctant to adopt a new language. A class library with sufficient flexibility that can provide most of the functionality of a new or extended language is often more palatable. On the other hand, new or extended languages can use the compiler to provide higher-level constructs, compile-time type checking, and enhanced performance.The Parallel Computing Project at the Centre for Advanced Studies has been researching the possibility of adding concurrency to C++ with the assistance of a class library. The library consists of two layers. The bottom layer provides a set of low level concurrency primitives. The top layer, ABC++, uses the bottom layer to provide implicit parallelism. To our knowledge, ABC++ is the only concurrent class library that provides almost all of the functionality of extended languages without requiring the users to deal with explicit concurrency control and without imposing severe limitations. This paper outlines the progress of the project, the low level concurrency primitives and describes how ABC++ differs from other existing concurrent class libraries for C++.