64 resultados para Shallow-buried object
Resumo:
Behavioral reflection is crucial to support for example functional upgrades, on-the-fly debugging, or monitoring critical applications. However the use of reflective features can lead to severe problems due to infinite metacall recursion even in simple cases. This is especially a problem when reflecting on core language features since there is a high chance that such features are used to implement the reflective behavior itself. In this paper we analyze the problem of infinite meta-object call recursion and solve it by providing a first class representation of meta-level execution: at any point in the execution of a system it can be determined if we are operating on a meta-level or base level so that we can prevent infinite recursion. We present how meta-level execution can be represented by a meta-context and how reflection becomes context-aware. Our solution makes it possible to freely apply behavioral reflection even on system classes: the meta-context brings stability to behavioral reflection. We validate the concept with a robust implementation and we present benchmarks.
Resumo:
Back-in-time debuggers are extremely useful tools for identifying the causes of bugs, as they allow us to inspect the past states of objects no longer present in the current execution stack. Unfortunately the "omniscient" approaches that try to remember all previous states are impractical because they either consume too much space or they are far too slow. Several approaches rely on heuristics to limit these penalties, but they ultimately end up throwing out too much relevant information. In this paper we propose a practical approach to back-in-time debugging that attempts to keep track of only the relevant past data. In contrast to other approaches, we keep object history information together with the regular objects in the application memory. Although seemingly counter-intuitive, this approach has the effect that past data that is not reachable from current application objects (and hence, no longer relevant) is automatically garbage collected. In this paper we describe the technical details of our approach, and we present benchmarks that demonstrate that memory consumption stays within practical bounds. Furthermore since our approach works at the virtual machine level, the performance penalty is significantly better than with other approaches.
Resumo:
A large body of research analyzes the runtime execution of a system to extract abstract behavioral views. Those approaches primarily analyze control flow by tracing method execution events or they analyze object graphs of heap snapshots. However, they do not capture how objects are passed through the system at runtime. We refer to the exchange of objects as the object flow, and we claim that object flow is necessary to analyze if we are to understand the runtime of an object-oriented application. We propose and detail Object Flow Analysis, a novel dynamic analysis technique that takes this new information into account. To evaluate its usefulness, we present a visual approach that allows a developer to study classes and components in terms of how they exchange objects at runtime. We illustrate our approach on three case studies.
Resumo:
As object-oriented languages are extended with novel modularization mechanisms, better underlying models are required to implement these high-level features. This paper describes CELL, a language model that builds on delegation-based chains of object fragments. Composition of groups of cells is used: 1) to represent objects, 2) to realize various forms of method lookup, and 3) to keep track of method references. A running prototype of CELL is provided and used to realize the basic kernel of a Smalltalk system. The paper shows, using several examples, how higher-level features such as traits can be supported by the lower-level model.
Resumo:
The rapid growth of object-oriented development over the past twenty years has given rise to many object-oriented systems that are large, complex and hard to maintain. Object-Oriented Reengineering Patterns addresses the problem of understanding and reengineering such object-oriented legacy systems. This book collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. The material in this book is presented as a set of "reengineering patterns" --- recurring solutions that experts apply while reengineering and maintaining object-oriented systems. The principles and techniques described in this book have been observed and validated in a number of industrial projects, and reflect best practice in object-oriented reengineering.
Resumo:
The marine aragonite cycle has been included in the global biogeochemical model PISCES to study the role of aragonite in shallow water CaCO3 dissolution. Aragonite production is parameterized as a function of mesozooplankton biomass and aragonite saturation state of ambient waters. Observation-based estimates of marine carbonate production and dissolution are well reproduced by the model and about 60% of the combined CaCO3 water column dissolution from aragonite and calcite is simulated above 2000 m. In contrast, a calcite-only version yields a much smaller fraction. This suggests that the aragonite cycle should be included in models for a realistic representation of CaCO3 dissolution and alkalinity. For the SRES A2 CO2 scenario, production rates of aragonite are projected to notably decrease after 2050. By the end of this century, global aragonite production is reduced by 29% and total CaCO3 production by 19% relative to pre-industrial. Geographically, the effect from increasing atmospheric CO2, and the subsequent reduction in saturation state, is largest in the subpolar and polar areas where the modeled aragonite production is projected to decrease by 65% until 2100.
Resumo:
The present paper is an abridged version of the first chapter to the book EC Electronic Communications and Competition Law (London: Cameron May, 2007). It is intended to pinpoint the contours of the communications sector as an object of regulation - an exercise that is essential to any thoughts on appropriate regulatory design. The communications sector is defined through its salient features of being (i) network-bound; (ii) dynamic; (iii) converging; (iv) sensitive to regulation and society’s reactions; and as one (v) with special societal role and as (vi) part of the new economy.