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
-
Obliq
- Language type:
- Description:
Obliq is an object-oriented interpreted
scripting language that supports
distributed multi-threaded computation.
The syntax of Obliq is similar to that of
Modula-3, but simpler and with no
support for type declarations. Obliq is
basically untyped, variables and fields
can hold any kind of value.
Basic data types include booleans,
integers, reals, characters, strings,
and arrays. Obliq supports a
complete set of sequential control structures
including conditional, iteration, and
exception handling forms,
as well as special control forms for
concurrency (mutexes, guarded statements).
A fairly large set of standard libraries
are defined for Obliq. These libraries
provide support for math operations, I/O,
persistence, thread control, graphics,
and animation.
Distributed computation in is object-based.
Objects can hold state, and that state is
local to a particular process. Scope of
objects and other variables is purely
lexical. Objects
can call methods of other objects, even if
those objects are on another machine on the
network.
Obliq objects are simply collections of
named fields (like Self's named slots), and
support inheritance by delegation (like Self).
The Obliq language system is an
interpreter written in Modula-3, and
employing Modula-3's network objects
capabilities. Obliq is included free
with the DEC Modula-3 distribution,
and pre-compiled binaries for some
platforms are also available. A manual
and many journal articles about the
language and its applications are
available on the web.
- Origin:
- See Also:
- Remarks:
Obliq was designed to make distributed
computation simple and easy for the
programmer, while providing program
safety and transparency with strict
lexical scoping.
The distributed computing in Obliq
is based on the powerful
network object facility provided by
Modula-3. Unlike Modula-3, however,
Obliq is interpreted and untyped, which
makes it very flexible and friendly.
Like most interpreters, Obliq supports
evaluation of dynamically generated code.
In the distributed computation context,
this means that Obliq can support mobile
agents and roaming computations.
Another common use for Obliq is 3D
animations. The standard library
provides sophisticated graphical
object rendering. This feature of
Obliq has been used to make some really
cool animations of algorithm execution.
- Links:
-
-
-
- Date:
- Sample code:
Since Obliq is normally used for distributed
computation, this example code has two parts:
Server side:
(* A server for computing factorials. *)
module FactServer;
let fact =
net_export("fact","",
{ m =>
meth(s,n)
if n is 0 then 1 else n * s.m(n-1) end
end
});
Client side:
module FactClient;
let fact = net_import("fact","");
fact.m(13);
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.