421,136 research outputs found

    Type-safe two-level data transformation

    Get PDF
    A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. Examples of two-level data transformations include XML schema evolution coupled with document migration, and data mappings used for interoperability and persistence. We provide a formal treatment of two-level data transformations that is type-safe in the sense that the well-formedness of the value-level transformations with respect to the type-level transformation is guarded by a strong type system. We rely on various techniques for generic functional programming to implement the formalization in Haskell. The formalization addresses various two-level transformation scenarios, covering fully automated as well as user-driven transformations, and allowing transformations that are information-preserving or not. In each case, two-level transformations are disciplined by one-step transformation rules and type-level transformations induce value-level transformations. We demonstrate an example hierarchical-relational mapping and subsequent migration of relational data induced by hierarchical format evolution.Fundação para a Ciência e a Tecnologia (FCT

    Common Subexpression Elimination in a Lazy Functional Language

    Get PDF
    Common subexpression elimination is a well-known compiler optimisation that saves time by avoiding the repetition of the same computation. To our knowledge it has not yet been applied to lazy functional programming languages, although there are several advantages. First, the referential transparency of these languages makes the identification of common subexpressions very simple. Second, more common subexpressions can be recognised because they can be of arbitrary type whereas standard common subexpression elimination only shares primitive values. However, because lazy functional languages decouple program structure from data space allocation and control flow, analysing its effects and deciding under which conditions the elimination of a common subexpression is beneficial proves to be quite difficult. We developed and implemented the transformation for the language Haskell by extending the Glasgow Haskell compiler and measured its effectiveness on real-world programs

    Ecosystem shift of a mountain lake under climate and human pressure : A move out from the safe operating space

    Get PDF
    A multiproxy approach including chironomid, diatom, pollen and geochemical analyses was applied on short gravitational cores retrieved from an alpine lake (Lacul Balea) in the Southern Carpathians (Romania) to unveil how this lake responded to natural and anthropogenic forcing over the past 500 years.On the basis of chironomid and diatom assemblage changes, and supported by sediment chemical data and historical information, we distinguished two main phases in lake evolution. Before 1926 the lake was dominated by chironomids belonging to Micropsectra insignilobus-type and benthic diatoms suggesting well-oxygenated oligotrophic environment with only small-scale disturbance. We considered this state as the lake's safe operational space. After 1926 significant changes occurred: Tanytarsus lugens-type and T. mendax-type chironomids took over dominance and collector filterers increased until 1970 pointing to an increase in available nutrients. The diatom community showed the most pronounced change between 1950 and 1992 when planktonic diatoms increased. The highest trophic level was reconstructed between 1970 and 1992, while the indicator species of increasing nutrient availability, Asterionella formosa spread from 1982 and decreased rapidly at 1992. Statistical analyses evidenced that the main driver of the diatom community change was atmospheric reactive nitrogen (Nr) fertilization that drastically moved the community towards planktonic diatom dominance from 1950. The transformation of the chironomid community was primarily driven by summer mean temperature increase that also changed the dominant feeding guild from collector gatherers to collector falterers. Our results overall suggest that the speed of ecosystem reorganisation showed an unprecedented increase over the last 100 years; biological systems in many cases underwent threshold type changes, while several system components displayed non-hysteretic change between alternating community composition. We conclude that Lake Balea is outside of its safe operating space today. The main trigger of changes since 1926 was climate change and human impact acting synergically. (C) 2020 The Authors. Published by Elsevier B.V.Peer reviewe

    MORPHOSYS: efficient colocation of QoS-constrained workloads in the cloud

    Full text link
    In hosting environments such as IaaS clouds, desirable application performance is usually guaranteed through the use of Service Level Agreements (SLAs), which specify minimal fractions of resource capacities that must be allocated for use for proper operation. Arbitrary colocation of applications with different SLAs on a single host may result in inefficient utilization of the host’s resources. In this paper, we propose that periodic resource allocation and consumption models be used for a more granular expression of SLAs. Our proposed SLA model has the salient feature that it exposes flexibilities that enable the IaaS provider to safely transform SLAs from one form to another for the purpose of achieving more efficient colocation. Towards that goal, we present MorphoSys: a framework for a service that allows the manipulation of SLAs to enable efficient colocation of workloads. We present results from extensive trace-driven simulations of colocated Video-on-Demand servers in a cloud setting. The results show that potentially-significant reduction in wasted resources (by as much as 60%) are possible using MorphoSys.First author draf

    Evaluating the performance of model transformation styles in Maude

    Get PDF
    Rule-based programming has been shown to be very successful in many application areas. Two prominent examples are the specification of model transformations in model driven development approaches and the definition of structured operational semantics of formal languages. General rewriting frameworks such as Maude are flexible enough to allow the programmer to adopt and mix various rule styles. The choice between styles can be biased by the programmer’s background. For instance, experts in visual formalisms might prefer graph-rewriting styles, while experts in semantics might prefer structurally inductive rules. This paper evaluates the performance of different rule styles on a significant benchmark taken from the literature on model transformation. Depending on the actual transformation being carried out, our results show that different rule styles can offer drastically different performances. We point out the situations from which each rule style benefits to offer a valuable set of hints for choosing one style over the other

    Towards Energy Consumption Verification via Static Analysis

    Full text link
    In this paper we leverage an existing general framework for resource usage verification and specialize it for verifying energy consumption specifications of embedded programs. Such specifications can include both lower and upper bounds on energy usage, and they can express intervals within which energy usage is to be certified to be within such bounds. The bounds of the intervals can be given in general as functions on input data sizes. Our verification system can prove whether such energy usage specifications are met or not. It can also infer the particular conditions under which the specifications hold. To this end, these conditions are also expressed as intervals of functions of input data sizes, such that a given specification can be proved for some intervals but disproved for others. The specifications themselves can also include preconditions expressing intervals for input data sizes. We report on a prototype implementation of our approach within the CiaoPP system for the XC language and XS1-L architecture, and illustrate with an example how embedded software developers can use this tool, and in particular for determining values for program parameters that ensure meeting a given energy budget while minimizing the loss in quality of service.Comment: Presented at HIP3ES, 2015 (arXiv: 1501.03064
    corecore