We consider a system with a uniform object space. In a uniform object space, objects are the primary structural elements of the system. Such a system requires a different way of looking at the problem of sharing prope...
详细信息
ISBN:
(纸本)3540601600
We consider a system with a uniform object space. In a uniform object space, objects are the primary structural elements of the system. Such a system requires a different way of looking at the problem of sharing properties among objects. We describe the requirements on a suitable model of sharing and linguistic elements in the form of views and patterns to meet these requirements. With this model, we show that delegation both on the level of objects and as inheritance on the level of classes should only serve as a basis for implementing some of the linguistic elements of the model but not as such an element by itself. The model described in this paper finds itself in the language ARISTARCH/L which supports the object-based operating system ARISTARCH/OS that is under development in SAMOS, a project undertaken by the Operating Systems Research Group at the University of Karlsruhe.
This chapter contains a summary of the presentations given at the Workshop on Parallel/High-Performance object-oriented Scientific Computing (POOSC’99) at the european conference on object-oriented programming (ecoop...
详细信息
Aspect-orientedprogramming is a promising idea that can improve the quality of software by reduce the problem of code tangling and improving the separation of concerns. At ecoop’97, the first AOP workshop brought to...
详细信息
The state design pattern is the standard object-orientedprogramming idiom for implementing the state machine logic of interactive applications. While this pattern provides a number of advantages, it does not easily s...
详细信息
ISBN:
(纸本)9783540705918
The state design pattern is the standard object-orientedprogramming idiom for implementing the state machine logic of interactive applications. While this pattern provides a number of advantages, it does not easily support the creation of extended state machines in subclasses. We describe the extensible state design pattern, which augments the traditional state pattern with a few additional constraints that allow subclasses to easily add both new states and new events. Further, we observe that delimited continuations, a well-known construct from functional programming languages, supports state refinement in subclasses as well as the modular expression of control flow in the presence of interaction. We illustrate our pattern in the context of Java, leveraging its generics to obviate the need for dynamic typecasts and employing a small library that implements delimited continuations. We have used our pattern to simplify and modularize a widely used application written by others.
object algebras are a new programming technique that enables a simple solution to basic extensibility and modularity issues in programming languages. While object algebras excel at defining modular features, the compo...
详细信息
ISBN:
(纸本)9783642390388
object algebras are a new programming technique that enables a simple solution to basic extensibility and modularity issues in programming languages. While object algebras excel at defining modular features, the composition mechanisms for object algebras (and features) are still cumbersome and limited in expressiveness. In this paper we leverage two well-studied type system features, intersection types and type-constructor polymorphism, to provide object algebras with expressive and practical composition mechanisms. Intersection types are used for defining expressive run-time composition operators (combinators) that produce objects with multiple (feature) interfaces. Type-constructor polymorphism enables generic interfaces for the various object algebra combinators. Such generic interfaces can be used as a type-safe front end for a generic implementation of the combinators based on reflection. Additionally, we also provide a modular mechanism to allow different forms of self-references in the presence of delegation-based combinators. The result is an expressive, type-safe, dynamic, delegation-based composition technique for object algebras, implemented in Scala, which effectively enables a form of Feature-orientedprogramming using object algebras.
Security of e-applications running over Internet is a major requirement for their widespread use. As discussions in this panel often pointed it out, such kind of applications shows more and more a property of mobility...
详细信息
ISBN:
(纸本)3540415130
Security of e-applications running over Internet is a major requirement for their widespread use. As discussions in this panel often pointed it out, such kind of applications shows more and more a property of mobility: mobility of code, data, or even mobility of objects, termed agents. But how to enforce security of such mobile components ? Is it at the programming language level, or could it be managed in a completely transparent way for the programmer ? Do we need domain-specific languages that we hope could be trusted or are general-purpose languages enough ? This panel gave some highlights on how adequate the object-oriented language technology could be;at which level of granularity security has to be designed and introduced into the application;why solutions differing from classical cryptography-based solutions are promising.
object-oriented systems must implement message dispatch efficiently in order not to penalize the object-orientedprogramming style. We characterize the performance of most previously published dispatch techniques for ...
详细信息
ISBN:
(纸本)3540601600
object-oriented systems must implement message dispatch efficiently in order not to penalize the object-orientedprogramming style. We characterize the performance of most previously published dispatch techniques for both statically- and dynamically-typed languages with both single and multiple inheritance. Hardware organization (in particular, branch latency and superscalar instruction issue) significantly impacts dispatch performance. For example, inline caching may outperform C++-style ''vtables'' on deeply pipelined processors even though it executes more instructions per dispatch. We also show that adding support for dynamic typing or multiple inheritance does not significantly impact dispatch speed for most techniques, especially on superscalar machines. Instruction space overhead (calling sequences) can exceed the space cost of data structures (dispatch tables), so that minimal table size may not imply minimal run-time space usage.
Good data layouts improve cache and TLB performance of object-oriented software, but unfortunately, selecting ail optimal data layout a priori is NP-hard. This paper introduces layout auditing, a technique that select...
详细信息
ISBN:
(纸本)9783540705918
Good data layouts improve cache and TLB performance of object-oriented software, but unfortunately, selecting ail optimal data layout a priori is NP-hard. This paper introduces layout auditing, a technique that selects the best among a set of layouts online (while the program is running). Layout auditing randomly applies different layouts over time and observes their performance. As it becomes confident about which layout performs best, it selects that layout with higher probability. But if a phase shift causes a different layout to perform better, layout, auditing learns the new best layout. We implemented our technique in a product;Java virtual machine, using copying generational garbage collection to produce different layouts, and tested it on 20 long-running beachmarks and 4 hardware platforms. Given my combination of benchmark and platform, layout auditing consistently performs close to the best layout for that combination, without requiring offline training.
Coinductive abstract compilation is a novel technique, which has been recently introduced, for defining precise type systems for object-oriented languages. In this approach, type inference consists in translating the ...
详细信息
暂无评论