| W. Cook and J. Palsberg. Denotational semantics of inheritance and its correctness. In Proc. 4th ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pages 433443, 1989. |
.... specifications (as specifications are also inherited from interfaces to their implementing classes and extending interfaces) In JML, an interface can have its own fields and (model) methods, and this brings all of the problems associated with multiple inheritance, such as name conflicts [18] 19] [32] [43] Refinement: In JML, a type can refine another type. The notion of refinement [4] is unique in that everything (including private declarations) is inherited from a refined type by its refining types. There is no corresponding feature in Java. Visibility (or accessibility) JML can ....
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. ACM SIGPLAN Notices, 24(10):433--443, October 1989.
....as formal update sequences) To tackle the problem of the unformalized real world and observers in a definition for a formal semantics, several artifices are possible. In denotational or declarative semantics [St77] Sch86] GN87] and implicitly in the related fixed point semantics [Sc76] [CP89] but also in many other approaches the unruly real world is replaced by a more convenient conceptualization [GN87] usually just an exceedingly simple list of entities or rather, well behaved lexical entity references and extensional lists of relation and or function instances, assumed ....
....disproved Entscheidungsproblem) they are obviously exceedingly helpful in practice for reasons indicated above, and enjoy in general many useful formal properties that can be proven. Examples of such rigorous treatment of empirical semantics may be found in e.g. AHV95] integrity constraints) [CP89] (inheritance and reuse) D TM95] encapsulation) Wi90] dynamics) and in these proceedings in the contributions by Atzeni and Torlone (semantics preserving mapping) by van Keulen et al. behavior description) by Yoon and Kerschberg (updates as integrity preserving database transitions) and ....
Cook, W. and Palsberg, J., "A Denotational Semantics of Inheritance and its Correctness", in: OOPSLA 89 Proceedings, ACM Press (1989).
....inheritance, and with mixins. We have also reported on the use of an experimental implementation to refactor a part of the Smalltalk collections hierarchy [BSD02] The semantics of single inheritance is well understood and it is described by several operational and denotational formalizations [GR83,CP89]. For conciseness, we do not repeat any details of these formalizations. Instead we focus on two contributions. First, we define traits and the various operators that can be used to combine traits into compound traits, and ultimately into classes. Second, we make precise the internal dependencies ....
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, pages 433--443, October 1989. Published as Proceedings OOPSLA '89, ACM SIGPLAN Notices, volume 24, number 10.
....aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the refinement calculus [8,19,20] with notions of classes, objects, class based inheritance, and refinement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove, and explain a flexibility theorem showing that the restrictions we impose on inheritance are su#cient to permit substituting a base class with its revision in presence of extension classes. Finally, we discuss related work and draw some conclusions. 2 Fragile Base Class ....
....the operator mod combines M with the inherited part C. We refer to M as a modifier [31] Therefore, we have that C belongs to the system, while (M mod C)represents a user extension of this system. The model of single inheritance employing the notion of modifiers was proved by Cook and Palsberg in [10] to correspond to the form of inheritance used in object oriented systems. For instance, in our previous example M has the form: M = modifier n : int : 0 add(x : char) n : n 1;super.add(x) We accept the view that a base class and a modifier initialize their own instance ....
[Article contains additional citation context not shown here]
W. Cook, J. Palsberg. A denotational semantics of inheritance and its correctness. 1989. 356, 358, 367, 375
....model, such as TLA [65] UNITY [76] or various forms of process algebra [53, 75] Inheritance, as a means for modular system design, has been a subject of extensive research for decades. Many researchers employed formal methods to define various inheritance constructs and study their properties [2, 16, 28, 33, 49, 56, 70, 69, 79, 88, 87, 86, 13, 76, 48]. Our distinguishing contribution is a provision of a formal framework that allows simulation proofs to be constructed incrementally when inheritance is applied at two levels: specifi23 cation and algorithm. Thus, we extend the applicability of inheritance from the realm of incremental system ....
....and show how it can be used in conjunction with the specialization construct to achieve subclassing for extension; we then extend the proof reuse theory presented in Section 3.3 to this situation. Section 3. 5 compares our results with related work; it shows that, while many other works (e.g. [2, 16, 28, 33, 49, 56, 70, 69, 79, 88, 87, 86]) have dealt formally with inheritance, the distinguishing contribution of our approach is the provision of a formal framework for applying inheritance to both system modeling and system verification. Section 3.6 concludes this chapter. This chapter employs a simple running example to illustrate ....
[Article contains additional citation context not shown here]
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation, 114(2):329--350, 1994.
....way a new class can be obtained by reusing code from an existing class. A general inheritance mechanism allows new methods to be added, the inherited methods to be re defined or omitted. An inheritance mechanism of a language is usually given by defining the semantics of its inheritance operator [9]. We take a di#erent approach. We formalise the inheritance mechanism of an arbitrary language as a transition relation on the set of classes. A pair of classes forms a transition if the second class can be derived from the first by employing the inheritance mechanism. Expressing all inheritance ....
....Expressions e, f Method System Operations class : Instance instances : Class #P(Instance) methods : Class Exp# : Class #P(Key) M(P) m:methods(P )m #= # Fig. 4. Method System domains and operations We employ a variation of the method system formalism of Cook and Palsberg [9], shown in Figure 4. Method systems are a simple formalisation of objectoriented programming encompassing instances, classes, and method descriptions, which are mappings from message keys to method expressions. The operation class gives the class of an instance, while instances returns the set of ....
[Article contains additional citation context not shown here]
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In OOPSLA'89, pages 433--443, New Orleans, 1989. ACM Press. 579, 579, 580
....no arguments, and do not call attributes in the private part. If a message corresponding to a constant method is sent to an object, the body of this method is simply returned. As a basic structure to create more complicated objects we use records, which is a common approach followed in literature (Cook, 1989), Cardelli et al. 1989) and (Wegner et al. 1988) Objects in their most simple form have an empty private part and a public part which is a record of methods, for example [ getx=x ,gety=y I ] A more general form of objects are those containing a private part which is a record as well, e.g. ....
....of self reference (Wegner et al. 1988) A further investigation of inheritance is delayed until section 4.3. There is however a problem when defining an inheritance operator, because inheritance may be considered a fundamental violation of encapsulation because of the change of self reference (Cook, 1989), or stated otherwise the introduction of inheritance severely compromises encapsulation, by exposing implementation details to inheriting clients (Snyder, 1987) An extensive discussion on the interaction between inheritance and encapsulation can be found in (Snyder, 1987) In our paper the ....
[Article contains additional citation context not shown here]
W. Cook and J. Palsberg. A Denotational Semantics of Inheritance and its Correctness. OOPSLA '89 Conference Proceedings, pp. 433-444, ACM Press, 1989.
....Composition and inheritance are two complementary means for modular system design. Inheritance, as a means for modular system design, has been a subject of extensive research for decades. Many researchers employed formal methods to de ne various inheritance constructs and study their properties [1, 5, 10, 11, 20, 24, 29, 30, 35, 39, 37, 38, 4, 34, 15]. Our distinguishing contribution is a provision of a formal framework that allows simulation proofs to be constructed incrementally when inheritance is applied at two levels: speci cation and algorithm. Thus, we extend the applicability of inheritance from the realm of incremental system ....
....rules that may be used to facilitate reasoning about correctness of a subclass given the correctness of the superclass is known. However, they only addressed informal reasoning and did not provide the mathematical foundation for formal proofs. Numerous other research projects, for example [1, 5, 10, 11, 20, 24, 29, 30, 35, 4, 34, 15], have dealt formally with inheritance and its semantics. In particular, many projects, such as [29, 30, 11, 4, 34] focus on de ning inheritance constructs in ways that either automatically imply or simplify the task of proving that a child behaves indistinguishably from its parent, in other ....
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation, 114(2):329-350, 1994.
....Background The metavariable self is fundamental in object oriented languages. It may be used in a method to refer to the object executing the method. Since methods can be inherited, the meaning of self cannot be determined statically. For a denotational semantics of inheritance, see for example [7]. and Cardelli [3, 2, 1, 4] Bruce [5, 6] Palsberg and Schwartzbach [11, 12] and others. These developments all identify a need to give self a special treatment, as illustrated by the following standard example. object Point method move object ColorPoint extends Point Main program: ....
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation, 114(2):329-- 350,
..... geometrical properties are characterised by their invariance under a group of We can look at several language features that support these properties as a basis for a symmetry group model of programs. There are precedents for the approach we will take here; for example, Cook and Palsberg [5] define inheritance as an operation on generators that transform a base class into a (distinct) derived class. Consider some examples of symmetry groups in object oriented programming languages. 6.1 Classification as Symmetry To start with, a class in an object oriented program is a symmetry. A ....
Cook, W., and J. Palsberg. A Denotational Semantics of Inheritance and its Correctness. IN OOPSLA '89 Conference Proceedings, SIGPLAN Notices 24(10), 1989. New York: ACM SIGPLAN, p. 436.
....[77, 80, 82, 83] Slide 52 References on the methodological aspects of inheritance are too numerous to cite. An example of the Scandinavian school is [54] the use of undisciplined code reuse is critizised in [35] Slide 56 59 The problems of inheritance, subtyping, and recursion are exposed in [33, 14, 15, 5]. The separation of subtyping and inheritance is made clear in [32] Slide 58 Emerald is described in [6, 50, 7, 87] Trellis Owl in [95] Slide 60 62 Definitions of class based inheritance are given in [57, 49, 110, 46, 63, 96, 9, 93] Annotated Bibliography 103 Slide 63 66 The soundness of ....
.... problem is made clear in [12] Mutable types are from [18] Simpler, specialized subtyping systems are presented in [109, 88, 70, 68, 71, 2, 1, 52] Minimal calculi are proposed in [40, 92, 16] A speciale case of the update problem is tackled in [20] Recursion and inheritance is analyzed in [33, 14, 15, 5]. A calculus with covariant specialization is proposed in [41, 22, 23] Undecidability of bounded polymorphism is shown in [84] Abstract data types are employed in [86, 85] their relation to classes is discussed earlier in [31] Large languages are presented in [13, 11] Slide 86 Type inference ....
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. Information and Computa- Annotated Bibliography 108 tion. To appear. Also in Proc. OOPSLA'89, ACM SIGPLAN Fourth Annual Conference on Object-Oriented Programming Systems, Languages and Applications, pages 433--443, New Orleans, Louisiana, October 1989.
....advantage of the object encoding methodology is that it demonstrates an upper bound on the complexity of language features in terms of the standard typing systems that are required for their encoding. The recursive record encoding of objects (OR) is based on ideas introduced by Cook and Palsberg [11]. It treats classes as generators of records of methods, and objects as their xed points. The encoding presented here is largely based on the recursive record encoding. Pierce and Turner present an encoding of objects using existential types [15] instead of recursive types (OE) demonstrating ....
William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, pages 433-443, October 1989. Published as Proceedings OOPSLA '89, ACM SIGPLAN Notices, volume 24, number 10.
.... problem of determining restrictions on recursive denitions to ensure that they dene something is not at all a new one, no obvious solution to our specic problem emerges from the literature, since we have to sometimes accept (let rec x = Gx) in M) especially when G reduces to a igeneratorj selfM [13]. The main contribution of this paper is a solution to this problem: rst, we extend the core iReference MLj language, as considered by Wright and Felleisen [52] with let rec and operations on records, similar to the ones of Cardelli and Mitchell [12] We then provide a type system for this ....
.... Roughly speaking, a mixin is a class denition parameterized over its superclass (there is some similarity with the parameterized classes of Eiffel [33] and the ivirtual classesj of Beta [31] Let us introduce some informal terminology: ffl an object is the xpoint (fix Gen) of a generator (cf. [13]) ffl a generator is a function of a iselfj parameter, returning a record of elds and methods. Then a typical generator value is thus sh Delta Delta Delta fields Delta Delta Delta methods Delta Delta Delta i like for instance the empty generator shi, and an object is therefore a ....
W.Cook, J. Palsberg, A denotational semantics of inheritance and its correctness, OOPSLA '89, ACM SIGPLAN Notices Vol. 24 No. 10 (1989) 433-443.
No context found.
W. Cook and J. Palsberg. Denotational semantics of inheritance and its correctness. In Proc. 4th ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pages 433443, 1989.
No context found.
W. Cook and J. Palsberg. A Denotational Semantics of Inheritance and its Correctness. OOPSLA '89 Conference Proceedings, pp. 433-444, ACM Press, 1989.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In Proceedings 4th ACM Conference on Object-Oriented Programming: Systems, Languages and Applications (OOPSLA'89), pages 433--444, 1989.
No context found.
William Cook, Jens Palsberg. A Denotational Semantics of Inheritance and its Correctness. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 433-443, New Orleans, October 1989. Published as ACM SIGPLAN Notices 24(10), October 1989.
No context found.
Cook, W., and Palsberg, J. A denotational semantics of inheritance and its correctness. In Conf. on Object-Oriented Programming:Systems, Languages and Applications (1989), ACM.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation, 114(2):329--350, 1994. Also OOPSLA'89.
No context found.
William Cook and Jen Palsberg. A denotational semantics of inheritance and its correctness. In Proc. ACM Conf. on Object-Oriented Programming: Systems, Languages and Applications, pages 433--444, 1989.
No context found.
William Cook and Jen Palsberg. A denotational semantics of inheritance and its correctness. In Proc. ACM Conf. on Object-Oriented Programming: Systems, Languages and Applications, pages 433--444, 1989.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation, 114(2):329--350, 1994.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In Proc. 4th ACM Conf. on Object-Oriented Programming: Systems, Languages and Applications (OOPSLA'89), pages 433--444, 1989.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In N. Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), volume 24, pages 433--444, New York, NY, 1989. ACM Press.
No context found.
W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. Information and Computation 114(2), 329--350 (1994).
First 50 documents Next 50
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