Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Kristen Nygaard is active.

Publication


Featured researches published by Kristen Nygaard.


Communications of The ACM | 1966

SIMULA: an ALGOL-based simulation language

Ole-Johan Dahl; Kristen Nygaard

This paper is an introduction to SIMULA, a programming language designed to provide a systems analyst with unified concepts which facilitate the concise description of discrete event systems. A system description also serves as a source language simulation program. SIMULA is an extension of ALGOL 60 in which the most important new concept is that of quasi-parallel processing.


acm sigplan conference on history of programming languages | 1978

The development of the SIMULA languages

Kristen Nygaard; Ole-Johan Dahl

The organizers of this conference have told us that we should write at least 25 pages of manuscript, but that we may produce as many pages more as we wanted. Perhaps they did not envisage the possible consequences, but we have taken their words at face value. This paper has implied a vast amount of work and archeological activities. We are grateful to SIGPLAN for defining a task to which resources had to be allocated by our institutions and which forced us to write down an account of our work from 1961 to 1971. While we are writing this preface, those years are very much alive to us. We realize that we lived through this period in a state of semimadness, a combination of very hard work, frustration, and euphoria.


symposium on principles of programming languages | 1983

Abstraction mechanisms in the BETA programming language

Bent Bruun Kristensen; Ole Lehrmann Madsen; Birger Møller-Pedersen; Kristen Nygaard

The BETA programming language is developed as part of the BETAproject. The purpose of this project is to develop concepts,constructs and tools in the field of programming and programminglanguages. BETA has been developed from 1975 on and the variousstages of the language are documented in [BETA a]. The application area of BETA is programming of embedded as wellas distributed computing systems. For this reason a major goal hasbeen to develop constructs that may be efficiently implemented.Furthermore the BETA language is intended to have a few number ofbasic but general constructs. It is then necessary that theabstraction mechanisms are powerful in order to define morespecialized constructs. BETA is an object oriented language like SIMULA 67([SIMULA]) and SMALLTALK ([SMALLTALK]). By this is meant that aconstruct like the SIMULA class/subclass mechanism is fundamentalin BETA. In contrast to SMALLTALK, BETA is a language in the ALGOL60 ([ALGOL]) family. SIMULA 67 is a system description and a programming language.The DELTA language ([DELTA]) is a system description language only,allowing description of full concurrency, continuous change andcomponent interaction, developed from a SIMULA conceptual platform.BETA started from the system concepts of DELTA, but is aprogramming language, drawing upon a large number of contributionsto programming research in the 1970s. A basic idea in BETA is tobuild the language upon one, general abstraction mechanism --- thepattern ([BETA a 77]) --- covering both data, procedural andcontrol abstractions, substituting constructs like class,procedure, function and type. Correspondingly objects, procedure activation records andvariables are all regarded as special cases of the basic buildingblock of program executions: the entity. A pattern thusdescribes a category of entities with identical structure.An entity consists of a set of attributes and anaction-part. An attribute may be a data-item or apattern. The action-part is a sequence of imperatives that may beexecuted. A data-item may be an entity or a reference to an entity.A pattern may be used in a procedure like manner in the sense thatan entity (procedure activation record) described by the patternmay be generated and executed as a part of the action sequence ofanother entity. A pattern may be used to generate entities thatexecute their action-part in concurrency with other entities. Suchentities may also execute their actions interleaved in a coroutinelike manner. Entities may be organized hierarcically by means of ageneralization of the SIMULA subclass mechanism. This givespossibilities for grouping common properties of entities ofdifferent patterns. In SIMULA 67 a class may have virtual attributes(procedures, labels, and switches). This is a powerful parametermechanism that gives the possibility to delay the specification ofan attribute to a subclass specification. However, SIMULA 67 lacksthe possibility to have virtual class attributes. Furthermore it isnecessary to have a runtime check on the parameters of virtualprocedures, since it is not possible to specify the parameter listof a virtual procedure. The virtual patterns of BETA is ageneralization of the virtual concept in SIMULA 67. In this paper the sequential part of BETA will be presented. Themain purpose is to demonstrate the use of the pattern/subpatternmechanism with virtual patterns as a powerful abstractionmechanism. In addition, a further generalization of the virtualconcept based on syntactic categories will be described. Work has been initiated to design and implement an integratedprogramming system for BETA. The approach to separatecompilation of BETA modules is described in [BETA c]. This paper is organised as follows: Section 2 describesentities, patterns and imperatives. Section 3 describes thesubpattern mechanism. Virtual patterns are described in section 4.Section 5 describes the generalization of the virtual concept. Insection 6 the remaining elements of BETA not mentioned in theprevious sections are described. Finally the syntax of BETA isgiven in the appendix. Each section with a brief introduction ofthe relevant language elements whereafter a number of examples aregiven. Most of the examples are extended versions of HoaresSmallIntSet [Hoare 72]. There is a distinction between the base language (calledbasic BETA) and standard BETA. Standard BETA is basicBETA extended with a number of commonly used constructs. Theseadditional constructs may all be regarded as patterns in basicBETA, but will often be given a special syntax. This paper willmainly focus on basic BETA. Occasionally we shall use parts of astandard BETA, but this will be stated at the appropiate place.


