Results 1 -
6 of
6
Predicate Classes
, 1993
"... . Predicate classes are a new linguistic construct designed to complement normal classes in objectoriented languages. Like a normal class, a predicate class has a set of superclasses, methods, and instance variables. However, unlike a normal class, an object is automatically an instance of a predica ..."
Abstract
-
Cited by 117 (8 self)
- Add to MetaCart
. Predicate classes are a new linguistic construct designed to complement normal classes in objectoriented languages. Like a normal class, a predicate class has a set of superclasses, methods, and instance variables. However, unlike a normal class, an object is automatically an instance of a predicate class whenever it satisfies a predicate expression associated with the predicate class. The predicate expression can test the value or state of the object, thus supporting a form of implicit property-based classification that augments the explicit type-based classification provided by normal classes. By associating methods with predicate classes, method lookup can depend not only on the dynamic class of an argument but also on its dynamic value or state. If an object is modified, the property-based classification of an object can change over time, implementing shifts in major behavior modes of the object. A version of predicate classes has been designed and implemented in the context of t...
Efficient Distributed Implementation of Semi-Replicated Synchronous Groupware
, 1996
"... The Model View Controller (MVC) architecture has proven to be an effective way of organizing synchronous groupware applications. Distributed implementations of MVC, however, can suffer from poor performance. This paper demonstrates how optimized semi-replication of MVC architectures can lead to good ..."
Abstract
-
Cited by 41 (7 self)
- Add to MetaCart
The Model View Controller (MVC) architecture has proven to be an effective way of organizing synchronous groupware applications. Distributed implementations of MVC, however, can suffer from poor performance. This paper demonstrates how optimized semi-replication of MVC architectures can lead to good performance over both local and wide area networks. We present a series of optimizations to network communication based on specific communication properties of groupware. These optimizations have been implemented in the Clock groupware development toolkit, allowing programmers to develop applications directly in the high-level MVC style, with Clock automatically providing optimized performance. Timings of an application developed in Clock show that usable speed was obtained in a highly interactive groupware application running between Toronto and Calgary, with a typical latency of 190 ms per round trip message. The paper discusses the tradeoffs involved in the algorithms, and presents timings to demonstrate the effectiveness of the different approaches. The timings show that when running over a wide area network, the best optimization can achieve a factor 60 speedup over the naive implementation of distributed MVC.
A Reflective Model for First Class Dependencies
- In OOPSLA'95
, 1995
"... We propose a reflective model to express and to automatically manage dependencies between objects. This model describes reflective facilities which enable the changing of language semantics. Although the importance of inter-object dependencies is well accepted, there is only limited object-oriented ..."
Abstract
-
Cited by 21 (8 self)
- Add to MetaCart
We propose a reflective model to express and to automatically manage dependencies between objects. This model describes reflective facilities which enable the changing of language semantics. Although the importance of inter-object dependencies is well accepted, there is only limited object-oriented language support for their specification and implementation. In response to this lack of expressiveness of object models, the flo language integrates dependency management into the object oriented paradigm. Dependencies are described as first class objects and flo automatically maintains the consistency of the dependency graph.
Amulet’s dynamic and flexible prototype-instance object and constraint system in C
, 1995
"... In order to support rapid prototyping and efficient construction of user interface software, the Amulet user interface development environment uses a prototype-instance object model integrated with a constraint solver. The important innovations in the Amulet object and constraint systems are the aut ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
In order to support rapid prototyping and efficient construction of user interface software, the Amulet user interface development environment uses a prototype-instance object model integrated with a constraint solver. The important innovations in the Amulet object and constraint systems are the automatic management of a part-owner hierarchy in addition to the prototype instance hierarchy, the support for multiple constraint solvers at the same time, control over slot inheritance, flexible demons, and a convenient integration of the models with C++ without requiring a pre-processor. This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, ARPA Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NCCOSC or the U.S. Government.
Linguistic Support for the Evolutionary Design of Software Architectures
, 1996
"... As a program's functionality evolves over time, its software architecture should evolve as well, so that it continues to match the program's design. This paper introduces the architecture language of Clock, a language for the development of interactive, multiuser applications. This architecture lang ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
As a program's functionality evolves over time, its software architecture should evolve as well, so that it continues to match the program's design. This paper introduces the architecture language of Clock, a language for the development of interactive, multiuser applications. This architecture language possesses three properties supporting the easy restructuring of software architectures: restricted scoping supported by a constraint-based communication system, automatic message routing, and easy hierarchical restructuring of architectures. Clock's architecture language has a visual syntax, supported by the ClockWorks programming environment. 1 Introduction Garlan and Perry describe the process of developing a software architecture as "[exposing] the dimensions along which a system is expected to evolve", and identifying the system's "load-bearing walls" [3]. Implicit in this analogy is that the internals of the architecture 's components may evolve over time, but that changing the ...
PIDGETS++ A C++ Framework Unifying PostScript Pictures, Graphical User Interface Objects, and Lazy One-Way Constraints
- In Conference on the Technology of Object-Oriented Languages and Systems (TOOLS USA 96
, 1996
"... A framework for programming graphical user interfaces (GUIs), called PIDGETS++, is presented. PIDGETS++ enables arbitrary device-independent PostScript graphics descriptions to be composed and manipulated as structured C++ objects. Not only can graphics descriptions be displayed in windows, addition ..."
Abstract
- Add to MetaCart
A framework for programming graphical user interfaces (GUIs), called PIDGETS++, is presented. PIDGETS++ enables arbitrary device-independent PostScript graphics descriptions to be composed and manipulated as structured C++ objects. Not only can graphics descriptions be displayed in windows, additionally, they can be equipped with handlers which are invoked whenever a user event occurs while the mouse pointer's hot spot is over the area colored by the graphics description. Thus, arbitrary GUI objects may be constructed as composite graphics descriptions. Moreover, GUI objects are amenable to arbitrary PostScript transformations such as coloring, rotation, scaling, and clipping while staying fully functional. GUI objects are constructed in a declarative style. At the time of its creation, each GUI object's appearance is constrained to be a function of the states of a set of other objects; this constraint is maintained by the PIDGETS++ system throughout the GUI object's lifetime. From a...

