This article is from the FAQ, by with numerous contributions by others.
[Ole Lehrmann Madsen (firstname.lastname@example.org) writes:]
Originally Beta was just one of a series of languages developed at Nordic
The first object-oriented language Simula was originally designed as a
simulation language but it was soon realised that the main ideas could be
used for programming in general and this lead to Simula 67, which has class,
subclass, virtual function coroutines, etc. It also supplied the first
object-oriented framework in the form of Class Simulation which is a set of
classes to support the original goal of Simula to write simulation programs.
It turned out that many users of Simula seemed to get more understanding of
their problem domain by having to develop a model using Simula than of the
actual simulation results.
Kristen Nygaard and others then decided to develop a successor for Simula,
but with main focus of system description - not execution. This lead to a
In Delta you could express true concurrent objects and use predicates to
express state changes. Delta could, however, not be executed. Delta means
'participate' in Norwegian'. [E. Holbaek-Hannsen, P Haandlykken, K. Nygaard:
System Description and the Delta Language. Norwegian Computing Center, Publ.
no 523, 1973]
When Kristen Nygaard was a visiting professor at Aarhus University in
1973-75, a project was started to develop a programming language based on
the Delta ideas. This language should be a (programming language) successor
to Simula and was called
In the seventies, it was often assumed that a general programming language
was not usable as a systems programming langauge. It was therefore decided
to define a systems programming langauge which should also be used to
implement Gamma. This language was called
Finally the machine level languages were referred to as
So what happened to Delta and Gamma?
There is a (big) report describing Delta and there has later been some
related work on Delta including using it in a few projects, but it is no
longer being used or developed. The language
was a simplified version of Delta and the result of attempts to formalize
Delta by means of Petri Nets.
The Gamma language was never developed. During the work on Beta it was soon
realized that there was no need for Gamma. It turned out that by having
powerful abstraction mechanisms in Beta, the Gamma-level could be handled by
supplying class libraries and frameworks. You may thus think on the
Gamma-level as the libraries and frameworks of the Mjolner System.
And this is where we are today.
Some of the stuff in Delta could be handled by adding constraints to BETA
and supporting invariants and pre/post conditions. (The idea of invariants
and pre/post conditions for classes were originally suggested by Tony Hoare
for Simula. [C.A.R. Hoare: Proof of correctness of data representation, Acta
Informatics, 4, 271-281, 1972]
The Mjolner System has some libraries supporting initial versions of
constraints and invariants.
It has often discussed changing the name BETA - to avoid the beta-testing
jokes. The suggestion for a name change is Scala - Scandinavian Language and
also Scala means 'going up'... But so far it has been decided to stick with