53 research outputs found

    Worker/wrapper/makes it/faster

    Get PDF
    Much research in program optimization has focused on formal approaches to correctness: proving that the meaning of programs is preserved by the optimisation. Paradoxically, there has been comparatively little work on formal approaches to efficiency: proving that the performance of optimized programs is actually improved. This paper addresses this problem for a general-purpose optimization technique, the worker/wrapper transformation. In particular, we use the call-by-need variant of improvement theory to establish conditions under which the worker/wrapper transformation is formally guaranteed to preserve or improve the time performance of programs in lazy languages such as Haskell

    Extended Call-by-Push-Value: Reasoning About Effectful Programs and Evaluation Order

    Get PDF
    Traditionally, reasoning about programs under varying evaluation regimes (call-by-value, call-by-name etc.) was done at the meta-level, treating them as term rewriting systems. Levy’s call-by-push-value (CBPV) calculus provides a more powerful approach for reasoning, by treating CBPV terms as a common intermediate language which captures both call-by-value and call-by-name, and by allowing equational reasoning about changes to evaluation order between or within programs. We extend CBPV to additionally deal with call-by-need, which is non-trivial because of shared reductions. This allows the equational reasoning to also support call-by-need. As an example, we then prove that call-by-need and call-by-name are equivalent if nontermination is the only side-effect in the source language. We then show how to incorporate an effect system. This enables us to exploit static knowledge of the potential effects of a given expression to augment equational reasoning; thus a program fragment might be invariant under change of evaluation regime only because of knowledge of its effects

    Vitamin D and its role in psoriasis: An overview of the dermatologist and nutritionist

    Get PDF

    Involvement of Women and Minorities in the urban Forestry Profession

    No full text
    Abstract. We present a linearizable, non-blocking k-ary search tree (k-ST) that supports fast searches and range queries. Our algorithm uses single-word compare-and-swap (CAS) operations, and tolerates any number of crash failures. Performance experiments show that, for workloads containing small range queries, our k-ST significantly outperforms other algorithms which support these operations, and rivals the performance of a leading concurrent skip-list, which provides range queries that cannot always be linearized. 1 Introduction and Related Work The ordered set abstract data type (ADT) represents a set of keys drawn from an ordered universe, and supports three operations: Insert(key), Delete(key), and Find(key). We add to these an operation RangeQuery(a, b), where a ≤ b, which returns all keys in the closed interval [a, b]. This is useful for variou

    Estabelecimento do cultivo in vitro da aceroleira (Malpighia glabra L.).

    No full text
    O trabalho teve como objetivo o estabelecimento do cultivo ?in vitro? da aceroleira (Malpighia emarginata DC.), através da utilização de segmentos nodais provenientes de clones selecionados em programa de melhoramento genético da Empresa Pernambucana de Pesquisa Agropecuária-IPA

    Confluently persistent tries for efficient version control

    No full text
    SCOPUS: cp.kinfo:eu-repo/semantics/publishe
    • …
    corecore