88 citations found. Retrieving documents...
Snyder A.: Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, Object-Oriented Programming Systems, Languages, and Applications. November 1986

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Concepts of Behavioral Subtyping and a Sketch of their.. - Leavens, Dhara (2000)   (5 citations)  (Correct)

.... restricts the use of binary methods [BCC 95] Conversely, treating subclasses as behavioral subtypes limits certain uses of inheritance; for example, Doubly Ended Queue could otherwise be a subtype of Stack, even though it is more convenient for Stack to inherit from Doubly Ended Queue [Sny86] 6.4 Behavioral Subtyping for Components A common theme in work on behavioral subtyping is that objects of behavioral subtypes should be able to be manipulated without surprises, where surprises are defined relative to the specification of the supertype. Hence this method of modular reasoning ....

Snyder, A. Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN Notices, 21(11):38--45, November 1986. OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.


Preventing Cross-Type Aliasing for More Practical Reasoning - Dhara, Leavens (2001)   (Correct)

....on types. They do not consider aliasing or interference. Mikhajlova and her coauthors [36] present sound veri cation of OO programs in a re nement calculus framework. However, their work is based on class re nement and treating classes as types restricts both subclasses and subtypes [44]. Abadi and Leino [1] extend the work of Cardelli s [7] structural subtyping rules on records to include behavior. They present an axiomatic semantics and provide guidance on reasoning about OO programs. However, their approach is not modular and does not provide any help to make reasoning about ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN Notices, 21(11):38-45, Nov. 1986. OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.


Object-oriented Issues - A Literature Review - Nierstrasz   (Correct)

....with Smalltalk experience papers, and actor message passing architectures. Lewi86 Patt83 Samp86 Snyd79 Unga84] Concepts: There are an increasing number of papers discussing various object oriented concepts. See also survey papers and special issues, and papers on types and on data abstraction, [Borg86 Cunn86 Gogu86 Hend86 Khos86 Lalo86 Lieb86 Mads86 Nguy86 Ossh86 Sand86 Snyd86b Stro86c Wegn86] Concurrency: These papers discuss various mechanisms and formalisms for coping with concurrency (CSP, monitors, etc. The Andrews survey is excellent. Andr81 Andr83 Bern81 Brin72 Brin73 Brin78 Broo84 Dijk75 Hoar74 Hoar78 Lamp83 Nier87b Shoc82 Silb84 Upfa84] Data Abstraction: These papers ....

A. Snyder, "Encapsulation and Inheritance in Object-Oriented Programming Languages ", ACM SIGPLAN Notices, vol. 21, no. 11, pp. 38-45, Nov 1986.


Data Abstraction and Hierarchy - This Research Was   (Correct)

....rep of only one object. 3. Inheritance and Hierarchy This section discusses inheritance and how it supports hierarchy. We begin by talking about what it means to construct a program using inheritance. Then we discuss two major uses of inheritance, implementation hierarchy and type hierarchy; see [18] for a similar discussion. Only one of these, type hierarchy, adds something new to data abstraction. 3.1. Inheritance In a language with inheritance, a data abstraction can be implemented in several pieces that are related to one another. Although various languages provide different mechanisms ....

....a class) has two kinds of users. There are the outsiders who simply use the objects by calling the operations. But in addition there are the insiders. These are the subclasses, which are typically permitted to violate encapsulation. There are three ways that encapsulation can be violated [18]: the subclass might access an instance variable of its superclass, call a private operation of its superclass, or refer directly to superclasses of its superclass. This last violation is not possible in Smalltalk. When encapsulation is not violated, we can reason about operations of the ....

Snyder, A. "Encapsulation and Inheritance in Object-Oriented Programming Languages". Proc. of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, SIGPLAN Notices 21, 11 (November 1986).


Preventing Cross-Type Aliasing for More Practical Reasoning - Dhara, Leavens (2001)   (Correct)

....on types. They do not consider aliasing or interference. Mikhajlova and her coauthors [36] present sound verification of OO programs in a refinement calculus framework. However, their work is based on class refinement and treating classes as types restricts both subclasses and subtypes [44]. Abadi and Leino [1] extend the work of Cardelli s [7] structural subtyping rules on records to include behavior. They present an axiomatic semantics and provide guidance on reasoning about OO programs. However, their approach is not modular and does not provide any help to make reasoning about ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN Notices, 21(11):38--45, Nov. 1986. OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.


