C++ : a concurrent object-oriented programming language
Abstract
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.
Collections
- Retrospective theses [1604]