View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

OOP Lang C

Back to OOP Languages

OOP Lang C


Thinking Machines, 1987. Superset of ANSI C, object-oriented, data-
parallel with synchronous semantics, for the Connection Machine. Adds a
data type, the 'domain', and a selection statement for parallel execution
in domains. J.R. Rose et al, "C*: An Extended C Language for Data Parallel
Programming", in Proc Second Intl Conf on Supercomputing, L.P. Kartashev et
al eds, May 1987, pp.2-16. "C* Programming Manual", Thinking Machines
Corp, 1986. Version: 6.x


Stroustrup . An object-oriented superset of C. In
C++ a class is a user-defined type, syntactically a struct with member
functions. Constructors and destructors are member functions called to
create or destroy instances. A friend is a nonmember function that is
allowed to access the private portion of a class. C++ allows implicit type
conversion, function inlining, overloading of operators and function names,
default function arguments, and pass by reference. It has streams for I/O.
"The C++ Programming Language", Bjarne Stroustrup, A-W 1986 (1st edition),
1991 (2nd edition).
for MS-DOS
for Unix
draft ANSI C++ - X3J16 committee. Exceptions.
C++ release 2.0 - May 1989. Added multiple inheritance, type-safe
linkage, pointers to members, abstract classes. "C++ 2.0 Draft Reference
C++ release 2.1 - Added nested types. "The Annotated C++ Reference
Manual", M. Ellis et al, A-W 1990.
C++ release 3.0 - Added templates.


(formerly Calico). Bell Labs. Object-oriented language, uniformly
represents all data as a pointer to a self-described object. Provides
multiple inheritance with delegation, with control over which methods come
>from which delegated object. Default methodologies. Simple syntax, with
emphasis on graphics. Originally used for prototyping of telecommunication
services. "A Dynamic C-Based Object-Oriented System for Unix", S.
Engelstad et al, IEEE Software 8(3):73-85 (May 1991). "The C+@ Programming
Language", J. Fleming, Dr Dobbs J, Oct 1993, pp.24-32. Implementation for
SunOS, compiles to Vcode. Unir Tech, (800)222-8647.
Info: Jim Vandendorpe


Object-oriented language with fine-grained concurrency. Athas,
Caltech 1987. "Multicomputers: Message Passing Concurrent Computers", W.
Athas et al, Computer 21(8):9-24 (Aug 1988).


Object-oriented language combining multi-methods with a classless
object model, object-based encapsulation, and optional static type
checking. Distinguishes between subtyping and code inheritance. Includes
both explicit and implicit parameterization of objects, types, and methods.
"The Cecil Language: Specification and Rationale", C. Chambers, TR 93-03-
05, U Wash (Mar 1993).

CESP - Common ESP. AI Language Inst, Mitsubishi

Object-oriented extension
of Prolog, a Unix-based version of ESP[3].


An object-oriented parallel programming system, similar to CHARM
but based on C++. TR 1796, UIUC.
Info: Sanjeev Krishnan


Object-oriented Prolog-like language. "CIEL: Classes et Instances
En Logique", M. Gandriau, Thesis ENSEEIHT (1988).


Object-oriented extension to Ada, said to be Smalltalk-like.
Implemented as an Ada preprocessor.


C Language Integrated Production System. NASA JSC. A language for
developing expert systems, with the inferencing and representation
capabilities of OPS5, and support for three paradigms: forward chaining
rule-based, object-oriented and procedural. LISP-like syntax. Available
for MS-DOS, comes with source code in C. COSMIC, U Georgia, (404) 542-
3265. Austin Code Works (512)258-0785. "Expert Systems:
Principles and Programming", Joseph Giarratano and Gary Riley, PWS Publ
1994, ISBN 0-534-93744-6. Versions: CLIPS 5.1, CLIPS/Ada 4.3, CLIPS6.0


"Overview of a Parallel Object-Oriented Language CLIX", J. Hur et
al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273.


