EScala is an extension of Scala with support for declarative event-driven programming. It provides mechanisms for declarative definition of events and employs aspect-oriented techniques for exposing implicitly existin...
详细信息
ISBN:
(纸本)9781450305563
EScala is an extension of Scala with support for declarative event-driven programming. It provides mechanisms for declarative definition of events and employs aspect-oriented techniques for exposing implicitly existing events, which reduces the need for explicit triggering of events. EScala provides a conservative integration of declarative events into an object-oriented language. Events are declared as attributes of objects and are subject to inheritance and subtype polymorphism. The language fully preserves encapsulation of objects and modular compilation of classes. designs based on declarative events are as efficient as conventional event-driven designs. Attendees of the demonstration will see a live example that illustrates the expressiveness gained by the features of EScala. We will show how events can be defined in a declarative way and how to use such events for defining interactions among objects. We will demonstrate how declarative events can be used to replace observers and so result in more concise and modular design. Finally, we will show how to use the events library with a standard Scala compiler.
Plug-in components are a means for making feature-rich applications customizable. Combined with plug-and-play composition, end users can assemble customized applications without programming. If plug-and-play compositi...
详细信息
ISBN:
(纸本)9781450301541
Plug-in components are a means for making feature-rich applications customizable. Combined with plug-and-play composition, end users can assemble customized applications without programming. If plug-and-play composition is also dynamic, applications can be reconfigured on the fly to load only components the user needs for his current work. We have created ***, a plug-in framework that supports dynamic plug-and-play composition. The basis for plug-and-play in Plux is the composer which replaces programmatic composition by automatic composition. Components just specify their requirements and provisions using metadata. The composer then assembles the components based on that metadata by matching requirements and provisions. When the composer needs to reuse general-purpose components in different parts of an application, the component model requires genericity. The composer depends on metadata that specify which components should be connected and for general-purpose components those metadata need to be different on each reuse. We present an approach for generic plug-ins with component templates and an implementation for Plux. The general-purpose components become templates and the templates get parameterized when they are composed.
SugarJ is a Java-based programminglanguage that provides extensible surface syntax, static analyses, and IDE support. SugarJ extensions are organized as libraries;conventional import statements suffice to activate an...
详细信息
ISBN:
(纸本)9781450309424
SugarJ is a Java-based programminglanguage that provides extensible surface syntax, static analyses, and IDE support. SugarJ extensions are organized as libraries;conventional import statements suffice to activate and compose language extensions. We demonstrate how programmers can use SugarJ to modularly extend Java's syntax, semantic analyses and IDE support.
A range of context-management systems in the past have motivated the need for development support of context-aware applications. They typically provide APIs and query languages for context analysis. Reacting to contex...
详细信息
ISBN:
(纸本)9781450308915
A range of context-management systems in the past have motivated the need for development support of context-aware applications. They typically provide APIs and query languages for context analysis. Reacting to context changes, however, is either not at all or only to a limited extend supported by adhering to constraints of a framework. In this paper, we present a context-management system that combines context reasoning with context-dependent behavior by taking advantage of language approaches to dynamic adaptation, such as aspect- and context-oriented programming. Our framework is open for different levels of integration with programminglanguage extensions and offers a dynamic, strategy-based aggregation of local and distributed context sources. As a first step, we implemented a query library for the JCop language. We present its API and show the implementation of an example application.
The proceedings contain 17 papers. The topics discussed include: divide and recycle: types and compilation for a hybrid synchronous language;static analysis of synchronous programs in signal for efficient design of mu...
ISBN:
(纸本)9781450305556
The proceedings contain 17 papers. The topics discussed include: divide and recycle: types and compilation for a hybrid synchronous language;static analysis of synchronous programs in signal for efficient design of multi-clocked embedded systems;synchronous programming of device drivers for global resource control in embedded operating systems;dependence-based multi-level tracing and replay for wireless sensor networks debugging;lowering overhead in sampling-based execution monitoring and tracing;software debugging and testing using the abstract diagnosis theory;cache persistence analysis - a novel approach theory and practice;predictable task migration for locked caches in multi-core systems;precise and efficient parametric path analysis;an instruction-scheduling-aware data partitioning technique for coarse-grained reconfigurable architectures;and global productiveness propagation: a code optimization technique to speculatively prune useless narrow computations.
Implementing a profiler to trace a program execution is nontrivial. One way to do this on running Java programs is through bytecode instrumentation. Nowadays, tools exist that ease the instrumentation process itself, ...
详细信息
Network protocol stacks are an important ingredient of today's infrastructure software. For instance, all state-of-the-art operating systems for PCs and the server market come with a TCP/IP stack. The design of pr...
详细信息
ISBN:
(纸本)9781450306478
Network protocol stacks are an important ingredient of today's infrastructure software. For instance, all state-of-the-art operating systems for PCs and the server market come with a TCP/IP stack. The design of protocol stacks and their layered structure has been studied for decades. However, in practice, implementations often do not follow the clean textbook design consequently. This especially holds for the domain of embedded TCP/IP stacks where minimal resource consumption is crucial. In this work we present an analysis that explains the reason for this dilemma. We have also developed a very simple solution that is based on common aspect-oriented programminglanguage features: Upcall Dispatcher Aspects. In a case study this concept has been repeatedly applied as an AspectC++ idiom in the implementation of the CiAO TCP/IP stack, which we compared to several traditional implementations. Besides reflecting a clean design at the implementation level, our protocol stack, which mainly targets the domain of resource-constrained embedded systems, even outperforms the other solutions with respect to resource consumption and various "-ilities". Copyright 2011 acm.
This article deals with performance verification of architecture models of real-time embedded systems. Although real-time scheduling theory provides numerous analytical methods called feasibility tests for scheduling ...
详细信息
ISBN:
(纸本)9781450310284
This article deals with performance verification of architecture models of real-time embedded systems. Although real-time scheduling theory provides numerous analytical methods called feasibility tests for scheduling analysis, their use is a complicated task. In order to assist an architecture model designer in early verification, we provide an approach, based on real-time specific design patterns, enabling an automatic schedulability analysis. This analysis is based on existing feasibility tests, whose selection is deduced from the compliance of the system to a design pattern and other system's properties. Those conformity verifications are integrated into a schedulability tool called Cheddar. We show how to model the relationships between design patterns and feasibility tests and design patterns themselves. Based on these models, we apply a model-based engineering process to generate, in Ada, a feasibility test selection tool. The tool is able to detect from an architecture model which are the feasibility tests that the designer can apply. We explain a method for a designer willing to use this approach. We also describe the design patterns defined and the selection algorithm.
The proceedings contain 10 papers. The topics discussed include: an approach to modular object-oriented programming in language-driven development framework;Predicate-C - an efficient and generic runtime system for pr...
ISBN:
(纸本)9781450308946
The proceedings contain 10 papers. The topics discussed include: an approach to modular object-oriented programming in language-driven development framework;Predicate-C - an efficient and generic runtime system for predicate dispatch;application optimization when using gradual typing;economic utility theory for memory management optimization;reducing and eliding read barriers for concurrent garbage collectors;a tracing technique using dynamic bytecode instrumentation of Java applications and libraries at basic block level;reducing biased lock revocation by learning;pattern matching for object-like structures in the go programminglanguage;and runtime feedback in a meta-tracing JIT for efficient dynamic languages.
In the past, modular structures for software systems have rested upon several assumptions that may no longer characterize the changing world of dynamic computing. Important among these assumptions is that the decision...
详细信息
ISBN:
(纸本)9781450305563
In the past, modular structures for software systems have rested upon several assumptions that may no longer characterize the changing world of dynamic computing. Important among these assumptions is that the decision to use or reuse a particular component is made at the time a client is developed. But the advent of a variety of modern software architectures like SOA, mobile/ubiquitous computing, grids, and AOSD emphasize deferring these decisions about component choice until run-time. The presumption of development-time choice has had deep influence on many of the characteristics of programminglanguages. We explore the impact of the change of implementation selection from development-time to run-time on programminglanguage constructs and middleware, and conclude that there is a model for software that satisfies the needs of future, more dynamic environments in a way that can be achieved as a compatible extension of today's common object-oriented languages.
暂无评论