No abstract available.
Towards a Unified Programming Language
The goal of research in programming languages should be to develop languages that integrates the best of concepts and constructs from the various programming paradigms. We do not argue for a multi-paradigm language, where the programmer alternates ...
Creative Object-Oriented Modelling: Support for Intuition, Flexibility, and Collaboration in CASE Tools
A major strength in object-oriented development is the direct support for domain modelling offered by the conceptual framework underlying object-orientation. In this framework, domains and systems can be analysed and understood using models at a high ...
Design Patterns Application in UML
The Unified Modeling Language (UML) currently proposes a mechanism to model recurrent design structures: the parameterized collaborations. The main goal of this mechanism is to model the structure of Design Patterns. This is an interesting feature ...
UML-F: A Modeling Language for Object-Oriented Frameworks
The paper presents the essential features of a new member of the UML language family that supports working with object-oriented frameworks. This UML extension, called UML-F, allows the explicit representation of framework variation points. The paper ...
Extending Moby with Inheritance-Based Subtyping
Classes play a dual role in mainstream statically-typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this ...
A Basic Model of Typed Components
This paper studies specific language level abstractions for component-based programming. We propose a simple model which captures some basic ingredients--like explicit context dependence, dynamic binding and subtype polymorphism, late (dynamic) ...
On Inner Classes
Inner classes in object-oriented languages play a role similar to nested function definitions in functional languages, allowing an object to export other objects with direct access to its own methods and instance variables. However, the similarity is ...
Jam - A Smooth Extension of Java with Mixins
In this paper we present Jam, an extension of the Java language supporting mixins, that is, parametric heir classes. A mixin declaration in Jam is similar to a Java heir class declaration, except that it does not extend a fixed parent class, but simply ...
A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages
Domain-specific programming languages (DSLs) are emerging as an important paradigm for the engineering of large reliable software systems. Modular interpreters are an approach to building off-the-shelf software components that implement fragments of ...
Generic Wrappers
Component software means reuse and separate marketing of premanufactured binary components. This requires components from different vendors to be composed very late, possibly by end users at run time as in compound-document frameworks.
To this aim, we ...
Copying and Comparing: Problems and Solutions
In object oriented programming, it is sometimes necessary to copy objects and to compare them for equality or inequality. We discuss some of the issues involved in copying and comparing objects and we address the problem of generating appropriate ...
Developing Security Systems in the Real World
The debut of Java technology in 1995 was a significant event for the computer security field. First, the claim that "Java is secure" immediately attracted the intense scrutiny by the computer security research community. Numerous security bugs were ...
Distributed Asynchronous Collections: Abstractions for Publish/Subscribe Interaction
Publish/subscribe is considered one of the most important interaction styles for the explosive market of enterprise application integration. Producers publish information on a software bus and consumers subscribe to the information they want to receive ...
Design Templates for Collective Behavior
While sequential behavior of single objects is fairly well understood, orchestrating the collective behavior emerging from the behaviors of individual objects continues to be a challenging task. This is especially true for distributed reactive systems.
...
Ionic Types
We are interested in the class of systems for which the satisfaction of code dependencies is a dynamic process rather than one which is determined purely at load-time. Examples include dynamic delegation, mobile code and agent systems. Such systems ...
Load-Time Structural Reflection in Java
The standard reflection API of Java provides the ability to introspect a program but not to alter program behavior. This paper presents an extension to the reflection API for addressing this limitation. Unlike other extensions enabling behavioral ...
Runtime Support for Type-Safe Dynamic Java Classes
Modern software must evolve in response to changing conditions. In the most widely used programming environments, code is static and cannot change at runtime. This poses problems for applications that have limited down-time. More support is needed for ...
OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java
OpenJIT is an open-ended, reflective JIT compiler framework for Java being researched and developed in a joint project by Tokyo Inst. Tech. and Fujitsu Ltd. Although in general self-descriptive systems have been studied in various contexts such as ...
Using Objects for Next Generation Communication Services
The integration of the telephone network and the internet enables convergence of voice and data services. The explosion of information appliances also provides new service opportunities. Object-oriented systems show great promise for building new ...
Empirical Study of Object-Layout Strategies and Optimization Techniques
Although there is a large body of research on the time overhead of object oriented programs, there is little work on memory overhead. This paper takes an empirical approach to the study of this overhead, which turns out to be significant in the presence ...
Optimizing Java Programs in the Presence of Exceptions
The support for precise exceptions in Java, combined with frequent checks for runtime exceptions, leads to severe limitations on the compiler's ability to perform program optimizations that involve reordering of instructions. This paper presents a novel ...
HERCULE: Non-invasively Tracking JavaTM Component-Based Application Activity
This paper presents HERCULE, an approach to non-invasively tracking end-user application activity in a distributed, component-based system. Such tracking can support the visualisation of user and application activity, system auditing, monitoring of ...
Automated Test Case Generation from Dynamic Models
We have recently shown how use cases can be systematically transformed into UML state charts considering all relevant information from a use case specification, including pre- and postconditions. The resulting state charts can have transitions with ...