53 research outputs found
Worker/wrapper/makes it/faster
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
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
Involvement of Women and Minorities in the urban Forestry Profession
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.).
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
SCOPUS: cp.kinfo:eu-repo/semantics/publishe
- …