| Ole-Johan Dahl, B. Myhrhaug, and Kristen Nygaard. The SIMULA 67 common base language. Technical report, Norwegian Computing Center, Oslo, 1970. Publication S--22. |
....traditional strong typing is both too rigid and too inexpressive. Order sorted algebra overcomes both limitations by combining two key ideas: inheritance and subsort polymorphism. 1.1. 1 Inheritance and Polymorphism Inheritance as a programming language feature developed from the Simula language [12], and intuitively corresponds to inclusion of concepts, as found in natural language. For example, we say that every hound is a dog and that every dog is a mammal, because our concept of mammal includes that of dog which in turn includes that of hound. If we 1 associate an extension to each ....
....natural, and that it supports simpler implementations and better programming practice. 5.3 Further Literature There is by now such a vast amount of related work that we can hardly do more than cite examples almost at random, including the following: 1. Implementations of inheritance in Simula [12] as further developed in Smalltalk [37] and other object oriented languages. 2. Overloading and subtypes in Ada [13] 3. The theory of (higher order) polymorphism as developed in [58] 68] 8] and [55] among many others. 4. There has been recent work on adding subtypes to higher order ....
Ole-Johan Dahl, B. Myhrhaug, and Kristen Nygaard. The SIMULA 67 common base language. Technical report, Norwegian Computing Center, Oslo, 1970. Publication S--22.
....9,10 A complete bibliography of functional languages is too voluminous to be included. The Scheme language is described in [30] the ML language in [67] and the Miranda language in [107] Simple polymorphic type systems are introduced in [47, 66] Slide 12,18 Simula and Beta are described in [36, 37, 56, 62]; Smalltalk in [42, 43] CLOS in [53] Self in [108, 29, 26] C in [98, 97, 100] and Eiffel in [64, 65, 39] Slide 21 26 The formalization of coercion functions is found in [89, 90] Slide 27 The use of coercion theory for phrase types is developed in [91, 75, 92] and for implicit scalings ....
.... types is developed in [91, 75, 92] and for implicit scalings in [103] Slide 28 38 The basic encoding is presented in the papers [17, 21] Slide 32 34 The update problem is made clear in [12] Slide 35 The idea of mutable types is presented in [18] Slide 40 Simula s types are described in [36]; C s types in [98, 38] Eiffel s types in [65] and Beta s types in [60, 62] Slide 41 50 The ideas of types as sets of classes and type checking as constraint satisfaction are developed in [77, 80, 82, 83] Slide 52 References on the methodological aspects of inheritance are too numerous ....
Ole-Johan Dahl, Bjrn Myhrhaug, and Kristen Nygaard. Simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, Norway, 1968.
....parentheses. Blocks and procedures (which were just named parameterized blocks) could be arbitrarily nested, declarations local to a block were visible only inside that block and its inner blocks (provided it was not shadowed by an inner declaration for the same name) The authors of Simula 67 [DMN70] recognized the block concept as the fundamental mechanism for decomposition in Algol 60 , corresponding to the intuitive notion of sub algorithm . They extended the block concept to that of a class by allowing block instances to survive their call. In brief, classes were textually similar ....
.... effort involved in the design and implementation of countless individual languages, several proposals have been made, ranging from extensible languages and implementations [Sch71] to the definition of domain specific languages in general purpose languages, with the simulation classes of Simula 67 [DMN70] being an early example. Our language design aims at the latter approach but takes it further to the level of program components in that neither modules nor objects, nor any other special purpose constructs for modular programming are introduced as language primitives, i.e. the conceptual level ....
Ole-Johan Dahl, Bjørn Myhrhaug, and Kristen Nygaard. SIMULA - Common Base Language. Technical Report S-22, Norwegian computing center, Oslo, October 1970. revised edition of S-2.
....undefinedObject as an explicit member of all types, we will define nil to be a special primitive value which implicitly has the empty type and, hence, has all types. Treating nil as a non instance is in line with its implementation in typed languages such as C [54] Eiffel [39] and Simula [22] Beta [32] In the language we later present, nil is in fact the only constant value. The language can be viewed as simply a calculus of pointers, in which it is quite natural that nil should enjoy a special status. 2.3 Inheritance is Not Subtyping Object oriented programming differs from other ....
Ole-Johan Dahl, Bjørn Myhrhaug, and Kristen Nygaard. Simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, Norway, 1968.
.... versus inheritance [20] Sandberg s paper on parameterized and descriptive classes [26] and Cook s paper on problems in the Eiffel type system [10] 2 The Core Language To avoid purely syntactic issues, we use a core language with Pascal like syntax and informal semantics, inspired by Simula [11], C [31] and Eiffel [21] The major aspects are as follows. Objects group together variables and procedures, and are instances of classes. The built in classes are object (the empty class) boolean, integer, and array. Variables and parameters must be declared together with a type, which is ....
....see figure 1. ffl Polymorphism. A component may have more than one type. Examples: ML functions [22] generic Ada packages [12] parameterized CLU clusters [17] ffl Prefixing. A component may be described as an extension of another component. Examples: Delegation [16] Simula prefixing [11], Smalltalk inheritance [13] In typed languages, a component can be used only according to its type. A polymorphic component has several types; hence it can be used in several different ways. In this approach, code is reused in applications. If the behavior of a component is completely ....
[Article contains additional citation context not shown here]
Ole-Johan Dahl, Bjørn Myhrhaug, and Kristen Nygaard. Simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, Norway, 1968.
....too restrictive in some applications, then the local constraint 2) can be abandonded. Instead the inferred type of a receiver can be examined to determine if the message send is safe. If not, then a dynamic check can be inserted before the method lookup (similarly to the qua checks of Simula [6] and Beta [15] This selective approach may greatly reduce the number of required checks, compared to Simula and Beta implementations. Note that a dynamic check can either be inserted implicitly in the compiled code, or explicitly in the program text, in the manner of a program transformation. 6 ....
Ole-Johan Dahl, Bjørn Myhrhaug, and Kristen Nygaard. Simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, Norway, 1968.
....type inference algorithm can be used as the basis of such an optimizing compiler. Note, though, that both the safety guarantee and the induced types are sensitive to small changes in the program. Hence, separate compilation of classes seems impossible. Typed objectoriented languages such as Simula [6] Beta [15] C [26] and Eiffel [17] allow separate compilation but sacrifice flexibility. The relations between types and implementation are summarized in figure 1. When programs are: Their implementation is: Untyped Interpretation Typable Compilation Typed Separate Compilation Figure 1: Types ....
Ole-Johan Dahl, Bjørn Myhrhaug, and Kristen Nygaard. Simula 67 common base language. Technical report, Norwegian Computing Center, Oslo, Norway, 1968.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC