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:
Simula67 is a block-structured procedural
language with some object-oriented programming
features. It was the first language to
supply abstract data type and class support,
and is therefore recognized as one of the
founding elements of object-oriented computing.
Simula syntax is similar to that of Algol,
but with special features and keywords for
record classes and type support. Other
features of Simula include: basic
numeric data types, strings, strong type
checking, basic control structures,
data encapsulation, simple inheritance,
simple I/O support,
polymorphism, and special semantics for
discrete-event simulation. The
execution of a Simula program consists
of one or more processes, each of which
is an instance of some class. Objects
can interact with eachother somewhat
independently; Simula supported a
primitive form of concurrency (co-routines).
Simula I was designed in 1962 and
first implemented in 1964; it was an
extension of Algol 60 for discrete-event
simulation. In 1967, the more general-purpose
Simula67 was introduced, with a
wider set of data types and object support.
Simula was standardized in 1977.
Today, the language is controlled by a
small independent standarization body,
dedicated to ensuring compliance by all
Simula language compilers with the
official language definition.
Simula is available free for just about every
general-purpose computing platform. Some
of the Simula implementations are native
compilers, and some are Simula-to-C translators.
Many free add-on libraries and packages
exist, and are available free for Simula
Information about Simula, including
programming tutorials and source examples,
is surprisingly widely available on the WWW.
Ole Dahl and Kristen Nygaard, NCC Olso, 1964-67.
- See Also:
Simula was invented in Norway, and has
always enjoyed the largest following in
Scandinavia. It was never really widely
adopted for general-purpose programming,
but was and still is
used in educational settings.
The Simula language
has the distinction of having been
stable and useful with almost no
changes for 30 years (as compared
to Fortran or Lisp, for example!)
Simula may not have been widely adopted,
but its influence can be seen in almost
every object-oriented language invented
since, especially block-structured ones
like Eiffel, C , and even Java.
- Sample code:
Simula Line class, taken from Kathleen
Fisher's "Introduction to Simula"
Class Line(a,b,c); real a,b,c;
boolean procedure parallelto(l); ref(Line) l;
if l =/= none then
parallelto := abs(a*l.b - b* l.a) < 0.00001;
ref(Point) procedure meets(l); ref(Line) l;
begin real t;
if l =/= none and ~parallelto(l) then
t := 1/(l.a * b - l.b * a);
*** complicated expressions omitted below ***
meets :- new Point(..., ...);
d := sqrt(a**2 b**2);
if d = 0.0 then error else
d := 1/d;
a := a * d; b := b * d; c := c * d;
end *** Line***
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.