The proceedings contain 28 papers. The topics discussed include: gradual typing for objects;generic universe types;declarative object identity using relation types;generational real-time garbage collection;validity in...
详细信息
ISBN:
(纸本)9783540735885
The proceedings contain 28 papers. The topics discussed include: gradual typing for objects;generic universe types;declarative object identity using relation types;generational real-time garbage collection;validity invariants and effects;efficiently generating structurally complex inputs with thousands of objects;matching objects with patterns;a relational model pf object collaborations and its use in reasoning about relationships;metaprogramming with traits;a higher abstraction level using first-class inheritance relations;joinpoint inference from behavioral specification to implementation;a machine model for aspect-orientedprogramming;a staged static program analysis to improve the performance of runtime monitoring;and metamodel adaptation and model co-adaptation.
The proceedings contain 4 papers. The topics discussed include: interfaces of active objects with internal concurrency;Beernet: RMI-free peer-to-peer networks;language support for distributed proxies;and language desi...
ISBN:
(纸本)9781605585451
The proceedings contain 4 papers. The topics discussed include: interfaces of active objects with internal concurrency;Beernet: RMI-free peer-to-peer networks;language support for distributed proxies;and language design for distributed objects.
Data in object-orientedprogramming is organized in a hierarchy of classes. The problem of object-oriented pattern matching is how to explore this hierarchy from the outside. This usually involves classifying objects ...
详细信息
ISBN:
(纸本)9783540735885
Data in object-orientedprogramming is organized in a hierarchy of classes. The problem of object-oriented pattern matching is how to explore this hierarchy from the outside. This usually involves classifying objects by their run-time type, accessing their members, or determining some other characteristic of a group of objects. In this paper we compare six different pattern matching techniques: object-oriented decomposition, visitors, type-tests/type-casts, typecase, case classes, and extractors. The techniques are compared on nine criteria related to conciseness, maintainability and performance. The paper introduces case classes and extractors as two new pattern-matching methods and shows that their combination works well for all of the established criteria.
Aspect-orientedprogramming languages usually are extensions of object-oriented ones, and their compilation target is usually the (virtual) machine model of the language they extend. While that model elegantly support...
详细信息
ISBN:
(纸本)9783540735885
Aspect-orientedprogramming languages usually are extensions of object-oriented ones, and their compilation target is usually the (virtual) machine model of the language they extend. While that model elegantly supports core object-oriented language mechanisms such as virtual method dispatch, it provides no direct support for core aspect-oriented language mechanisms such as advice application. Hence, current implementations of aspect-oriented languages bring about insufficient and inelegant solutions. This paper introduces a lightweight, object-based machine model for aspect-oriented languages based on object-oriented ones. It is centered around delegation and relies on a very dynamic notion of join points as loci of late-bound dispatch of functionality. The model is shown to naturally support an important number of aspect-oriented language mechanisms. Additionally, a formal semantics is presented as an extension to the object-based delta calculus.
Although classes are a fundamental concept in object-orientedprogramming, a class itself cannot be built using general purpose classes as building blocks in a practical manner. High-level concepts like associations, ...
详细信息
ISBN:
(纸本)9783540735885
Although classes are a fundamental concept in object-orientedprogramming, a class itself cannot be built using general purpose classes as building blocks in a practical manner. High-level concepts like associations, bounded values, graph structures, and infrastructure for event mechanisms which form the foundation of a class cannot be reused conveniently as components for classes. As a result, they are implemented over and over again. We raise the abstraction level of the language with a code inheritance relation for reusing general purpose classes as components for other classes. Features like mass renaming, first-class relations, high-level dependencies, component parameters, and indirect inheritance ensure that maximal reuse can be achieved with minimal effort. A case study shows a reduction of the code between 21% and 36%, while the closest competitor only reduces the size between 3% and 12%.
Ownership is a powerful concept to structure the objectstore and to control aliasing and modifications of objects. This paper presents an ownership type system for a Java-like programming language with generic types....
详细信息
ISBN:
(纸本)9783540735885
Ownership is a powerful concept to structure the objectstore and to control aliasing and modifications of objects. This paper presents an ownership type system for a Java-like programming language with generic types. Like our earlier Universe type system, Generic Universe Types enforce the owner-as-modifier discipline. This discipline does not restrict aliasing, but requires modifications of an object to be initiated by its owner. This allows owner objects to control state changes of owned objects, for instance, to maintain invariants. Generic Universe Types require a small annotation overhead and provide strong static guarantees. They are the first type system that combines the owner-as-modifier discipline with type genericity.
object-oriented languages define the identity of an object to be an address-based object identifier. The programmer may customize the notion of object identity by overriding the equals() and hashCode() methods followi...
详细信息
ISBN:
(纸本)9783540735885
object-oriented languages define the identity of an object to be an address-based object identifier. The programmer may customize the notion of object identity by overriding the equals() and hashCode() methods following a specified contract. This customization often introduces latent errors, since the contract is unenforced and at times impossible to satisfy, and its implementation requires tedious and error-prone boilerplate code. Relation types are a programming model in which object identity is defined declaratively, obviating the need for equals() and hashCode() methods. This entails a stricter contract: identity never changes during an execution. We formalize the model as an adaptation of Featherweight Java, and implement it by extending Java with relation types. Experiments on a set of Java programs show that the majority of classes that override equals() can be refactored into relation types, and that most of the remainder are buggy or fragile.
Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis, optimization, or modification of the program. Relationships have been proposed as...
详细信息
ISBN:
(纸本)9783540735885
Understanding the collaborations that arise between the instances of classes in object-oriented programs is important for the analysis, optimization, or modification of the program. Relationships have been proposed as a programming language construct to enable an explicit representation of these collaborations. This paper introduces a relational model that allows the specification of systems composed of classes and relationships. These specifications rely in particular on member interposition (facilitates the specification of relationship-dependent members of classes) and on relationship invariants (facilitate the specification of the consistency constraints imposed on object collaborations). The notion of a mathematical relation is the basis for the model. Employing relations as an abstraction of relationships, the specification of a system can be formalized using discrete mathematics. The relational model allows thus not only the specification of object collaborations but also provides a foundation to reason about these collaborations in a rigorous fashion.
This report describes the "Roles'07 - Roles and Relationships" workshop held at ecoop'07 in Berlin on July 30 and 31, 2007. The aims and organization of the workshop are described, and the main contr...
详细信息
暂无评论