379 research outputs found
Reflective Designs — An Overview
AbstractWe render runtime system adaptations by design-level concepts such that running systems can be adapted and examined at a higher level of abstraction. The overall idea is to express design decisions as applications of design operators to be carried out at runtime. Design operators can implement design patterns for use at runtime. Applications of design operators are made explicit as design elements in the running system such that they can be traced, reconfigured, and made undone.Our approach enables Reflective Designs: on one side, design operators employ reflection to perform runtime adaptations; on the other side, design elements provide an additional reflection protocol to examine and configure performed adaptations. Our approach helps understanding the development and the maintenance of the class of software systems that cannot tolerate downtime or frequent shutdown-revise-startup cycles.We have accumulated a class library for programming with Reflective Designs in Squeak/Smalltalk. This library employs reflection and dynamic aspect-oriented programming. We have also implemented tool support for navigating in a system that is adapted continuously at runtime.Note: This extended abstract summarises our full paper [Hirschfeld, R. and R. Lämmel, Reflective Designs, IEE Proceedings Software (2004), Special Issue on Reusable Software Libraries. To appear. Available at http://homepages.cwi.nl/~ralf/rd/]
A Penny a Function: Towards Cost Transparent Cloud Programming
Understanding and managing monetary cost factors is crucial when developing
cloud applications. However, the diverse range of factors influencing costs for
computation, storage, and networking in cloud applications poses a challenge
for developers who want to manage and minimize costs proactively. Existing
tools for understanding cost factors are often detached from source code,
causing opaqueness regarding the origin of costs. Moreover, existing cost
models for cloud applications focus on specific factors such as compute
resources and necessitate manual effort to create the models. This paper
presents initial work toward a cost model based on a directed graph that allows
deriving monetary cost estimations directly from code using static analysis.
Leveraging the cost model, we explore visualizations embedded in a code editor
that display costs close to the code causing them. This makes cost exploration
an integrated part of the developer experience, thereby removing the overhead
of external tooling for cost estimation of cloud applications at development
time.Comment: Proceedings of the 2nd ACM SIGPLAN International Workshop on
Programming Abstractions and Interactive Notations, Tools, and Environments
(PAINT 2023), 10 pages, 5 figure
Design patterns and pspects : modular designs with seamless run-time integration
Some solutions proposed in the original design pattern literature were shaped by techniques as well as language deficiencies from object-oriented software development. However, new modularity constructs, composition and transformation mechanisms offered by aspect-oriented programming address deficiencies of object-oriented modeling. This suggests classical design pattern solutions to be revisited. In our paper we point out that aspect-oriented programming not only allows for alternative representations of proposed solutions, but also for better solutions in the first place. We advocate a native aspect-oriented approach to design patterns that emphasizes on improving design pattern solutions both during development and at run-time. We use a simple yet effective method to analyze and describe different solutions on the basis of variation points, fixed parts, variable parts, and optional glue, employing dynamic run-time weaving
Universal Heat Conduction in YBa_2Cu_3O_6.9
The thermal conductivity of YBa_2Cu_3O_6.9 was measured at low temperatures
in untwinned single crystals with concentrations of Zn impurities from 0 to 3%
of Cu. A linear term kappa_0/T = 0.19 mW/K^2.cm is clearly resolved as T -> 0,
and found to be virtually independent of Zn concentration. The existence of
this residual normal fluid strongly validates the basic theory of transport in
unconventional superconductors. Moreover, the observed universal behavior is in
quantitative agreement with calculations for a gap function of d-wave symmetry.Comment: Latex file, 4 pages, 3 EPS figures, to appear in Physical Review
Letter
CSOM/PL: A Virtual Machine Product Line
CSOM/PL is a software product line (SPL) derived from applying multi-dimensional separation of concerns (MDSOC) techniques to the domain of high-level language virtual machine (VM) implementations. For CSOM/PL, we modularised CSOM, a Smalltalk VM implemented in C, using VMADL (virtual machine architecture description language). Several features of the original CSOM were encapsulated in VMADL modules and composed in various combinations. In an evaluation of our approach, we show that applying MDSOC and SPL principles to a domain as complex as that of VMs is not only feasible but beneficial, as it improves understandability, maintainability, and configurability of VM implementations without harming performance
CoExist: Overcoming aversion to change - preserving immediate access to source code and run-time information of previous development states
Abstract Programmers make many changes to the program to eventually find a good solution for a given task. In this course of change, every intermediate development state can of value, when, for example, a promising ideas suddenly turn out inappropriate or the interplay of objects turns out more complex than initially expected before making changes. Programmers would benefit from tool support that provides immediate access to source code and run-time of previous development states of interest. We present IDE extensions, implemented for Squeak/Smalltalk, to preserve, retrieve, and work with this information. With such tool support, programmers can work without worries because they can rely on tools that help them with whatever their explorations will reveal. They no longer have to follow certain best practices only to avoid undesired consequences of changing code
- …