A Study of The Fragile Base Class Problem - Mikhajlov, Sekerinski   (24 citations)  (Correct)

....control of system developers, who, in principle, can analyze the e#ect of E. Jul (Ed. ECOOP 98, LNCS 1445, pp. 355 382, 1998. c Springer Verlag Berlin Heidelberg 1998 certain base class revisions on the entire system. Although possible in principle, in practice this becomes infeasible [29,23]. In an open system the fragile base class problem requires consideration during design [32] We have encountered several di#erent interpretations of the problem in the technical literature on this topic. Often, during a discussion of component standards, the name is used to describe the ....

....(M mod C # ) obtained by substituting C # for C, and the sequence of method calls obj.n;obj.m, we face the problem. By looking at C, we could assume that the sequence of method calls makes x equal to 3, whereas, in fact, x is assigned only 1. An analogous problem was described by Alan Snyder in [23]. He notices that Because the instance variables are accessible to clients of the class, they are (implicitly) part of the contract between the designer of the class and the designers of descendant classes. Thus, the freedom of the designer to change the implementation of a class is reduced . In ....

A. Snyder. Encapsulation and Inheritance in Object-Oriented Programming Languages. OOPSLA '86 Proceedings, volume 21 of SIGPLAN Notices, pp. 38--45, 1986. 356, 362


Classifying Inheritance Mechanisms in Concurrent.. - Crnogorac, Rao.. (1988)   (2 citations)  (Correct)

.... letting the class Bu#er inherit from a new root class Lock Languages that do not enforce encapsulation with respect to subclasses (including the simple illustrative language in Figure 2) have even more problems since subclass methods may depend on the implementational details of the superclass [28]. Lobel Crnogorac et al. LockableExtBuff class ; locked (i = j) method get2( when . code for get rear ( locked ( i j) 1) method get rear( when . code for get2 LockableRevBuff Fig.3a. Fig.3b. Lock Buffer StatsBuff NewBuff RevBuff ExtBuff ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA'86, pages 38--45. ACM Press, September 1986. 577


Inheritance Decomposed - Fröhlich (2002)   (1 citation)  (Correct)

....for the application of inheritance in the design and implementation of software systems. Some well known examples illustrate this problem: The classic notion of inheritance confuses the relations of subtyping, which concerns substitutability, and subclassing, which concerns code reuse [1, 4, 15, 19]. Surprisingly, even relatively modern languages such as Java [10] separate these relations only partially. From a modeling perspective, inheritance can be used for either classification or implementation purposes. The former implies statements such as Every square is a rectangle for which ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In N. Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 38--45, Portland, OR, Nov. 1986.


A Coalgebraic Semantics of Subtyping - Poll (2000)   (1 citation)  (Correct)

....above, and relate the two. 2.3. Subtyping vs Inheritance In the OO literature there has been a lot of discussion on the precise meaning of inheritance and subtyping, and the di#erence, if any, between them. It is now generally recognised that one can distinguish (at least) two di#erent notions [2, 8, 29]. Beware that a lot of the literature on OO treats the terms inheritance and subtyping as synonyms This is why, to avoid any confusion, we use the term behavioural subtyping instead of just subtyping . Sometimes subtyping is called interface inheritance and inheritance implementation ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. ACM SIGPLAN, 21(11):38--45, November


Interfaces with Skeletal Implementations in Java - Mohnen (2000)   (1 citation)  (Correct)

....of simpler solutions. Eiffel [13] also allows multiple inheritance of methods, but differs from CLOS in the way this is implemented. While CLOS requires linearisation of the inheritance hierarchy, Eiffel implements it directly. The approach avoids the problems of the encapsulation violation [18] resulting from the linearisation in CLOS. While multiple inheritance is still allowed in C [19, 20] this language has a more restrictive way of handling inherited method implementations: If a method is inherited from more than one superclass, calls to this method must be qualified with the ....

SNYDER, A. Encapsulation and Inheritance in Object-Oriented Programming Languages. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (1986), vol. 21, 11 of ACM SIGPLAN Notices, ACM, pp. 38--45.


Interfaces and Specifications for the Smalltalk-80 Collection.. - Cook (1992)   (37 citations)  (Correct)

....ExtensibleCollection. 6 Interfaces Versus Inheritance Figure 5 shows the Smalltalk inheritance hierarchy (in bold) superimposed on the protocol hierarchy of Figure 4 (dotted lines) This is a concrete illustration of the difference, even at a syntactic level, between inheritance and conformance [CHC90, Synder86 ]. There are two cases where the hierarchy and protocol hierarchies are in direct conflict: Dictionary and SortedCollection. Dictionary inherits from Set but its protocol does not conform to Set s. This is because Dictionary cancels several of Set s methods. SortedCollection has a similar pattern ....

A. Snyder. "Encapsulation and inheritance in object-oriented programming languages." In Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages and Applications, 1986, pp. 38--45.


Encapsulation = Visibility + Accessibility - Kniesel (1996)   (Correct)

....sharing at different levels of granularity. We consider referential sharing (one object referenced by different other objects) as well as higher forms of sharing like inheritance and delegation. The relationship of encapsulation and (class based) inheritance was first thoroughly analysed by [11], shedding light on the circumstances under which inheritance violates encapsulation. This analysis was mainly conducted from a software engineering perspective, concentrating on the question whether changes to the implementation of an object that preserve the external interface do not affect ....

....under which inheritance violates encapsulation. This analysis was mainly conducted from a software engineering perspective, concentrating on the question whether changes to the implementation of an object that preserve the external interface do not affect code outside the class definition ([11], p. 39) More recently, 12] have analysed the relationship of encapsulation and object based inheritance (delegation) arriving at the conclusion that object based inheritance breaches encapsulation to a much stronger extent than class based inheritance does, because it allows an object to ....