Sigplan Notices | 1985

An algebra for program fragments

Bent Bruun Kristensen; Ole Lehrmann Madsen; Birger Møller-Pedersen; Kristen Nygaard

Program fragments are described either by strings in the concrete syntax or by constructor applications in the abstract syntax. By defining conversions between these forms, both may be intermixed. Program fragments are constructed by terminal and nonterminal symbols from the grammar and by variables having program fragments as values. Basic operations such as valuetransfer, composition and decomposition are defined for program fragments allowing more complicated operations to be implemented. Usual operations such as testing for equality are defined, and in addition more specialized operations such as testing that a program fragment is derivable from another and converting program fragments in concrete form to abstract form are defined. By introducing regular expressions in the grammar these may be used in program fragments in concrete form. By defining constructors for regular expressions these may also be used in program fragments in abstract form.


hawaii international conference on system sciences | 1988

Coroutine sequencing in BETA

Bent Bruun Kristensen; Ole Lehrmann Madsen; B. Moller-Pedersen; Kristen Nygaard

In object-oriented programming, a program execution is viewed as a physical model of some real or imaginary part of the world. A language supporting object-oriented programming must therefore contain comprehensive facilities for modeling phenomena and concepts form the application domain. Many applications in the real world consist of objects carrying out sequential processes. Coroutines may be used for modeling objects that alternate between a number of sequential processes. The authors describe coroutines in BETA.<<ETX>>


Archive | 1984

User Oriented Languages

Kristen Nygaard

In a rapidly increasing percentage of job situations, professional competence is exercised in interaction with some computer-based information system. The ability to use these systems becomes an important part of a person’s competence.


DAIMI Report Series | 1987

Coroutine Sequencing in BETA

Bent Bruun Kristensen; Birger Møller-Pedersen; Ole Lehrmann Madsen; Kristen Nygaard

In the object-oriented perspective a program execution is viewed as a physical model of some real or imaginary part of the world. A programming language supporting the object-oriented perspective must therefore contain comprehensive facilities for modelling phenomena and concepts from the application domain. In object-oriented programming objects model physical material and classes model concepts. By means of subclassing and virtual attributes it is possible to model a hierarchical classification of objects. Many applications in the real world consist of objects carrying out sequential processes. Coroutines may be used for modelling objects that alternate between a number of sequential processes. This paper describes coroutines in BETA.


Sigplan Notices | 1986

Basic concepts in object oriented programming (abstract only)

Kristen Nygaard

The invention relates to a system for sequentially analyzing each data point representing a digitized video line image and modifying the point to improve the quality of the image based upon an examination of surrounding data points. Specifically, data comprising a digitized scanned image with each point represented by a one bit digital signal is stored such that a matrix of data is continually supplied to a data multiplexer. The data multiplexer selects the portion of the matrix data to be compared to predetermined criteria to determine whether or not the data point being analyzed should be changed to improve the quality of the image.


History of Programming Languages | 1981

IX – SIMULA Session

Barbara Liskov; Kristen Nygaard; Ole-Johan Dahl

Publisher Summary The development of the SIMULA I and SIMULA 67 languages was carried out at the Norwegian Computing Center (NCC). However, the early background for the development is the work at the Norwegian Defence Research Establishment (NDRE) in the 1950s. A BULL punched-card calculator had, in 1951–1953, been extended at the NDRE into a card-programmed electromechanical computer. In 1954, it was decided that NDRE should acquire a Ferranti MERCURY computer, then at the design and construction stage, and in the following years the NDRE milieu developed basic software which was fairly advanced for its time. In the late 1950s, the NDRE milieu started work in language design, in which Garwick and OJD were particularly active. This chapter discusses the four main stages that the SIMULA I language went through. At the NCC, the use of SIMULA I for simulation programming started immediately and spread rapidly. In 1965, three SIMULA I courses were given at NCC. The use of SIMULA I up to December 1965 is reported in Nygaard (1965b). A later version of this report covers the period up to June 1968.


Archive | 1993

Object-oriented programming in the BETA programming language

Ole Lehrmann Madsen; Birger Mø-Pedersen; Kristen Nygaard

Collaboration


Dive into the Kristen Nygaard's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bjorn Myhrhaug

Norwegian Computing Center

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge