<- Nygaard-Breakthroughs



The Seventies

Descriptions of concepts

Nygaard’s work – generalizing object-orientation and the social implications of computing science

In the seventies Nygaard’s work is characterized by two main aspects. On the one hand he tried to advance knowledge of object-orientation: on the other hand he did research for the Norwegian trade unions on planning, control and data processing, all evaluated in the light of the objectives of organised labour (1971-1973, together with Olav Terje Bergo) and on the social impact of computer technology.
As Simula was applied in many different environments, it turned out that many users seemed to gain a deeper understanding of their problem domain by having to develop a model using Simula than of the actual simulation results. The process of describing the application domain in most cases provided a valuable insight into the modelled application domain itself. This led Kristen Nygaard to formulate one of his favourite messages: “To program is to understand”. Programming should not just be considered a low-level technical discipline where it is just a matter of getting around the problem. A program should reflect an understanding of the problem domain.
Nygaard was very interested in the further development of object-oriented technologies and was thrilled by the enormous success achieved by object-orientation. In (Meyer, 2002) Ole Lehrmann Madsen describes this as follows: “I remember when he came back from a visit to Xerox Parc where Alan Kay had showed him Smalltalk – he was impressed and enthusiastic to see how ideas from Simula had inspired the Smalltalk team. He was happy seeing these ideas adapted by languages such as Flavours, Loops, C++, Eiffel, Java, C#, and many others. He never participated in the critique of possible shortcomings of other languages – on the contrary he respected their creators and acknowledged their influence on the development of OO.”
Nygaard and others decided to develop a successor for Simula focusing on system description, not execution. This development process lad to a language called DELTA . Delta made it possible to express true concurrent objects and to use predicates to express state changes. Nygaard summarized the objectives of DELTA by citing the original statements in the DELTA language report: “The purpose of this report is to develop a conceptual framework for conceiving systems, and an associated system description language. Our starting point has been a language which is designed as a tool for both system description and the writing of computer programs: the Simula language. We have, however, freed ourselves from the restrictions imposed by the computer, described above. We hope to have provided a tool which makes it possible to conceive systems in ways natural to human beings, using and extending the properties of programming languages, making it possible to combine algorithmic, mathematical and natural language modes of expression.” (Nygaard, 1997)
From 1973-1975 Kristen Nygaard was a visiting professor at Aarhus University, Denmark. During this period 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 GAMMA. Since it was a common assumption in the seventies that a general programming language was not usable as a systems programming language, they defined a system programming language to be used to implement GAMMA. This language was called BETA. Finally, the machine level language was called ALPHA.
The results for DELTA were described in a comprehensive report and it was later used in a few projects but it never achieved widespread distribution. The attempts to formalize DELTA by means of Petri Nets produced another language called EPSILON. The GAMMA language was never developed. During the work on BETA it was realized that there was no need for GAMMA. Because of BETA’s powerful abstraction mechanisms, the GAMMA level could be handled by supplying class libraries and frameworks.
The early work on BETA was started in 1975 as the Joint Language Project (JLP). The initial purpose for this language was: “(1) To develop and implement a high level programming language as a projection of the DELTA system description language into the environment of computing equipment. (2) To provide a common central activity to which a number of research efforts in various fields of informatics and at various institutions could be related.” (Nygaard, 1997)
BETA supports the object-oriented perspective on programming and contains facilities for procedural and functional programming. This description builds on definitions given in (Madsen, 1993) where object-oriented programming is defined as: “A program execution is regarded as a physical model, simulating the behaviour of either a real or imaginary part of the world”.
In BETA classes, procedures, functions and types are replaced by a single abstraction mechanism called the pattern (Kristensen, 1983). It generalizes virtual procedures to virtual patterns, streamlines linguistic notions as nesting and block structures, and provides a unified framework for sequential and concurrent execution.
Nygaard’s work on the social implications of computing science had its roots in the mid sixties. His interests were influenced by the then current situation that governed the political formation of opinion. The historical context was the following: “Historically the starting point for user participation in system development was the discussion about the relationship between work and democratic values in Scandinavia around 1960. …. At that time, it was generally agreed that industry should level the general democratic principles in society, and that opportunities for increased individual engagement should be created as a means to increase productivity and efficiency … A large action programme for improving the working life in Scandinavia was designed and conducted as an industrial democracy programme by The Norwegian Federation of Trade Unions (LO) in cooperation with The Norwegian Employers’ Federation (NAF). NAF was interested in rationalisation and improved organisational development; LO wanted to empower the workers. One of the results of the Cooperation Projects was a revised Worker Protection and Working Environment Act (AML 1977) … The AML’s section 12 states that workers and their representatives shall be kept informed about systems used for planning and performing work, and about planned changes in such systems. Sufficient education for using the systems, and participation in the design process is emphasised. The main idea is that the workers themselves shall control and be responsible for performing work.
Within this cooperative climate, some more explicitly stated political projects were carried out to support and strengthen the trade unions. Stronger trade unions were supposed to contribute to democracy by giving workers a voice and an opportunity to influence their work situation. The trade unions were part of the existing power structures in society established to empower the workers.”
(Bjerknes, 1995)
As pointed out in the previous section, Nygaard began to cooperate with the Trade Unions. He was a member of the discussion group formed to look into the potential implications of information technology. One important aspect at the beginning was that its members should improve their own competence in information technology. Nygaard saw the situation as follows: “We never considered building that competence by teaching to union members the curriculum used by programmers, engineers or managers. Knowledge is organized for a purpose and reflects the world view of the authors in terms of corporate values, power structures, objectives to be achieved etc. Uncritical acceptance of such material would make us brainwash ourselves. What we needed was a reevaluation of the use of information technology based upon the world view of the union members, emphasizing solidarity, industrial democracy, safe employment, safe working conditions, decent wages etc.
Since no such exposition of information technology did exist, we concluded that it was a research task to produce one. In Norway the Royal Norwegian Council for Scientific and Industrial Research is supporting a wide range of projects in information technology, and the Norwegian Iron and Metal Workers’ Union decided at its convention in 1970 to apply for money to ‘evaluate planning, control and data processing, based upon the perspective of organized labor’ and to ask the Norwegian Computing Centre (where I was working) to carry out the project.”
(Nygaard, 1992) The Union got the funding and the NCC got the contract.
This project was the first about participatory design carried out by the Norwegian Iron and Metal Workers’ Union. The project started at the beginning of January 1971 and ended nearly two and a half years later. The project’s objective was to apply the workers’ perspective to the development and introduction of new technology in order to produce an action plan that would represent and strengthen the workers’ position with respect to the introduction and use of computer technology. This work was a starting point in the so-called area of ‘participatory design’.
The project emphasised that knowledge gained locally should form a basis for the trade unions to act on a central level. The results from the project included technology agreements, textbooks and vocational training programmes on technology (Bjerknes, 1995).

Descriptions of concepts


The Beta programming language


Delta system description language




Topics for stage: The Seventies of Nygaard

Topics Documents
Object-Orientation The development of the Simula Language (application/pdf)
Programming Languages The development of the Simula Language (application/pdf)
Simula The development of the Simula Language (application/pdf)



<- Nygaard-Breakthroughs

Home  |  Top  |  Search  |  Gallery  | Glossary  | Sitemap  |  Guestbook  |  Making Of  |  Help