Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
ACM Transactions on Programming Languages and Systems (TOPLAS)
Traits: An approach to multiple-inheritance subclassing
Proceedings of the SIGOA conference on Office information systems
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of distributed Smalltalk
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Type theories and object-oriented programmimg
ACM Computing Surveys (CSUR)
Designing families of data types using exemplars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Rosette: An object-oriented concurrent systems architecture
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Reflective facilities in Smalltalk-80
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Rule-based delegation for prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Toward a typed foundation for method specialization and inheritance
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type consistency of queries in an object-oriented database system
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Queries and query processing in object-oriented database systems
ACM Transactions on Information Systems (TOIS)
Trait: an attribute management system for VLSI design objects
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
CLOStrophobia: its etiology and treatment
ACM SIGPLAN OOPS Messenger
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Advantages of a component-based approach to defining complicated objects
ACM SIGPLAN OOPS Messenger
Interfaces and specifications for the Smalltalk-80 collection classes
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Prototype-based languages: from a new taxonomy to constructive proposals and their validation
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
ADAMS: an object-oriented system for epidemiological data manipulation
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Prototype-based languages (panel): object lessons from class-free programming
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Combining contracts and exemplar-based programming for class hiding and customization
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The Larch/Smalltalk interface specification language
ACM Transactions on Software Engineering and Methodology (TOSEM)
Delegation versus concatenation or cloning is inheritance too
ACM SIGPLAN OOPS Messenger
Split objects: a disciplined use of delegation within objects
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Computing Surveys (CSUR)
On Including Part Hierarchies in Object-Oriented Languages with an Implementation in Smalltalk
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Sharing Properties in a Uniform Object Space
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Modular Statically Typed Multimethods
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Automating Delegation in Class-Based Languages
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
A Semantics of the Separation of Interface and Implementation in C++
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
On the specification of software components
IWSSD '91 Proceedings of the 6th international workshop on Software specification and design
ACM SIGPLAN Notices - Best of PLDI 1979-1999
ACM-SE 33 Proceedings of the 33rd annual on Southeast regional conference
SysObjC: C extension for development of object-oriented operating systems
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Implementing signatures for C++
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
An automated process for implementing multilevel domain models
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Efficient multimethods in a single dispatch language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Object-oriented programming with gradual abstraction
Proceedings of the 8th symposium on Dynamic languages
Hi-index | 0.00 |
Two varieties of object-oriented systems exist: one based on classes as in Smalltalk and another based on exemplars (or prototypical objects) as in Act/1. By converting Smalltalk from a class based orientation to an exemplar base, independent instance hierarchies and class hierarchies can be provided. Decoupling the two hierarchies in this way enables the user's (logical) view of a data type to be separated from the implementer's (physical) view. It permits the instances of a class to have a representation totally different from the instances of a superclass. Additionally, it permits the notion of multiple representations to be provided without the need to introduce specialized classes for each representation. In the context of multiple inheritance, it leads to a novel view of inheritance (or-inheritance) that differentiates it from the more traditional multiple inheritance notions (and-inheritance). In general, we show that exemplar based systems are more powerful than class based systems. We also describe how an existing class based Smalltalk can be transformed into an exemplar-based Smalltalk and discuss possible approaches for the implementation of both and-inheritance and or-inheritance.