84 research outputs found

    Optimizing Abstract Abstract Machines

    Full text link
    The technique of abstracting abstract machines (AAM) provides a systematic approach for deriving computable approximations of evaluators that are easily proved sound. This article contributes a complementary step-by-step process for subsequently going from a naive analyzer derived under the AAM approach, to an efficient and correct implementation. The end result of the process is a two to three order-of-magnitude improvement over the systematically derived analyzer, making it competitive with hand-optimized implementations that compute fundamentally less precise results.Comment: Proceedings of the International Conference on Functional Programming 2013 (ICFP 2013). Boston, Massachusetts. September, 201

    The effects of aging of scientists on their publication and citation patterns

    Get PDF
    The average age at which U.S. researchers get their first grant from NIH has increased from 34.3 in 1970, to 41.7 in 2004. These data raise the crucial question of the effects of aging on the scientific creativity and productivity of researchers. Those who worry about the aging of scientists usually believe that the younger they are the more creative and productive they will be. Using a large population of 13,680 university professors in Quebec, we show that, while scientific productivity rises sharply between 28 and 40, it increases at a slower pace between 41 and 50 and stabilizes afterward until retirement for the most active researchers. The average scientific impact per paper decreases linearly until 50-55 years old, but the average number of papers in highly cited journals and among highly cited papers rises continuously until retirement. Our results clearly show for the first time the natural history of the scientific productivity of scientists over their entire career and bring to light the fact that researchers over 55 still contribute significantly to the scientific community by producing high impact papers.Comment: 12 pages, 4 figure

    Abstract interpreters for free

    No full text
    ... semantics bear an uncanny resemblance. In this work, we present an analysis-design methodology that both explains and exploits that resemblance. Specifically, we present a two-step method to convert a smallstep concrete semantics into a family of sound, computable abstract interpretations. The first step re-factors the concrete state-space to eliminate recursive structure; this refactoring of the state-space simultaneously determines a store-passing-style transformation on the underlying concrete state-space and a Galois connection simultaneously. The Galois connection allows the calculation of the “optimal ” abstract interpretation. The two-step process is unambiguous, but nondeterministic: at each step, analysis designers face choices. Some of these choices ultimately influence properties such as flow-, field- and context-sensitivity. Thus, under the method, we can give the emergence of these properties a graphtheoretic characterization. To illustrate the method, we systematically abstract the continuation-passing style lambda calculus to arrive at two distinct families of analyses. The first is the well-known k-CFA family interpretations, none of which appear in the literature on static analysis of higher-order programs

    Widening for Control-Flow

    No full text
    Abstract. We present a parameterized widening operator that determines the control-flow sensitivity of an analysis, i.e., its flow-sensitivity, context-sensitivity, and path-sensitivity. By instantiating the operator’s parameter in different ways, semantics of the analysis itself. Similarly, the analysis can be implemented so that its sensitivity can be tuned without changing the analysis implementation. Thus, the sensitivity is an independent concern, allowing the analysis designer to design and implement the analysis without worrying about its sensitivity and then easily experiment with different sensitivities after the fact. Additionally, we show that the space of control-flow sensitivities induced by this widening operator forms a lattice. The lattice meet and join operators are the product and sum of sensi-tivities, respectively. They can be used to automatically create new sensitivities from existing ones without manual effort. The sum operation in particular is a novel construction, which creates a new sensitivity less precise than either of its operands but containing elements of both.

    Parsing with derivatives

    No full text

    Collecting rare diseases

    No full text
    • …
    corecore