13 citations found. Retrieving documents...
W.R. LaLonde, "Designing Families of Data Types Using Exemplars," ACM Trans. on Prog. Lang. and Systems, 11, 2 (1989), 212-248.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
The Effects of Layering and Encapsulation on - Software Development Cost (1994)   (Correct)

....the basis for this belief, although in our experience the performance penalty typically is minimal if the proper abstract functionality is encapsulated in the component. Language features such as code inheritance actually encourage violation of encapsula tion while appearing to support layering [8]. We know of no controlled studies showing that the use of layering and encapsulation improves the cost or quality of component development, based on such measures as time to design develop or number of defects in the resulting product. While abstract and anecdotal arguments have some place in ....

W.R. LaLonde, "Designing Families of Data Types Using Exemplars," ACM Trans. on Prog. Lang. and Systems, 11, 2 (1989), 212-248.


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

....similar pur poses, supporting conceptual specialization. Jrvinen [Jrv97] illustratively states that class inheritance is type inheritance (derivation) extended by ability of classes to be present in relations and participate in actions (events) This is in conformation with LaLonde and Pugh [LaL89, LaP91] who state that subtyping is merely a substitutability relationship. Class inheritance, on the other hand, is also a modularization tool for hierarchical relationships of concepts. We can say that an object has a kind of execution will , whereas a plain variable has not, i.e. an object ....

....application fields inheritance is basically restricted to satisfy the requirements of subtyping. 4. 9 Subclassing, subtyping and inheritance Conceptually the differences between subclassing, subtyping and inheritance (in the sense of pure inheritance) can be defined as follows (LaLonde and Pugh [LaL89, LaP91]) Subclassing is an implementation mechanism for sharing code and representation. Subtyping is a substitutability relationship: an instance of a subtype can stand for an instance of its supertype. Is a is a conceptual specialization relationship: it describes one kind of objects as a ....

LaLonde, W.R., Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, Vol. 11, No. 2 (Apr) 1989, pp.212-248


An Object-Oriented Refinement Calculus with Modular Reasoning - Utting (1992)   (15 citations)  (Correct)

....to a class are automatically propagated down the inheritance hierarchy to all its subclasses . Although many statically typed object oriented languages link inheritance and subtyping, a number of researchers have pointed out that they are better treated as separate facilities [Sny86] Ame86a] LaL89] CHC90] The primary purpose of inheritance (or delegation) is to maximise reusability by sharing implementations, whereas the primary purpose of subtyping is to order objects according to their external behaviour and allow substitution of objects that have compatible behaviour. Although the ....

....for supporting reusability and subtyping, it is possible to maximise reusability while still supporting modular reasoning. This is a powerful reason for separating these features in future language designs and adds weight to the usual reasons for separating subtyping from reuse [Sny86] Ame86a] LaL89] CHC90] Another advantage of providing separate reuse and subtyping mechanisms is that the reuse mechanism can be extended to allow specifications (i.e. abstract behaviour) to be reused in a flexible fashion, independently of whether or not subtyping is intended. For example, objectoriented ....

Wilf R. LaLonde. Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, 11(2):212--248, April 1989. Ref. on pages 23, 42.


Subtyping, Modular Specification, and Modular Verification.. - Leavens, Weihl (1994)   (Correct)

.... The notion of legal subtyping must even be stronger than the syntactic guarantee that the new type will not cause type checking (or message not understood ) errors (see, for example, 8] It must instead be a behavioral notion, based on the specification of an abstract data type [1] 42] 40] [30] [15] 2] 44] 45] See Section 8 for a discussion of related work. As an example of the distinction between legal subtyping and subclassing, consider two types IntSet and Interval, where Interval is a type of closed intervals of integers, and IntSet is a type of integer sets. Both types of ....

.... a clear separation of the notions of inheritance and subtyping is a tool of great conceptual power in object oriented programming, since it allows one to use inheritance to implement types in the most economical manner, and use subtyping to organize and reason about the use of types [58] 31] [30] [42] 15] 2] The distinction between subtypes and subclasses is not just academic. If one passes an argument whose type is not a subtype of the expected formal argument type to a procedure, the procedure will not act as desired. So if one uses subclasses as if they always implemented subtypes, ....

LaLonde, W. R. Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, 11(2):212--248, April 1989.


Design of class hierarchies based on concept (Galois).. - Godin, Mili, Mineau.. (1998)   (1 citation)  (Correct)

....Cox (1990) produces libraries that are difficult to understand and to reuse. Many authors advocate that the inheritance hierarchy be as consistent as possible with specialization (Casais, 1991; Coleman, Arnold, Bodoff, Dollin, Gilchrist, Hayes Jeremaes, 1994; Cook, 1992; Johnson Foote, 1988; Lalonde, 1989; Liskov, 1988) to achieve better understandability and reusability. Initially proposed for knowledge acquisition and discovery in the artificial intelligence field (Godin Missaoui, 1994; Godin, Missaoui Alaoui, 1991; Wille, 1982; Wille, 1992) concept (or Galois) lattices have recently found ....

Lalonde, W. R. (1989). Designing Families of Data Types Using Exemplars. ACM Trans. on Prog. Languages and Systems, 11(2), 212-248.


Split Objects: a Disciplined Use of Delegation within Objects - Bardou, Dony (1996)   (10 citations)  (Correct)

.... object oriented programming or representation language [19] Efficient class less languages with some kind of sharing but without delegation can be built [28] and it is possible to imagine some uses of delegation in many different worlds including worlds without classes [1] and worlds with classes [10, 15, 16]. The delegation mechanism is based on a link (generally called parent or delegation link) between objects 2 , rather than between descriptions. In objectoriented programming, delegation is presented as a message forwarding mechanism [17, 18] informally described in the following way: an ....

