Affiliation:
1. Massachusetts Institute of Technology
Abstract
A traditional philosophical controversy between representing general concepts as abstract
sets
or
classes
and representing concepts as concrete
prototypes
is reflected in a controversy between two mechanisms for sharing behavior between objects in object oriented programming languages.
Inheritance
splits the object world into
classes
, which encode behavior shared among a group of
instances
, which represent individual members of these sets. The class/instance distinction is not needed if the alternative of using
prototypes
is adopted. A prototype represents the
default
behavior for a concept, and new objects can re-use part of the knowledge stored in the prototype by saying how the new object differs from the prototype. The prototype approach seems to hold some advantages for representing default knowledge, and incrementally and dynamically modifying concepts.
Delegation
is the mechanism for implementing this in object oriented languages. After checking its idiosyncratic behavior, an object can forward a message to prototypes to invoke more general knowledge. Because class objects must be created before their instances can be used, and behavior can only be associated with classes, inheritance fixes the communication patterns between objects at instance creation time. Because any object can be used as a prototype, and any messages can be forwarded at any time, delegation is the more flexible and general of the two techniques.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference13 articles.
1. G. M. Binwistle O-I Dahl B. Myhrhaug K. Nygaard. 5imula Be~in. Van Nosu'and Reinhold New York 1973. G. M. Binwistle O-I Dahl B. Myhrhaug K. Nygaard. 5imula Be~in. Van Nosu'and Reinhold New York 1973.
2. Knowledge Programming;Bobrow Daniel;Loops. AI Magazine,1983
Cited by
112 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. VTAG: Virtual Lab for Tree-Adjoining Grammar-Based Research;Information and Communication Technology for Competitive Strategies (ICTCS 2022);2023
2. A Catalog of Design Patterns for Compositional Language Engineering.;The Journal of Object Technology;2022
3. Facet-oriented Modelling;ACM Transactions on Software Engineering and Methodology;2021-05
4. Taming the Merge Operator;Journal of Functional Programming;2021
5. History of Logo;Proceedings of the ACM on Programming Languages;2020-06-12