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
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A law-based approach to object-oriented programming
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Data abstraction mechanisms in SINA/ST
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
A software development environment for law-governed systems
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A shared view of sharing: the treaty of Orlando
Object-oriented concepts, databases, and applications
Rule-based delegation for prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Simula Begin
Configuration management by consensus: an application of law-governed systems
SDE 4 Proceedings of the fourth ACM SIGSOFT symposium on Software development environments
The Imposition of Protocols Over Open Distributed Systems
IEEE Transactions on Software Engineering
Delegation: dynamic specialization
TRI-Ada '94 Proceedings of the conference on TRI-Ada '94
Sharing Properties in a Uniform Object Space
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Hi-index | 0.00 |
We believe that the regime governing the patterns of sharing between objects, and of exchange of messages between them, should not be “hard-wired” into a programming language, but should be specifiable by the builders of a system to fit its particular requirements. This thesis has been the primary motivation behind our general concept of law-governed system, which serves as the foundation for this paper.We show how the law can be used to impose a variety of useful constraints over the structure and behavior of delegation-based systems. Such a law may contain some very specific rules that apply only to small parts of a system; it may also impose some very general regimes, such as class inheritance, on the entire system. We also argue that the constraints established by the law can be easily adapted to the changing requirements of an evolving system. This should be very useful in managing the process of software development from its design stage, through prototyping, construction, and beyond.