Results 1 -
4 of
4
SELF: The power of simplicity
, 1987
"... Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languag ..."
Abstract
-
Cited by 520 (16 self)
- Add to MetaCart
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of simple and concrete ideas: prototypes, slots, and behavior. Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages. Slots unite variables and procedures into a single construct. This permits the inheritance hierarchy to take over the function of lexical scoping in conventional languages. Finally, because SELF does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures. SELF’s simplicity and expressiveness offer new insights into objectoriented computation. To thine own self be true. —William Shakespeare 1
Temporal Rule Specification and Management in Object-oriented Knowledge Bases
- In Proceedings of the First International Workshop on Rules in Database Systems, Edingburgh
, 1993
"... There have been many recent research efforts on temporal databases for managing current and historical data and on active databases for monitoring real-world events as well as data conditions/constraints by rules and triggers. However, the specification and management of temporal rules in active obj ..."
Abstract
- Add to MetaCart
There have been many recent research efforts on temporal databases for managing current and historical data and on active databases for monitoring real-world events as well as data conditions/constraints by rules and triggers. However, the specification and management of temporal rules in active object-oriented databases has not been investigated. This paper deals with the specification and management of temporal requirements and constraints of real-world applications. We present a temporal knowledge model in which temporal rules are defined as part of the semantic specifications of object instances and object classes. We also present a temporal specification language which is characterized by its validity time specification, its trigger specification that involves time and system- and user-defined operations, and the inclusion of temporal conditions and association patterns in temporal rules. Three general types of temporal rules are distinguished: state rules for specifying the legitimate or illegitimate states of a temporal knowledge base, operational rules for specifying the operations to be taken under various temporal conditions, and deductive rules for deducing objects' data values and object associations which are not explicitly stored. Activations of temporal rules are controlled by triggers which specify the various times and conditions for rule evaluation. Rules can be updated resulting in historical rules. Rules can be inherited in a superclass-subclass hierarchy or a lattice as the inheritance of attributes and operations in the object-oriented paradigm. Temporal rules are modeled as first class objects and thus can be managed uniformly as temporal data by a temporal knowledge base management system. The methods for updating, retrieving, triggering, and eva...
How Lisp Systems Look Different In Proceedings of European Conference on Software Maintenance and Reengineering (CSMR 2008)
"... Many reverse engineering approaches have been developed to analyze software systems written in different languages like C/C++ or Java. These approaches typically rely on a meta-model, that is either specific for the language at hand or language independent (e.g. UML). However, one language that was ..."
Abstract
- Add to MetaCart
Many reverse engineering approaches have been developed to analyze software systems written in different languages like C/C++ or Java. These approaches typically rely on a meta-model, that is either specific for the language at hand or language independent (e.g. UML). However, one language that was hardly addressed is Lisp. While at first sight it can be accommodated by current language independent meta-models, Lisp has some unique features (e.g. macros, CLOS entities) that are crucial for reverse engineering Lisp systems. In this paper we propose a suite of new visualizations that reveal the special traits of the Lisp language and thus help in understanding complex Lisp systems. To validate our approach we apply them on several large Lisp case studies, and summarize our experience in terms of a series of recurring visual patterns that we have detected.