[Article contains additional citation context not shown here]

A. Snyder: "Encapsulation and Inheritance in Object-Oriented Programming Languages", Proceedings OOPSLA '86, ACM SIGPLAN Notices, vol. 21, no. 11 (1986), pp. 38-45.


The Recursive Record Semantics of Objects Revisited - Boudol (2001)   (20 citations)  (Correct)

....returned by the class. This particular example may not look especially interesting we shall see later another example of the use of restriction. Some similar examples of excluding methods, like for instance building a class of stacks from a given class of dequeues, were given long ago by Snyder [46, 47]. Clearly, allowing such a reuse mechanism reinforces the fact that iinheritance is not subtypingj [14] The fact that the type of self in the point class does not contain any reference to the move method can be exploited in another way: we may redene this method with a type which is unrelated ....

....as in secretPoint = x let pos = ref x in mixin ( meth move(z; s) d(pos . pos d) meth draw(z; s) Delta Delta Delta ) for instance. This approach, where the elds are strictly private to objects but may be given access to by means of methods is the one advocated by Snyder in [46, 47]. We could indeed have adopted a strict interpretation of elds (this can actually be done simply by removing the related constructs) but we think in some cases it may be worth having more opportunities for inheritance. A feature we would like to add to our language is the ability to return, or ....

[Article contains additional citation context not shown here]

A. Snyder, Encapsulation and inheritance in object-oriented programming languages, OOPSLA '86, ACM SIGPLAN Notices Vol. 21 No. 11 (1986) 38-45.


Generic Wrappers - Büchi, Weck (2000)   (1 citation)  (Correct)

....that the wrapper can better modify the behavior of the wrappee. With forwarding, the wrappee can better control its own behavior and avoid such problems as the semantic fragile base class problem. Generic wrapping as discussed in this paper works with both options. The reader is referred to [30,19,26] for further discussions of pros and cons. 5.4 Replacing a Wrappee The wrappee of a given wrapper could be replaced by another object, the type of which is a subtype of the old dynamic wrappee type. It is not sufficient that the new wrappee is a subtype of the static wrappee type: A ....

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, pages 38--45. ACM Press, 1986.


Inheritance From The Standpoint Of Specification And Modeling - Pruuden   (Correct)

....a given class does not necessarily define a subtype of the type implemented by the class. Thus, in order to be able to talk about both type inheritance and class inheritance, implementation and interface should be kept separate. In other words, subtyping is merely a relationship between interfaces [Sny86]. Class inheritance is the most common utilization of inheritance in object oriented implementation languages. Semantically, class inheritance can be seen as an extension of type inheritance in the sense that class inheritance incorporates also the operations and therefore the local behavior of ....

