Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
P - Parallel or Multi-programming
Orca is a parallel-programming language based
on a shared-object data model, designed to
be compiled, and intended for portable
application development across a variety
of multiprogramming architectures.
The syntax of Orca is based on that of
Modula-2, and Orca supports the same
sequential control constructs that
Modula-2 does. Primitive data types in
Orca include characters, integers, and
Orca also supports arrays, and a
high-level graph type. The programmer
can define new Abstract Data Types (ADTs),
with data attributes and operations.
Orca is a strongly-typed language, designed
so that the compiler can catch a wide variety
of semantic errors.
The fundamental notion for parallelism in
Orca is that running programs on
different processors can share arbitrary
data structures, but that operations on
those structures are automatically
indivisible. This is essentially a
simple model for distributed objects,
and provides the
programmer with a good deal of flexibility
in implementing the elements of a parallel
system, while removing some of the low-level
worries encountered with
An alpha distribution of Orca can be
obtained from its principal developer,
Dr. H.E. Bal at Vrije University.
Information about the system on-line
consists mostly of journal and conference
papers about Orca and its original target
Bal, Kaashoek, Tannenbaum et al, 1985-90.
- See Also:
Orca provides a high-level shared data model
for parallel programming, in contrast to
systems that employ explicit
message passing (e.g. Occam)
and those that use paged
shared virtual memory.
Orca is used as a research vehicle for
exploring parallel algorithms and
mechanisms for efficient data handling in
The current implementations of the Orca
run-time environment are built to run on
top of a service layer named Panda.
The Panda virtual machine
provides communication and
thread support, hiding the system-dependent
details of these services from running
Orca programs. Orca runs on a variety
of parallel computers, as well as
Solaris and other general-purpose Unix
An early version of Orca was used as the
expository language in the book
Programming Distributed Systems.
- Sample code:
# An example object from the paper
# "Experiences with the Orca Programming Language"
# by Bal and Wilson
OBJECT IMPLEMENTATION buffer;
CONST MAXSIZE = 10; # Maximum size of the buffer
# Local state of the object:
buf:ARRAY[integer 0..MAXSIZE-1] OF integer; # the buffer itself
in, out: integer; # index of next element to put/get
size: integer; # current size
OPERATION put(x: integer);
GUARD size ! MAXSIZE DO # blocks until there is room
buf[in] := x; # store element
in := (in + 1) % MAXSIZE; # bump input index
size +:= 1; # increment size
OPERATION get(x: OUT integer);
GUARD size ? 0 DO # blocks while buffer is empty
x := buf[out]; # retrieve element
out := (out + 1) % MAXSIZE; # bump output index
size -:= 1; # decrement size
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.