ArticleslgStudy

science

Simula

Simula is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Simula rather than just read about it. In short: Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 60, and was also influenced by the design of SIMSCRIPT.

Simula — main illustration
Simula — illustration

Key takeaways

  • Simula belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Simula to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Simula from memory before moving on to harder problems.

Reference excerpt

Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 60,

and was also influenced by the design of SIMSCRIPT. Simula 67 introduced objects, classes, inheritance and subclasses, virtual procedures, coroutines, and discrete event simulation, and featured garbage collection. Other forms of subtyping (besides inheriting subclasses) were introduced in Simula derivatives. Simula is considered the first object-oriented programming language. As its name suggests, the first Simula version by 1962 was designed for doing simulations; Simula 67 though was designed to be a general-purpose programming language and provided the framework for many of the features of object-oriented languages today. Simula has been used in a wide range of applications such as simulating very-large-scale integration (VLSI) designs, process modeling, communication protocols, algorithms, and other applications such as typesetting, computer graphics, and education. Computer scientists such as Bjarne Stroustrup, creator of C++, and James Gosling, creator of Java, have acknowledged Simula as a major influence. Simula-type objects are reimplemented in C++, Object Pascal, Java, C#, and many other languages.

History The following account is based on Jan Rune Holmevik's historical essay. Kristen Nygaard started writing computer simulation programs in 1957. Nygaard saw a need for a better way to describe the heterogeneity and the operation of a system. To further develop his ideas for a computer language to describe a system, Nygaard realized that he needed someone with more computer programming skills than he had. Ole-Johan Dahl joined him on his work in January 1962. Shortly after, the decision was made to link the language to ALGOL 60. By May 1962, the main concepts for a simulation language were established; SIMULA I, a specialized programming language designed for simulating discrete event systems, was born. Kristen Nygaard was invited to visit the Eckert–Mauchly Computer Corporation in late May 1962 in connection with the marketing of their new UNIVAC 1107 computer. At that visit, Nygaard presented the ideas of Simula to Robert Bemer, the director of systems programming at Univac. Bemer was a great ALGOL fan and found the Simula project compelling. Bemer was also chairperson of a session at the second international conference on information processing hosted by International Federation for Information Processing (IFIP). He invited Nygaard, who presented the paper "SIMULA – An Extension of ALGOL to the Description of Discrete-Event Networks". The Norwegian Computing Center got a UNIVAC 1107 in August 1963 at a considerable discount, on which Dahl implemented the SIMULA I under contract with UNIVAC. The implementation was based on the UNIVAC ALGOL 60 compiler. SIMULA I was fully operational on the UNIVAC 1107 by January 1965. In the following few years, Dahl and Nygaard spent a lot of time teaching Simula. Simula spread to several countries around the world and SIMULA I was later implemented on other computers including the Burroughs B5500 and the Russian Ural-16. 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 and subclass declarations at the 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 type and the class concept. This led to serious discussions, and the proposal was rejected by the board. Simula 67 was formally standardized on the first meeting of the Simula Standards Group (SSG) in February 1968.

Simula was influential in the development of Smalltalk and later object-oriented programming languages. It also helped inspire the actor model of concurrent computation although Simula only supports coroutines and not true concurrency. In the late sixties and the early seventies, there were four main implementations of Simula:

UNIVAC 1100 by Norwegian Computing Center (NCC) System/360 and System/370 by NCC CDC 3000 by University of Oslo's Joint Computer Installation at Kjeller TOPS-10 by Swedish National Defence Research Institute (FOA) These implementations were ported to a wide range of platforms. The TOPS-10 implemented the concept of public, protected, and private member variables and procedures, that later was integrated into Simula Standard in 1986. Simula Standard 1986 is the latest standard and is ported to a wide range of platforms. There are mainly four implementations:

Simula AS Lund Simula GNU Cim Portable Simula Revisited In November 2001, Dahl and Nygaard were awarded the IEEE John von Neumann Medal by the Institute of Electrical and Electronics Engineers "For the introduction of the concepts underlying object-oriented programming through the design and implementation of SIMULA 67". In April 2002, they received 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." Dahl and Nygaard died in June and August of that year, respectively, before the ACM Turing Award Lecture that was scheduled to be delivered at the November 2002 OOPSLA conference in Seattle. Simula Research Laboratory is a research institute named after the Simula language, and Nygaard held a part-time position there from the opening in 2001. The new Computer Science building at the University of Oslo is named Ole Johan Dahl's House, in Dahl's honour, and the main auditorium is named Simula.

Sample code

Minimal program The empty computer file is the minimal program in Simula, measured by the size of the source code. It consists of one thing only; a dummy statement. However, the minimal program is more conveniently represented as an empty block:

Begin End;

It begins executing and immediately terminates. The language lacks any return value from the program.

Classic Hello world An example of a Hello world program in Simula:

… excerpt ends here. Continue reading the full article.

Illustrations

Simula illustration
Simula: Pages from the DECsystem-10 SIMULA Language Handbook, as published by the Swedish National Defence Research Institute
Pages from the DECsystem-10 SIMULA Language Handbook, as published by the Swedish National Defence Research Institute

Worked examples

Example 1 — a first encounter with Simula

Start with the simplest possible case. Write down what Simula claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Simula before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Simula ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Simula

In research
Simula appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Simula in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Simula is common in secondary-school and first-year university syllabi. It links to neighbouring topics ALGOL 60 dialect, Class-based programming languages, Norwegian inventions, so understanding it makes those chapters shorter.
In everyday life
Look for Simula outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Simula in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Simula means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Simula out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Simula in simple terms?

Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of ALGOL 60, and was also influenced by the design of SIMSCRIPT.

Why does Simula matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Simula?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Simula.

Tags

  • ALGOL 60 dialect
  • Class-based programming languages
  • Norwegian inventions
  • Programming languages
  • Programming languages created in 1962
  • Science and technology in Norway
  • Simulation programming languages
  • Statically typed programming languages

Keep exploring