Common LISP Object System. Object-oriented extension to Common
226 Transfer complete.? From Sun Jan 29 14:26:24 PST 1995


CLUster. 1974-1975. CLU is an object-oriented language of the
Pascal family designed to support data abstraction, similar to Alphard.
Introduced the iterator: a coroutine yielding the elements of a data
object, to be used as the sequence of values in a 'for' loop.
A CLU program consists of separately compilable procedures, clusters
and iterators, no nesting. A cluster is a module naming an abstract type
and its operations, its internal representation and implementation.
Clusters and iterators may be generic. Supplying actual constant values
for the parameters instantiates the module.
There are no implicit type conversions. In a cluster, the explicit
type conversions 'up' and 'down' change between the abstract type and the
representation. There is a universal type 'any', and a procedure force[]
to check that an object is a certain type. Objects may be mutable or
immutable. Garbage collection is built in.
Exceptions are raised using 'signal' and handled with 'except'.
Assignment is by sharing, similar to the sharing of data objects in LISP.
Arguments are passed by call-by-sharing, similar to call by value, except
that the arguments are objects and can be changed only if they are mutable.
CLU has own variables and multiple assignment.
TED (a text editor), R (a document formatter), SWIFT (an operating
system), and lp (a proof tool used for formal specification) have been
written in CLU.
"Abstraction and Specification in Program Development", Barbara Liskov
and John Guttag, McGraw-Hill, 1986. "CLU Reference Manual", Barbara Liskov
et al, LNCS 114, Springer 1981.
contact: Paul R. Johnson

Cluster 86

Shang, Nanjing U ca1986. Distributed object-oriented
language. A cluster is a metatype. "Cluster: An Informal Report", L.
Shang , SIGPLAN Notices 26(1):57-76 (Jan 1991).
Versions for MS-DOS, Unix.


(a blend of C and O2). Object-oriented database language. GIP
Altair, Versailles, France. Francois Bancilon et al, in Advances in
Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer


Xerox. An object-oriented LISP. Led to CLOS. "CommonLoops:
Merging Lisp and Object-Oriented Programming", D.G. Bobrow et al, SIGPLAN
Notices 21(11):17-29 (Nov 1986). (See CLOS, PCL).

Common Objects

H-P. An object-oriented LISP. "Inheritance and the
Development of Encapsulated Software Components", A. Snyder, Proc 20th
Hawaii Conf on Sys Sci, pp.227-238 (1987).

Concurrent Aggregates (CA)

1990. Concurrent object-oriented language
based on the Actor model plus RPC. Pure object oriented, single
inheritance, with first class selectors, continuations and messages.
"Concurrent Aggregates: Supporting Modularity in Massively Parallel
Programs", Andrew A. Chien. Compiler for CM5 and workstations.
Info: http//


Concurrent variant of Smalltalk (what did you
expect). "Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et al
in Object-Oriented Concurrent Programming, A. Yonezawa et al eds, MIT Press
1987, pp.129-158.


Object-oriented constraint language based on CSP. An
extension of Common Lisp and CLOS. "ConstraintLisp: An Object-Oriented
Constraint Programming Language", Bing Liu et al, SIGPLAN
Notices 27(11):17-26 (Nov 1992).


Concurrent Object-Oriented C. Toshiba. Concurrent object execution
with synchronous or asynchronous message passing. Implemented for SunOS.
SIGPLAN Notices 28(2) [?]


Concurrent Object-Oriented Language. An extension of C++ with
task-level parallelism for shared-memory multiprocessors. "COOL: A
Language for Parallel Programming", R. Chandra et al in Languages and
Compilers for Parallel Computing, D. Gelernter et al eds, MIT Press 1990,

Info: Rohit Chandra

CLIPS Object-Oriented Language?


Object-oriented language. "Key Concepts in the INCAS Multicomputer
Project", J. Nehmer et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987).

Links to this Page