Dictionary of Meaning
<<Back
Please select a letter:
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
0-9
Click here for Shopping
SIMULA
*** Shopping-Tip: SIMULA
'''Simula''' is a
programming language developed in the 1960s at the
Norwegian Computing Centre in
Oslo, by
Ole-Johan Dahl and
Kristen Nygaard.
Syntax Syntactically, it is a superset of
Algol programming language Algol 60, adding features such as
Object (computing) objects,
Class (computer science) classes,
Subclass (computer science) subclasses,
Virtual function virtual methods,
coroutine coroutines,
Garbage collection (computer science) garbage collection and
Discrete event simulation discrete event simulation.
Simula introduced the
object-oriented (programming) object-oriented programming paradigm and thus can be considered the first
object-oriented programming language and a predecessor to
Smalltalk (programming language) Smalltalk,
C++,
Java_programming_language Java,
C sharp C#, and all modern
class-based (programming) class-based object-oriented languages. As its name implies, Simula was designed for doing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages today.
Simula has been used in a vide range of applications such as simulating
Very-large-scale integration VLSI designs,
Process processes,
Protocol (computing) protocols,
Algorithm algorithms, and other applications such as
Typesetting typesetting,
Computer graphics computer graphics, and
Education education. Today its historical influence is considered far more important than any actual work done with it.
History
Kristen Nygaard started writing computer simulation programs in 1957. Nygaard saw a need for a better way of describing the heterogeneity and the
Operation operation of a
System system. To go further with his ideas on a formal
Computer language computer language for describing a system, Nygaard realized that he needed someone with more
Programming programing skills than himself.
Ole-Johan Dahl joined him on his work January 1962. The decision of linking the language up to
Algol 60 was made shortly after. By May 1962 the main concepts for a
Simulation simulation Programming language language was set. "SIMULA I" was born, a special purpose
Programming language programming language for
Simulation simulating discrete event systems.
Kristen Nygaard was invited to
Univac late May 1962 in connection with the marketing of their new
UNIVAC 1107 UNIVAC 1107 computer. At that visit Nygaard presented the ideas of Simula to Robert Bemer, the director of systems programming at
Univac. Berner was a sworn
Algol fan and found the Simula project compelling. Berner was also chairing a session at the second international conference on information processing hosted by
International Federation for Information Processing IFIP. He invited Nygaard, which presented the paper "SIMULA -- An Extension of ALGOL to the Description of Discrete-Event Networks".
Norwegian Computing Centre got a
UNIVAC 1107 August 1963 at a considerable discount, on which Dahl implemented the SIMULA I under contract with
UNIVAC Univac. The implementation was based on the
UNIVAC Algol 60 compiler. SIMULA I was fully operational on
UNIVAC 1107 January 1965. In the following couple of years Dahl and Nygaard spent a lot of time teaching Simula. Simula spread to several countries around the world and SIMULA I were later implemented on
Burroughs B5000 Burroughs B5500 computers and the Russian
List of Soviet computer systems URAL-16 computer.
In 1966
C. A. R. Hoare introduced the concept of record class construct, which Dahl and Nygaard extended with the concept of prefixing and other features to meet their requirements for a generalized process concept. Dahl and Nygaard presented their paper on
Class (computer science) Class and
Subclass (computer science) Subclass Declarations at the
International Federation for Information Processing IFIP Working Conference on simulation languages in
Oslo, May 1967. This paper became the first formal definition of Simula 67. In June 1967 a conference was held to standardize the language and initiate a number of implementations. Dahl proposed to unify the
Data type Type and the
Class (computer science) Class concept. This lead to serious discussions, and the proposal got rejected by the board. SIMULA 67 was formally standardized on the first meeting of the SIMULA Standards Group (SSG) in February 1968.
In the late sixties and the early seventies there where four main implementations of Simula:
*
UNIVAC UNIVAC 1100 by
Norwegian Computing Centre NCC
*
System/360 and
System/370 by Swedish Research Institute for National Defence (FOA)
*
CDC 3000 by University of Oslo's Joint Computer Installation at Kjeller
*
TOPS-10 by
ENEA AB
These implementations were ported to a vide range of platforms. The
TOPS-10 implemented the concept of public, protected, and private member variables and methods, that later got integrated into Simula 87. Simula 87 is the latest standard and is ported to a vide range of platforms. There are mainly tree implementations:
* Simula AS
* Lund Simula
-
GNU Cim
In November 2001 Dahl and Nygaard were awarded the
IEEE John von Neumann Medal by the
Institute of Electrical and Electronic Engineers "For the introduction of the concepts underlying
object-oriented programming through the design and implementation of SIMULA 67". In February 2002 they were given, once more the 2001 A. M.
Turing Award by the
Association for Computing Machinery (ACM), with the citation: "For ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67."
Classic Hello world
Note that Simula is case-insensitive. An example of a
Hello world program in Simula:
! ''a comment'';
'''Begin'''
'''OutText''' ("Hello World!");
'''Outimage''';
'''End''';
Classes in Simula
Simula was the first Object-Oriented Programming Language. This means that Simula knows about objects and classes of objects. Each class is a package or module of procedures, functions, and data. From a class, it is possible to create instances as a way to get objects that represent entities from the real world. The set of objects and their relations may be used in simulations of some aspect of our world.
Here is a simple class in Simula:
'''Begin'''
'''Class''' Greetings;
'''Begin'''
'''OutText''' ("Hello World!");
'''OutImage''';
'''End''';
'''Ref'''(Greetings) hello;
hello:- '''New''' Greetings;
'''End''' ''of program'';
This program says "Hello World!" too.
Jensen's Device
Simula supports
Call by name call by name so the
Jensen's Device can be implemented as follows:
'''Begin'''
'''Integer''' i;
'''Real''' '''Procedure''' sum (i, lo, hi, term);
'''Name''' i, term; '''Integer''' i, lo, hi; '''Real''' term;
'''Begin'''
'''Real''' temp; temp:= 0;
i:= lo;
'''While''' i <= hi '''Do'''
'''Begin'''
temp:= temp + term;
i:= i + 1;
'''End''';
sum:= temp
'''End''';
'''OutFix''' (sum (i, 1, 100, 1/i), 15, 20);
'''End'''
See also
*
Object-oriented programming
*
BETA programming language (a modern successor to Simula)
*
Simulation language
Source
-
Compiling Simula Early history of the development of Simula by Jan Rune Holmevik
External links
-
Introduction to OOP in Simula – By J.Sklenar, based on the 1997 seminar "30 Years of Object Oriented Programming (OOP)" at the U. of Malta
-
How Object-Oriented Programming Started – By Dahl and Nygaard, abbrev. version of an encyclopedia article; on Nygaards home page
-
Simula at the University of Montreal Includes tutorials, documentation, and links in English and in French
{{Major programming languages small}}
Category:Programming languages
Category:Object-oriented programming languages
Category:Class-based programming languages
Category:Simulation programming languages
cs:Simula 67
de:Simula
es:Simula
fr:Simula
it:Simula
nl:Simula
ja:Simula
no:Simula
pl:Simula
pt:Simula
ru:Simula
sk:Simula
sv:Simula
see
Simula
*** Shopping-Tip: SIMULA