Paradigm | Object-oriented |
---|---|
Designed by | Ole-Johan Dahl |
Developer | Kristen Nygaard |
First appeared | 1962 |
Stable release | Simula 67, Simula I
|
Typing discipline | Static, nominative |
Implementation language | ALGOL 60 (primarily; some components Simscript) |
OS | Unix-like, Windows |
Website | http://www.simula67.info/ |
Influenced by | |
ALGOL 60, Simscript | |
Influenced | |
Object-oriented programming languages |
Simula is the name of two simulation programming languages, Simula I and Simula 67, designed and built by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Centre (NCC) in Oslo between 1962 and 1967. It was originally designed and implemented as a language for discrete-event simulation, but was later expanded and reimplemented as a full scale general purpose programming language. Although SIMULA never became widely used, the language has been highly influential on modern programming methodology. Among other things SIMULA introduced important object-oriented programming concepts like classes and objects, inheritance, and dynamic binding.
History
editEver since he first started working with operations research back in 1952, Kristen Nygaard had been constantly concerned with ways to conceptualize complex real world systems. One of the major problems he encountered in this pursuit was how to describe the heterogeneity of a system and its operation. In the 1950s, modeling of such systems was usually done through means of symbol notation, i.e. flow diagrams accompanied by an account of the rules governing the operations of the system. Monte Carlo simulation had proved to be a serviceable tool for analysis of these models and when the Ferranti MERCURY was eventually installed at NDRE in late summer of 1957, Nygaard and his team immediately started to write computer simulation programs.
The late 1950s saw the proliferation of a new scheme for computer programming, known as high-level programming languages. Thanks to Jan Garwick, NDRE got a head start in this area and although Kristen Nygaard was not directly involved in this line of work, he was well acquainted with the principles of programming languages. Encouraged by the promising prospects of computer-aided simulation, Nygaard soon started to think conceptually about how he could formalize the procedures for systems description in a way that would allow standardized concepts to be easily processed by a computer. Given his background from NDRE, the idea of making a programming language does not seem too surprising, and in terms of technical concepts, in 1961 a fragmentary and rather vague set of ideas began to take shape. In January 1962 Nygaard wrote to his colleague, the French operations research specialist, Charles Salzmann:
The status on the Simulation Language (Monte Carlo Compiler) is that I have rather clear ideas on how to describe queuing systems, and have developed concepts which I feel allow a reasonable easy description of large classes of situations. I believe I at these results have some interest even isolated from the compiler, since the presently used ways of describing such systems are not very satisfactory. [...] The work on the compiler could not start before the language was fairly well developed, but this stage seems now to have been reached. The expert programmer who is interested in this part of the job will meet me tomorrow. He has been rather optimistic during our previous meetings.
As is evidenced from this letter, SIMULA was intended from the very outset to be simultaneously a systems description and a programming language, its construction would thus require both systems reasoning and programming skills. Even though Nygaard had some experience with computer programming at NDRE before he was assigned to operations research in 1952, he dld net have sufficient experience or knowledge to undertake an extensive task like this on his own. He was compelled to recrute programming expertise from outside and the best ally he could find, besides Garwick, was his old acquaintance from NDRE, Ole-Johan Dahl. During the spring of 1962 Nygaard and Dahl joined in a series of discussions which in May, 1962 resulted in the first formal language proposal.
SIMULA at IFIP 62
editThe occasion was the second international conference on information processing held in Munich, Germany in late August that year. In the introduction to his paper entitled “SIMULA - An Extension of ALGOL to the Description of Discrete-Event Networks,” Nygaard explained the rationale behind SIMULA as follows:
For operational research workers and others studying network systems, there is a definite need for a precise language which allows a description of a network in terms of standardised and generally accepted concepts. Such a description should force the research worker to consider all relevant aspects of the network. SIMULA-SIMUlation LAnguage— represents an effort to meet this need with regard to discrete-event networks, that is, where the flow may be thought of as being composed of discrete units demanding service at discrete service elements, and entering and leaving the elements at definite moments [sic] of time. Examples of such systems are ticket counter systems, production lines, production in development programs, neuron systems, and concurrent processing of programs on computers.
The early approach to SIMULA was, as evidenced by the quotation above, based on the notion of a mathematically formulated network concept consisting of active stations serving a flow of passive customers. As illustrated in Figure 1(!), these stations consisted of a queue part and a service part, and the actions associated with the service part were described by a sequence of formalized statements. The customers possessed no similar operating rules, but were instead described through a sequence of variables called characteristics. A customer was supposed to be generated by the service part of a given station, then transferred to the queue part of another station, and subsequently to the service part of that station. Here the customer was "served", and then passed on to the next station in the network, and so on until it ultimately disappeared by not being transferred any further. The actions taken by the stations were regarded as instantaneous, occurring at discrete points in time, and accordingly, this class of systems was called discrete event networks.
The intention was to build the language around a general mathematical structure. Thus, a crucial question at this stage was whether they should construct their language structure from scratch, or rather adapt their concepts to an already existing one. Dahl and Nygaard decided early on that if SIMULA was to become a real programming language, and not just an academic “paper language”, they would have to join forces with one of the dominant programming languages. In the early sixties ALGOL 60 was the leading programming language in Europe. The elegant and powerful concepts of this language appealed to Dahl and Nygaard and made it, in their opinion, the perfect match for SIMULA. The crucial decision of linking SIMULA to ALGOL 60 was made during the spring of 1962, and would later prove to be both an enormous strength and a serious obstacle.
More employees
editFrom 1954 the computing center’s primary task had been running NUSSE but when the far more powerful Ferranti MERCURY came to Norway in 1957, this machine soon became obsolete. In 1958 the NCC was given charge of running the Central Bureau of Statistic’s DEUCE computer, this led to a reorganization of the computing center.
According to NTNF's Annual Report for 1958/1959, NCC's new mandate was to work for the application of computing machinery, function as contract institute for computing, and do numerical and statistical computing for public agencies and industry.
Around 1960 it became apparent, however, that NCC was not capable of fulfilling these obligations. The amount of work increased rapidly, whereas the utilization of the DEUCE did not live up to expectations. One reason for these problems was a profound lack of qualified personnel. Another arose from numerous technical problems with the machine itself, and yet a third from the fact that the DEUCE was an extraordinarily difficult machine to program. Emphasis on a simple machine had led to a more complicated coding than were used in any other computer of its day, and given the magnitude of the problems NCC was supposed to solve this posed tremendous difficulties for its staff of programmers.
It soon became apparent to the parties involved that something had to be done and as a first step in strengthening NCC, its board decided, during the spring of 1960, to restate the Centre's objectives by imposing a more research-like profile. Toward the end of the 19505 Kristen Nygaard had found working at NDRE increasingly difficult, and thus, when the NCC, in May 1960 offered him a new position he accepted. In line with NCC’s intentions, his new assignment was chiefly to build up a civilian operations research department. In order to accomplish this he brought along six members of his previous operations research team from NDRE.
To NDRE this initially came as a severe blow since a large number of its operations research specialists suddenly disappeared. However, under the leadership of Erik Klippenberg the remains of the group at NDRE soon re-organized themselves and moved into Systems Analysis. In the long run this event resulted in far more serious consequences for the institute’s informatics research activities. When Nygaard and his group left in 1960, Ole-Johan Dahl gradually became associated with the SIMULA project at NCC, and Jan Garwick later moved to the U.S., much of the expertise that had been built up at NDRE disappeared. The effect of this was that NCC in the 1960s took over as the leading milieu in informatics in Norway.
The DEUCE engagement had seriously affected NCC's ability to execute its commissions and by 1961 it was clear that this had a decisive negative impact on the Centre’s financial credibility. Notable financial deficiencies had been recorded both in 1959 and 1960, and the prospects for 1961 did not indicate any immediate improvement. What this above all had demonstrated was the necessity of a highly qualified and professional staff, and in this respect the introduction of operations research in 1960 soon proved to be a step in the right direction. Furthermore, it had also revealed NCC’s profound need for a new computer which would improve the institute’ s capacity to fulfill its mandate.
The Computer Question
editThe event that would eventually propel the SIMULA project off the paper occurred in 1962 and would eventually also represent the solution to NCC's computer problems.
In April 1961 NCC received an informal proposal from the Danish Computing Center in Copenhagen regarding possible future cooperation. At the time, the Computing Centre’s director Nils Ivar Beck, had ideas for a large network of Scandinavian computing centers called the Scandinavian Electronic System. According to the Danish proposition, NCC could, within a few years, become part of this network and would in the short run benefit from such cooperation in several ways. From the point of View of NTNF and NCC’s board, the Danish proposition seemed to offer the ideal solution to NCC’s most immediate problems, and after a few preliminary meetings during 1961, informal relations between the two computing centers were thus established.
From Nygaard’s point of view it was tacitly understood that when he and NCC’s director, Bjorn Ørjansen were given the task of drawing up a report on NCC’s immediate computer needs they should conclude by recommending a GIER from the Danish Computing Center. GIER was a recognized medium-sized computer, but in Nygaard and Ørjansen’s opinion not the ideal solution for NCC’s immediate needs, nor for the benefits of Norwegian informatics in the long run. What they wanted was a real mainframe like English Electric's KDF-9. However, this computer was, at the time, far beyond NCC’s financial reach, and consequently they settled for GIER. Based on the conclusion in the Nygaard and Ørjansen report, NTNF decided in February 1962 that NCC should order a GIER from Denmark and granted 2 mill. NOK. ($280,112) for this purpose.
This was-roughly the situation when another important actor, the UNIVAC Division of the Sperry Rand Corporation, entered the stag towards the end of May 1962. In connection with the marketing of their brand-new computers UNIVAC III and UNIVAC 1107, the company arranged an executive tour to the United States for prospective European customers. Kristen Nygaard was invited to participate on behalf of NCC.
The preliminary groundwork was done, and it was time to seek out financial resources. As reported by Dahl and Nygaard in 1981, there was no initial enthusiasm for SIMULA in NCC's environment, l.e., apart from the valuable moral support given by the board of NCC. The main objection according to them was theft there would be no use for a programming language like SIMULA, and if by any chance there was, such a language certainly existed already. Furthermore it was asserted that their ideas were not good enough, and that they in general lacked the competence needed to embark upon such an extensive project, which for these reasons would never be completed. Finally it was maintained that this kind of work should not be performed in small countries like Norway. From these statements it should be evident that gathering financial support from the Research Council, would indeed be a difficult and protracted mission.
Fortunately though, other options existed, and in an attempt to reverse UNIVAC's sales mission Kristen Nygaard decided to introduce SIMULA to the Americans. As soon as the party arrived in New York, he contacted the UNIVAC Europe representative James W. Nickitas and presented him with SIMULA and another NCC software project on linear programming. Nickitas found Nygaard's ideas interesting, and agreed to set up a meeting with a few influential representatives from UNIVAC's software division. Present at this meeting was also Robert Bemer, previously a key person at IBM, at this time UNIVAC's director of systems programming. Bemer recalls that:
It was just after I started with UNIVAC that I met a Kristen Nygaard of the Norwegian Computing Center, Oslo. He told me about is project SIMULA. My yearly budget for Systems Programming was about $8 mil ion at that time, for in the neighbourhood of 325 people. Dr. Rader had advised me that 5% of that money was my discretion, to do what ever I thought would benefit UNIVAC most! It happened that I was organising and chairing a session at the IFIP Conference in Munich that August, to which Nygaard’s project was a close a fit. I invited him to give a paper at that session. It caught my interest, and I wanted SIMULA for the 1107 so software repertoire (ALGOL was also in the repertoire, which I could never have made happen at IBM, but at UNIVAC I was RUNNING [sic] the show!).