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:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
Orca
- Language type:
P - Parallel or Multi-programming
- Description:
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
reals.
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
message-passing systems.
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
platform, Amoeba.
- Origin:
Bal, Kaashoek, Tannenbaum et al, 1985-90.
- See Also:
- Remarks:
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
parallel systems.
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
systems.
An early version of Orca was used as the
expository language in the book
Programming Distributed Systems.
- Links:
- Date:
- 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);
BEGIN
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
OD;
END;
OPERATION get(x: OUT integer);
BEGIN
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
OD;
END;
END;
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 ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.