....inheritance since the external behavior should be representation independent. Inheritance 30 Subclassing can be viewed as syntactic sugar, since it can be expressed in terms of specialization inheritance, but without any control on the preservation of semantics. PPP94] Many researchers (e.g. [Sny86, CHC90]) have noted that it refers to an implementation strategy, where a subclass inherits some of its implementation from its superclass. Subtyping on the other hand, refers to a relationship between the interfaces of two types. For conclusion on the discussion about subclassing, subtyping and ....

Snyder, A., "Encapsulation and Inheritance in Object-Oriented Programming Languages," OOPSLA `86 Conference Proceedings, ACM SIGPLAN Notices, Vol. 21, No. 11 (Nov) 1986, pp.38-45.


How To Deal With Encapsulation In Aspect-Orientation - Bergmans, Aksit (2001)   (1 citation)  (Correct)

.... UNIVERSITY OF TWENTE, P.O. BOX 217, 7500 AE, ENSCHEDE, THE NETHERLANDS Abstract Encapsulation has received considerable interest in the context of object oriented programming. In particular the encapsulation of objects that are composed through inheritance has been discussed repeatedly [Snyder 86, Micallef 88] Aspect oriented composition has similar considerations. However, most approaches to aspect orientation or multi dimensional composition of concerns do not enforce encapsulation of the implementation details of concerns. This might even lead to the impression that ....

....on this issue is to compare refinement of systems through aspect orientation with refinement through inheritance: also in the latter case, there has always been a need to access the implementation details of a superclass in the refined class. At the same time, it has been argued repeatedly [Snyder 86, Micallef 88] that it is important that subclasses are independent of the implementation of their superclasses. The popularity of black box (aggregation based) reuse also suggests that strong encapsulation, even with it its disadvantages, is more effective as well. Since superimposing a ....

A. Snyder, Encapsulation and Inheritance in Object-Oriented Programming Languages, OOPSLA '86, pp. 38-45


Modifiers in OFL - An Approach for Access Control Customization - Lahire, Pescaru (2003)   (Correct)

No context found.

Snyder A.: Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, Object-Oriented Programming Systems, Languages, and Applications. November 1986


Supporting Software Composition at the Programming-Language.. - Franz, Fröhlich, Gal (2003)   (Correct)

No context found.

A. Snyder, Encapsulation and inheritance in object-oriented programming languages, in: N. Meyrowitz (Ed.), Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Portland, OR, 1986, pp. 38--45.


Supporting Software Composition at the Programming-Language.. - Franz, Fröhlich, Gal   (Correct)

No context found.

A. Snyder, Encapsulation and inheritance in object-oriented programming languages, in: N. Meyrowitz (Ed.), Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Portland, OR, 1986, pp. 38--45.


OOPAL: Integrating Array Programming in Object-Oriented.. - Mougin, Ducasse (2003)   (Correct)

No context found.

A. Snyder. Encapsulation and inheritance in object-oriented programming languages. In Conference proceedings on Object-Oriented Programming Systems, Languages and Applications, pages 38--45. ACM Press, 1986.


Interfaces with Skeletal Implementations in Java - Mohnen (2000)   (1 citation)  (Correct)

No context found.

SNYDER, A. Encapsulation and Inheritance in ObjectOriented Programming Languages. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (1986), vol. 21, 11 of ACM SIGPLAN Notices, ACM, pp. 38--45.


Software Reuse in an Object Oriented Framework: - Distinguishing Types From   (Correct)

No context found.

A. Snyder "Encapsulation and Inheritance in Object-Oriented Programming Languages", in Proceedings of the OOPSLA '86, Portland, Oregon, Vol. 21, ACM SIGPLAN Notices, 1986.


Modifiers in OFL - An Approach for Access Control Customization - Pescaru, Lahire (2003)   (Correct)

No context found.

Snyder, A. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of OOPSLA '86, Object-Oriented Programming Systems, Languages, and Applications. November 1986


Oaklisp: An Object-Oriented Dialect of Scheme - Lang, Pearlmutter (1988)   (7 citations)  (Correct)

No context found.

Snyder, A. Encapsulation and inheritance in object-oriented programming languages. ACM Conference on Object-Oriented Systems, Programming. Languages and Applications, September 1986, pp. 38-45.


Run Time Component Extension and Update - Oliveira, Hermida   (Correct)

No context found.

Snyder A. Encapsulation and inheritance in object-oriented programming langyages ACM Conf. on Lisp and Functional Programming, 1986

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