Object-Oriented Programming in the Beta Programming Language

Total Page:16

File Type:pdf, Size:1020Kb

Object-Oriented Programming in the Beta Programming Language OBJECT-ORIENTED PROGRAMMING IN THE BETA PROGRAMMING LANGUAGE OLE LEHRMANN MADSEN Aarhus University BIRGER MØLLER-PEDERSEN Ericsson Research, Applied Research Center, Oslo KRISTEN NYGAARD University of Oslo Copyright c 1993 by Ole Lehrmann Madsen, Birger Møller-Pedersen, and Kristen Nygaard. All rights reserved. No part of this book may be copied or distributed without the prior written permission of the authors Preface This is a book on object-oriented programming and the BETA programming language. Object-oriented programming originated with the Simula languages developed at the Norwegian Computing Center, Oslo, in the 1960s. The first Simula language, Simula I, was intended for writing simulation programs. Si- mula I was later used as a basis for defining a general purpose programming language, Simula 67. In addition to being a programming language, Simula1 was also designed as a language for describing and communicating about sys- tems in general. Simula has been used by a relatively small community for many years, although it has had a major impact on research in computer sci- ence. The real breakthrough for object-oriented programming came with the development of Smalltalk. Since then, a large number of programming lan- guages based on Simula concepts have appeared. C++ is the language that has had the greatest influence on the use of object-oriented programming in industry. Object-oriented programming has also been the subject of intensive research, resulting in a large number of important contributions. The authors of this book, together with Bent Bruun Kristensen, have been involved in the BETA project since 1975, the aim of which is to develop con- cepts, constructs and tools for programming. The BETA language is one main result of this project, the various stages of which have been described in many different reports and articles (Kristensen et al., 1976; 1983a,b; 1985; 1987a,b; 1988; Madsen, 1987; Madsen and Møller-Pedersen, 1988; 1989a,b; 1992; Madsen et al., 1983). This book contains a description of the BETA language together with the conceptual framework on which BETA has been based. The Mjølner2 BETA System is a programming environment supporting object-oriented programming in BETA. The Mjølner BETA System has been developed by the Mjølner project (Dahle et al., 1986; Knudsen et al., 1992), which was a cooperative Nordic project with participants from Sweden, Nor- way, Finland and Denmark. The Mjølner BETA System includes an imple- mentation of BETA and a large number of libraries and application frame- works. It also includes a Hyper Structure Editor and an object-oriented CASE 1Simula 67 was later renamed to just Simula, which is used in this book. 2The name Mjølner is taken from Nordic mythology, where Mjølner is the name of the god Thor’s hammer. According to mythology, this hammer is the perfect tool that cannot fail, grows with the task, and always comes back to Thor’s hand. v vi PREFACE tool for supporting design using BETA. The system is a commercial product marketed by Mjølner Informatics A/S. Appendix B contains a more detailed description of the Mjølner BETA System. Readers should consult the Mjølner manuals for further details before trying to run the examples in this book. The Mjølner BETA System is currently available for the Macintosh, and for a number of UNIX-based workstations runnning X-Window Systems. Draft versions of this book and pre-releases of the Mjølner BETA System have been used for teaching object-oriented programming at the Department of Information and Media Sciences (IMV) and the Computer Science Depart- ment (DAIMI), both at Aarhus University. At IMV, BETA is used for introduc- tory programming and at DAIMI it is used as a second year course in program- ming languages. They have also been used for teaching at a number of other places, including the Universities of Copenhagen, Oslo, Bergen and Odense. Draft versions have also been used for BETA tutorials given at the OOPSLA ’89, ’90 and ’91 conferences (Object-Oriented Programming, Languages, Sys- tem and Applications), at the TOOLS ’91 and ’92 conferences (Technology of Object-Oriented Languages and Systems), and at EastEurOOPe ’91 (East Eu- ropean Conference on Object-Oriented Programming). The book is organized as follows: Chapters 1 and 2 introduce the basic concepts of object-oriented programming; Chapters 3–12 are a description of subjects such as objects, patterns, sequential execution, the virtual concept, block structure and procedural programming. The multi-sequential aspects of BETA, including coroutines and concurrency, are described in Chapters 13–15. Chapter 16 deals with exception handling, Chapter 17 describes the modularization of large programs, and Chapter 18 presents the conceptual framework underlying BETA. Appendix A includes a grammar for BETA, and Appendix B gives a description of the Mjølner BETA System. When reading the book, there are three main subject areas that should be covered at the same time: ¡ The BETA language, Chapters 3–16 ¡ Modularization, Chapter 17 ¡ The conceptual framework, Chapters 2 and 18. It is recommended that readers start with Chapters 1–6; Chapter 2 introduces part of the conceptual framework, and Chapters 3–6 introduce part of BETA. Chapter 18, the main chapter on the conceptual framework, may then be read before reading Chapters 7–16. Depending on the reader’s previous ex- perience, it may be difficult to grasp Chapter 18 on a first reading, so it is recommended that this is read again after having read the book’s remaining chapters. In a teaching situation it is recommended that the concepts detailed in Chapter 18 are discussed while reading the remaining chapters of the book. PREFACE vii Chapter 17, on modularization, may be read after Chapters 3–6. In a teach- ing situation it is recommended that it is read as soon as the students have to write other than just trivial programs. Experience shows that, from the begin- ning, students should be trained in splitting a program into convenient mod- ules, including the separation of interface and implementation. Acknowledgements The BETA project was initiated in 1976 as part of what was then called The Joint Language Project. People from The Regional Computing Center and Computer Science Department at Aarhus University, the Institute for Elec- tronic Systems at Aalborg University Centre, and the Norwegian Computing Center, Oslo participated in that project. The initiative for the project was taken in the autumn of 1975 by Bjarner Svejgaard, Director of The Regional Computing Center. The BETA language was developed by the authors together with Bent Bruun Kristensen. In addition, a large number of people have been involved in the development of BETA and the Mjølner BETA System, including col- leagues and students at Aarhus University, The Norwegian Computing Center, Oslo University, Aalborg University, and Mjølner Informatics. In particular, the contributions of Dag Belsnes and Jørgen Lindskov Knudsen are acknowl- edged. Development of the Mjølner BETA System in the Nordic Mjølner project has been supported by The Nordic Fund for Technology and Research. Partic- ipants in the Mjølner Project come from Lund University, Telesoft, EB Tech- nology, The Norwegian Computing Center, Telenokia, Sysware ApS, Aalborg University and Aarhus University. The main implementors of the Mjølner BETA System are Peter Andersen, Lars Bak, Jørgen Lindskov Knudsen, Ole Lehrmann Madsen, Kim Jensen Møller, Claus Nørgaard, and Elmer Sandvad. In addition, Karen Borup, Søren Brandt, Jørgen Nørgaard, Claus H. Peder- sen, Tommy Thorn, Per Fack Sørensen and Peter Ørbæk have participated in various parts of the implementation. The development of the Mjølner BETA System has been supported through a contract with Apple Computer Europe, Paris. We are grateful to Larry Taylor for the great support he has provided for BETA. Development of the system has also been supported by a contract with Apollo Computer, Finland, and by the donation of workstations from Hewlett-Packard. The development of BETA and the Mjølner BETA System has been sup- ported by the Danish Natural Science Research Council, grant. no. 11-3106, FTU 5.17.5.1.25, the Danish Natural Research Council, grant. no. 11-8285, the Danish Research Programme for Informatics, grant nos. 5.26.18.29. (the Devise Project), The Royal Norwegian Council for Scientific and Industrial Research, grant no. ED 0223.16641 (the Scala project), and through the Euro- viii PREFACE pean Commission’s Esprit EuroCoOp (5303) and EuroCODE (6155) projects. We would like to thank colleagues and students for valuable comments, inspiring criticisms, and the discovery of errors in preliminary versions of this book. Kim Halskov Madsen and Randell Trigg deserve special thanks for their use of preliminary versions of the book in teaching at IMV; their experience and comments have had a large influence. Other useful comments have been provided by Birger Andersen, Peter Andersen, Lars Bak, Lone Faber, Carsten Hansen, Dag Helstad, Anette Hviid, Jørgen Lindskov Knudsen, Kim Jensen Møller, Elmer Sandvad, Alexandre Valente Sousa, Kristine Stougaard Thom- sen, and the many students who have been exposed to previous versions of the book. We would like to thank Peter Wegner for his useful comments and encour- agement to write this book and Simon Plumtree of Addison-Wesley for his pa- tience. During the preparation of the manuscript we received great help from Susanne Brøndberg, Karen Kjær Møller and the production staff at Addison- Wesley. The authors would like to thank their families (Ole: Marianne, Christian, Anne Sofie; Birger: Kirsten, Kamilla, Kristine; Kristen: Johanna and to a moderate extent children and grandchildren). The BETA project would not have been the same and this book would not have come into existence without their patience and understanding, and without their participation in many lively gatherings3 throughout the years. Ole Lehrmann Madsen Birger Møller-Pedersen Kristen Nygaard May 1993 3We also thank the white wine producers in Germany, France, Italy and California.
Recommended publications
  • Introducing Visual Studio 2010
    INTRODUCING VISUAL STUDIO 2010 DAVID CHAPPELL MAY 2010 SPONSORED BY MICROSOFT CONTENTS Tools and Modern Software Development ............................................................................................ 3 Understanding Visual Studio 2010 ........................................................................................................ 3 The Components of Visual Studio 2010 ................................................................................................... 4 A Closer Look at Team Foundation Server............................................................................................... 5 Work Item Tracking ............................................................................................................................. 7 Version Control .................................................................................................................................... 8 Build Management: Team Foundation Build ...................................................................................... 9 Reporting and Dashboards.................................................................................................................. 9 Using Visual Studio 2010 ..................................................................................................................... 12 Managing Requirements ....................................................................................................................... 12 Architecting a Solution .........................................................................................................................
    [Show full text]
  • Object-Oriented Programming Basics with Java
    Object-Oriented Programming Object-Oriented Programming Basics With Java In his keynote address to the 11th World Computer Congress in 1989, renowned computer scientist Donald Knuth said that one of the most important lessons he had learned from his years of experience is that software is hard to write! Computer scientists have struggled for decades to design new languages and techniques for writing software. Unfortunately, experience has shown that writing large systems is virtually impossible. Small programs seem to be no problem, but scaling to large systems with large programming teams can result in $100M projects that never work and are thrown out. The only solution seems to lie in writing small software units that communicate via well-defined interfaces and protocols like computer chips. The units must be small enough that one developer can understand them entirely and, perhaps most importantly, the units must be protected from interference by other units so that programmers can code the units in isolation. The object-oriented paradigm fits these guidelines as designers represent complete concepts or real world entities as objects with approved interfaces for use by other objects. Like the outer membrane of a biological cell, the interface hides the internal implementation of the object, thus, isolating the code from interference by other objects. For many tasks, object-oriented programming has proven to be a very successful paradigm. Interestingly, the first object-oriented language (called Simula, which had even more features than C++) was designed in the 1960's, but object-oriented programming has only come into fashion in the 1990's.
    [Show full text]
  • Verifiable Semantic Difference Languages
    Verifiable Semantic Difference Languages Thibaut Girka David Mentré Yann Régis-Gianas Mitsubishi Electric R&D Centre Mitsubishi Electric R&D Centre Univ Paris Diderot, Sorbonne Paris Europe Europe Cité, IRIF/PPS, UMR 8243 CNRS, PiR2, Rennes, France Rennes, France INRIA Paris-Rocquencourt Paris, France ABSTRACT 1 INTRODUCTION Program differences are usually represented as textual differences Let x be a strictly positive natural number. Consider the following on source code with no regard to its syntax or its semantics. In two (almost identical) imperative programs: this paper, we introduce semantic-aware difference languages. A difference denotes a relation between program reduction traces. A s = 0 ; 1 s = 0 ; 1 difference language for the toy imperative programming language d = x ; 2 d = x − 1 ; 2 while (d>0) { 3 while (d>0) { 3 Imp is given as an illustration. i f (x%d== 0) 4 i f (x%d== 0) 4 To certify software evolutions, we want to mechanically verify s = s + d ; 5 s = s + d ; 5 − − that a difference correctly relates two given programs. Product pro- d = d 1 ; 6 d = d 1 ; 6 } 7 } 7 grams and correlating programs are effective proof techniques for s = s − x 8 8 relational reasoning. A product program simulates, in the same programming language as the compared programs, a well-chosen The program P1 (on the left) stores in s the sum of the proper interleaving of their executions to highlight a specific relation be- divisors of the integer x. To that end, it iterates over the integers tween their reduction traces. While this approach enables the use from x to 1 using the variable d and accumulates in the variable s of readily-available static analysis tools on the product program, it the values of d that divide x.
    [Show full text]
  • Compile-Time Safety and Runtime Performance in Programming Frameworks for Distributed Systems
    Compile-time Safety and Runtime Performance in Programming Frameworks for Distributed Systems lars kroll Doctoral Thesis in Information and Communication Technology School of Electrical Engineering and Computer Science KTH Royal Institute of Technology Stockholm, Sweden 2020 School of Electrical Engineering and Computer Science KTH Royal Institute of Technology TRITA-EECS-AVL-2020:13 SE-164 40 Kista ISBN: 978-91-7873-445-0 SWEDEN Akademisk avhandling som med tillstånd av Kungliga Tekniska Högskolan fram- lägges till offentlig granskning för avläggande av teknologie doktorsexamen i informations- och kommunikationsteknik på fredagen den 6 mars 2020 kl. 13:00 i Sal C, Electrum, Kungliga Tekniska Högskolan, Kistagången 16, Kista. © Lars Kroll, February 2020 Printed by Universitetsservice US-AB IV Abstract Distributed Systems, that is systems that must tolerate partial failures while exploiting parallelism, are a fundamental part of the software landscape today. Yet, their development and design still pose many challenges to developers when it comes to reliability and performance, and these challenges often have a negative impact on developer productivity. Distributed programming frameworks and languages attempt to provide solutions to common challenges, so that application developers can focus on business logic. However, the choice of programming model as provided by a such a framework or language will have significant impact both on the runtime performance of applications, as well as their reliability. In this thesis, we argue for programming models that are statically typed, both for reliability and performance reasons, and that provide powerful abstractions, giving developers the tools to implement fast algorithms without being constrained by the choice of the programming model.
    [Show full text]
  • Simula Mother Tongue for a Generation of Nordic Programmers
    Simula! Mother Tongue! for a Generation of! Nordic Programmers! Yngve Sundblad HCI, CSC, KTH! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Inspired by Ole-Johan Dahl, 1931-2002, and Kristen Nygaard, 1926-2002" “From the cold waters of Norway comes Object-Oriented Programming” " (first line in Bertrand Meyer#s widely used text book Object Oriented Software Construction) ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula concepts 1967" •# Class of similar Objects (in Simula declaration of CLASS with data and actions)! •# Objects created as Instances of a Class (in Simula NEW object of class)! •# Data attributes of a class (in Simula type declared as parameters or internal)! •# Method attributes are patterns of action (PROCEDURE)! •# Message passing, calls of methods (in Simula dot-notation)! •# Subclasses that inherit from superclasses! •# Polymorphism with several subclasses to a superclass! •# Co-routines (in Simula Detach – Resume)! •# Encapsulation of data supporting abstractions! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula example BEGIN! REF(taxi) t;" CLASS taxi(n); INTEGER n;! BEGIN ! INTEGER pax;" PROCEDURE book;" IF pax<n THEN pax:=pax+1;! pax:=n;" END of taxi;! t:-NEW taxi(5);" t.book; t.book;" print(t.pax)" END! Output: 7 ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad!
    [Show full text]
  • An Introduction to Programming in Simula
    An Introduction to Programming in Simula Rob Pooley This document, including all parts below hyperlinked directly to it, is copyright Rob Pooley ([email protected]). You are free to use it for your own non-commercial purposes, but may not copy it or reproduce all or part of it without including this paragraph. If you wish to use it for gain in any manner, you should contact Rob Pooley for terms appropriate to that use. Teachers in publicly funded schools, universities and colleges are free to use it in their normal teaching. Anyone, including vendors of commercial products, may include links to it in any documentation they distribute, so long as the link is to this page, not any sub-part. This is an .pdf version of the book originally published by Blackwell Scientific Publications. The copyright of that book also belongs to Rob Pooley. REMARK: This document is reassembled from the HTML version found on the web: https://web.archive.org/web/20040919031218/http://www.macs.hw.ac.uk/~rjp/bookhtml/ Oslo 20. March 2018 Øystein Myhre Andersen Table of Contents Chapter 1 - Begin at the beginning Basics Chapter 2 - And end at the end Syntax and semantics of basic elements Chapter 3 - Type cast actors Basic arithmetic and other simple types Chapter 4 - If only Conditional statements Chapter 5 - Would you mind repeating that? Texts and while loops Chapter 6 - Correct Procedures Building blocks Chapter 7 - File FOR future reference Simple input and output using InFile, OutFile and PrintFile Chapter 8 - Item by Item Item oriented reading and writing and for loops Chapter 9 - Classes as Records Chapter 10 - Make me a list Lists 1 - Arrays and simple linked lists Reference comparison Chapter 11 - Like parent like child Sub-classes and complex Boolean expressions Chapter 12 - A Language with Character Character handling, switches and jumps Chapter 13 - Let Us See what We Can See Inspection and Remote Accessing Chapter 14 - Side by Side Coroutines Chapter 15 - File For Immediate Use Direct and Byte Files Chapter 16 - With All My Worldly Goods..
    [Show full text]
  • Numerical Models Show Coral Reefs Can Be Self -Seeding
    MARINE ECOLOGY PROGRESS SERIES Vol. 74: 1-11, 1991 Published July 18 Mar. Ecol. Prog. Ser. Numerical models show coral reefs can be self -seeding ' Victorian Institute of Marine Sciences, 14 Parliament Place, Melbourne, Victoria 3002, Australia Australian Institute of Marine Science, PMB No. 3, Townsville MC, Queensland 4810, Australia ABSTRACT: Numerical models are used to simulate 3-dimensional circulation and dispersal of material, such as larvae of marine organisms, on Davies Reef in the central section of Australia's Great Barner Reef. Residence times on and around this reef are determined for well-mixed material and for material which resides at the surface, sea bed and at mid-depth. Results indcate order-of-magnitude differences in the residence times of material at different levels in the water column. They confirm prevlous 2- dimensional modelling which indicated that residence times are often comparable to the duration of the planktonic larval life of many coral reef species. Results reveal a potential for the ma~ntenanceof local populations of vaiious coral reef organisms by self-seeding, and allow reinterpretation of the connected- ness of the coral reef ecosystem. INTRODUCTION persal of particles on reefs. They can be summarised as follows. Hydrodynamic experiments of limited duration Circulation around the reefs is typified by a complex (Ludington 1981, Wolanski & Pickard 1983, Andrews et pattern of phase eddies (Black & Gay 1987a, 1990a). al. 1984) have suggested that flushing times on indi- These eddies and other components of the currents vidual reefs of Australia's Great Barrier Reef (GBR) are interact with the reef bathymetry to create a high level relatively short in comparison with the larval life of of horizontal mixing on and around the reefs (Black many different coral reef species (Yamaguchi 1973, 1988).
    [Show full text]
  • Porting an Interpreter and Just-In-Time Compiler to the Xscale Architecture
    Porting an Interpreter and Just-In-Time Compiler to the XScale Architecture Malte Hildingson Dept. of Informatics and Mathematics University of Trollhättan / Uddevalla, Sweden E-mail: [email protected] Abstract code conformed to the targeted environment, the makefiles had to be adjusted accordingly. This task was hugely sim- This exploratory study covers the work of porting an in- plified by tools such as autoconf and automake which per- termediate language interpreter to the ARM-based XScale formed the necessary routines for the target platform given architecture. The interpreter is part of the Mono project, an required input parameters, and created makefiles which en- open source effort to create a .NET-compatible development sured that the code was compiled properly. framework. We cover trampolines together with the proce- dure call standard, discuss memory protection and present a 2. Background complete implementation of atomic operations for the ARM architecture. The Mono [11] project, launched in July 2001 by Ximian Inc. [12], is an effort to create an open source imple- mentation of the .NET [13] development framework. The 1. Introduction project includes the Common Language Infrastucture (CLI) [14] virtual machine, a class library for any programming The biggest problem with porting software is finding language conforming to the Common Language Runtime which parts of the software reflect architectural features of (CLR) [15] and compilers that target the CLR. The virtual the hardware that it runs on [1]. The open source movement machine consists of a class loader, garbage collector and has been a benefactor in the sense that standards for porting an interpreter or a just-in-time (JIT) compiler, depending open software have been in demand and developed.
    [Show full text]
  • Programming Languages: Design and Implementation
    طراحی و پیادهسازی زبان های برنامهسازی Programming Languages: Design and Implementation 40364 نیمسال دوم 1400 - 1399 slide 1 اهداف درس سیر طبیعی تحوﻻت مفاهیم و روش های طراحی و پیادهسازی نسل های مختلف زبان های برنامهسازی به روشی تجربی و گام به گام مهندسی زبان های برنامه سازی )زبان های ویژه دامنه( آشنایی با پیاده سازی مفسرها به ویژه بر بستر ماشین های مجازی اصول طراحی زبان های برنامه سازی و روش ها و ساختارهای داده ای به کار رفته در پیادهسازی یا محقق کردن محیط برنامه نویسی ایجاد توانایی ارزیابی، مقایسه و انتخاب میان زبان های برنامه سازی موجود برنامه سازی تابعی معناشناسی و استدﻻل پیرامون برنامه slide 2 Grading and Other Admin affairs Your grade components: • Final Exam • Mid Term Exam • Assignments (paper based) • Assignments (programming including a final project) • Class Presentation … Class Administration Policies: slide 3 Main References Daniel P. Friedman and Mitchell Wand, Essentials of Programming Languages, 3rd Edition, MIT Press, 2008. M.Felleisen, R.Findler, M.Flatt, S.Krishnamurthi, E.Barzilay, J.McCarthy, S.Tobin-Hochstadt, A Programmable Programming Language, Communications of the ACM, Vol. 61, No. 3, Pp. 62-71, March 2018. https://racket-lang.org/ My class and Slides slide 4 Other Useful General Text Books S.Krishnamurthi, Programming Languages: Application and Interpretation, 2nd Edition, http://cs.brown.edu/courses/cs173/2012/book/b ook.pdf, 2017. Peter Sestoft, Programming Language Concepts, 2nd Edition, 2017. Michael Scott, Programming Language Pragmatics, (with its complimentary CD) slide 5 Other Useful General Text Books
    [Show full text]
  • Arxiv:2106.11534V1 [Cs.DL] 22 Jun 2021 2 Nanjing University of Science and Technology, Nanjing, China 3 University of Southampton, Southampton, U.K
    Noname manuscript No. (will be inserted by the editor) Turing Award elites revisited: patterns of productivity, collaboration, authorship and impact Yinyu Jin1 · Sha Yuan1∗ · Zhou Shao2, 4 · Wendy Hall3 · Jie Tang4 Received: date / Accepted: date Abstract The Turing Award is recognized as the most influential and presti- gious award in the field of computer science(CS). With the rise of the science of science (SciSci), a large amount of bibliographic data has been analyzed in an attempt to understand the hidden mechanism of scientific evolution. These include the analysis of the Nobel Prize, including physics, chemistry, medicine, etc. In this article, we extract and analyze the data of 72 Turing Award lau- reates from the complete bibliographic data, fill the gap in the lack of Turing Award analysis, and discover the development characteristics of computer sci- ence as an independent discipline. First, we show most Turing Award laureates have long-term and high-quality educational backgrounds, and more than 61% of them have a degree in mathematics, which indicates that mathematics has played a significant role in the development of computer science. Secondly, the data shows that not all scholars have high productivity and high h-index; that is, the number of publications and h-index is not the leading indicator for evaluating the Turing Award. Third, the average age of awardees has increased from 40 to around 70 in recent years. This may be because new breakthroughs take longer, and some new technologies need time to prove their influence. Besides, we have also found that in the past ten years, international collabo- ration has experienced explosive growth, showing a new paradigm in the form of collaboration.
    [Show full text]
  • Ole-Johan Dahl
    Ole-Johan Dahl Born October 12, 1931, Mandal, Norway; with Kristen Nygaard, developer of the SIMULA programming language, which introduced classes and inheritance into the field of programming languages. Education: MS, numerical mathematics, University of Oslo, 1957. Professional Experience: Norwegian Defense Research Establishment (NDRE), 1952-1963; Norwegian Computing Center, 1963-1968; professor, computer science, University of Oslo, 1968-present. Dahl worked with the Norwegian Defense Research Establishment (NDRE) from 1952 to 1963 in computing and programming under Jan V. Gatwick. From 1956 onwards his main activity was software development. His master's thesis (“Numerical Mathematics,” 1957, University of Oslo) addressed the representation and manipulation of multidimensional arrays on a two-level store computer. His main contribution at the NDRE was a high-level programming language, MAC, used locally during the 1960s (first specification was dated 1957; the implemented version was modified as a result of the Algol effort). In 1963 he joined the Norwegian Computing Center for full-time work on SIMULA, and in 1968 he became a professor of computer science, then a new discipline at the University of Oslo. His main research during recent years has been in the areas of program architecture, specification tools, and verification techniques. From 1964 to 1976 he was the Norwegian delegate to IFIP Technical Committee 2 (Programming Languages), and from 1970 to 1977 he was a working member of IFIP Working Group 2.2 (Language Definition). He has been a member of IFIP Working Group 2.3 (Programming Methodology) since its founding in Oslo in 1969.1 BIBLIOGRAPHY Biographical Nygaard, Kristen, and Ole-Johan Dahl, “The Development of the SIMULA Languages,” in Wexelblat, Richard L., ed., History of Programming Languages, Academic Press, New York, 1981.
    [Show full text]
  • Ole-Johan Dahl- A.M
    12/19/2016 Ole-Johan Dahl- A.M. Turing Award Winner A .M . TURING CENTENARY GELEBRATION WEBCAST Search TYPE HERE MORE ACM AWARDS A.M. TURING AWARD WINNERS BY... ALPHABETICAL LISTING YEAR OF THE AWARD RESEARCH SUBJECT OLE-JOHAN DAHL Norway- 2001 CITATJON With Kristen Nygaard, for ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67. SHORT ANNOTATED ACM DL RESEARCH ADDITIONAL PHOTOGRAPHS BJBLJOGRAPHY AUTHOR PROFILE SUBJECTS MATERIALS BIRTH: Object-oriented programming is a dominant programming paradigm of this age. Fundamental to the 12th October 1931in Mandal, Norway emergence of this paradigm were core concepts such as objects, classes, and inheritance with virtual quantities, all clear1y established in Oie Johan Dahl and Kristen Nygaard's discrete event simulation language Simula I and DEATH: general programming language Simula 67. The objects integrale data, procedural, and cooperating action 29th June 2002 from Lymphatic Cancer sequence aspects into one very general and powerful unifying entity. at Asker, Norway By embodying these core concepts in a language designed both for system description and programming, Dahl EDUCATION: and Nygaard provided both a logical and a notalienal basis for the ideas. Software could be built in layers of MS in Numerical Mathematics, abstraction, each one relying on the description and conceptual plattarm implemented by the previous layers. By University of Oslo (1957). defining Simula 67 to be an extension of an international standard language, Algol-60, this medium of expression was accessible and available to the entire research community. Simula shaped and sped the EXPERIENCE: emergence of object-<lriented programming and the management discipline that accompanies it by many years.
    [Show full text]