W.R. LaLonde. Designing Families of Data Types Using Exemplars. In ACM TOPLAS (11)2 , pp. 212--248, 1989.


Design and Specification of Iterators Using the Swapping.. - Weide, Edwards, Harms.. (1992)   (2 citations)  (Correct)

....By saying that this new concept enhances the Queue Template concept, we mean that Queue Iterator Template imports and exports all the types and operations of the Queue Template, plus those explicitly specified in the new concept. Enhancement is a kind of specification or interface inheritance [LaLonde 89] One possible implementation strategy for this enhancement is to layer the Iterator type and operations on top of the Queue Template [Muralidharan 90, Harms 91, Weide 91] so the new code respects the Queue abstraction. Another is to directly implement all the exported types and operations from ....

LaLonde, W.R., "Designing families of data types using exemplars," ACM Trans. on Prog. Lang. and Syst. 11, 2 (1989), 212-248.


Representation Inheritance: A Safe Form of "White Box" Code.. - Stephen Edwards (1995)   (3 citations)  (Correct)

.... invariant, abstraction function, reuse 1 Introduction Inheritance as a programming language mechanism can be used to achieve several different goals, both in terms of expressing relationships between components and in terms of defining new components by difference from existing ones [LaL89] Failing to differentiate the various uses of inheritance, however, can complicate life for both component clients and component implementers difficult [Edw93] To address the problems of clients, the Liskov Substitutability Principle (LSP) has been proposed as the appropriate meaning for ....

Wilf R. LaLonde. Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, 11(2):212--248, April 1989.


The Larch/Smalltalk Interface Specification Language - Cheon, Leavens (1994)   (Correct)

....specifications according to subtype relationships allows one to see types based on their conceptual relationships. This makes it easier both for specifiers to maintain large volumes of specifications and for clients to navigate through specifications for possible reuse of program modules [LaL89, LTP86] A Larch Smalltalk type can be parameterized by type parameters to specify a set of related types. Type parameters can be restricted to subtypes of given types [CW85] The process of writing formal specifications is as error prone as the process of programming. As programming tools are of ....

....A superclass may specify that subclasses must define a method that a particular subclass does not define, or a subclass can redefine a method to make it inaccessible. We want specification inheritance to be based on behavior (subtyping) not implementation (subclassing) Ame91, Coo89, LaL89] ffl We want multiple inheritance of specifications; that is, we want a type to be a subtype of more than one type. However, classes in Smalltalk can have only one superclass. ffl Smalltalk classes are typically organized in such a way to give a high degree of code sharing, not according to ....

[Article contains additional citation context not shown here]

Wilf R. LaLonde. Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, 11(2):212--248, April 1989.


Parents are Shared Parts of Objects: Inheritance and.. - Chambers, Ungar.. (1991)   (18 citations)  (Correct)

....are based on classes and use inheritance to allow a class to obtain methods and instance variables [26] Sometimes classes and inheritance are also used to specify type compatibility. Within the last few years, however, there have been several proposals for languages based on prototypes [3, 9, 10, 12, 22, 25]. These languages do not include classes but instead allow individual objects to inherit from (or delegate to) other objects. The issues surrounding inheritance and encapsulation need to be revisited when designing such a language. This paper describes the inheritance and encapsulation mechanisms ....

LaLonde, W. R. Designing Families of Data Types Using Exemplars. In ACM Transactions on Programming Languages and Systems, 11, 2 (1989) 212248.


Specifying and Verifying Object-Oriented Programs: An Overview of .. - Tr Gary   (Correct)

...., s 2 : C] s 1 = s 2 ) s 1 = s 2 ) CardToInt: trait imports Cardinal, Integer introduces toInt: Card Int asserts for all [c: Card] toInt(0) 0 toInt(succ(c) 1 toInt(c) Figure 2: The traits IntSetTrait and CardToInt. The imports section brings in the text of the named traits (from [4]) The renamings following with alter the text of the imported traits; for example substituting Int for E. Trait functions and their signatures are declared after introduces. The trait function = is an infix operator, because its declaration uses sharp signs (#) to show argument positions. ....

....ACM SIGPLAN Notices, 21(11) 38 45, November 1986. OOPSLA 86 Conference Proceedings, Norman Meyrowitz (editor) September 1986, Portland, Oregon. 3] John V. Guttag, James J. Horning, and Jeannette M. Wing. The Larch family of specification languages. IEEE Software, 2(4) September 1985. [4] J. V. Guttag and J. J. Horning. A Larch shared language handbook. Science of Computer Programming, 6:135 157, 1986. 5] Philip Wadler and Stephen Blott. How to make ad hoc polymorphism less ad hoc. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming ....

[Article contains additional citation context not shown here]

Wilf R. LaLonde. Designing families of data types using exemplars. ACM Transactions on Programming Languages and Systems, 11(2):212--248, April 1989.


Organizing Programs Without Classes - Ungar, Chambers, Chang, Hölzle (1991)   (25 citations)  (Correct)

....as its own special subtype of the general data type, and use method dispatching and inheritance to eliminate the flag tests. For example, the collection data type could be refined into an empty collection data type and a non empty collection data type, using inheritance to relate the three types [8]. However, the behavior mode of an instance may change as its state changes: an empty collection becomes non empty if an element is added to it. This would correspond in a class based language to changing an object s class dynamically, and in a prototype based language to changing an object s ....

LaLonde, W. R. Designing Families of Data Types Using Exemplars. In ACM Transactions on Programming Languages and Systems, 11, 2 (1989) 212248.


G Numerics - The Numerics   (Correct)

No context found.

W. R. LaLonde. "Designing Families of Data Types using Exemplars". ACM Transactions on Programming Languages and Systems 11(2), April 1989.

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