C++ : a concurrent object-oriented programming language
Master Of Science
SubjectC (Computer program language)
Object-oriented programming (Computer science)
Concurrent object-oriented programming (COOP)
MetadataShow full item record
Developing concurrent object-oriented programming (COOP) languages becomes an attractive research area since COOP languages are more suitable for simulation of real world objects and their interactions. After reviewing fundamentals of COOP languages and analyzing existing COOP languages, we propose a concurrent object-oriented programming language: CC++-. CC++ is an extension to object-oriented programming (OOP) language C++. It is extended by introducing five keywords, and incorporating process concepts and communication and synchronization mechanisms into C++. Meanwhile it retains the syntax and semantics of C++. The language distinguishes class (or passive) objects from process (or active) objects. The class objects are the ordinary objects in C++. The process objects, however, are coarse-grain concurrent entities. Each process object has a sequential control thread and an optional public interface that can be accessed by other process objects. The communication and synchronization between interacting process objects are accomplished through remote function call (RFC), which is an extension of remote procedure call (RPC) [Han78]. Two types of RFCs, blocked RFC and unblocked RFC are distinguished in CC++. The blocked RFC, along with guarded function and forward mechanism performs synchronous message passing. The unblocked RFC, however, provides a way to express asynchronous message passing. The guarded function is based on guarded commands [Dij 75], and is introduced for expressing and controlling indeterminism. The language has been implemented as an experimental system running on UNIX. The important objectives of CC++ are ease of programming, simple syntax, clear semantics and strong expressive power.