82,711 research outputs found

    Program transformation for development, verification, and synthesis of programs

    Get PDF
    This paper briefly describes the use of the program transformation methodology for the development of correct and efficient programs. In particular, we will refer to the case of constraint logic programs and, through some examples, we will show how by program transformation, one can improve, synthesize, and verify programs

    Transformations of Logic Programs with Goals as Arguments

    Full text link
    We consider a simple extension of logic programming where variables may range over goals and goals may be arguments of predicates. In this language we can write logic programs which use goals as data. We give practical evidence that, by exploiting this capability when transforming programs, we can improve program efficiency. We propose a set of program transformation rules which extend the familiar unfolding and folding rules and allow us to manipulate clauses with goals which occur as arguments of predicates. In order to prove the correctness of these transformation rules, we formally define the operational semantics of our extended logic programming language. This semantics is a simple variant of LD-resolution. When suitable conditions are satisfied this semantics agrees with LD-resolution and, thus, the programs written in our extended language can be run by ordinary Prolog systems. Our transformation rules are shown to preserve the operational semantics and termination.Comment: 51 pages. Full version of a paper that will appear in Theory and Practice of Logic Programming, Cambridge University Press, U

    A Compass in the Woods: Learning Through Grantmaking to Improve Impact

    Get PDF
    The field of philanthropy is under increasing pressure to produce ā€“ and be able to demonstrate ā€“ greater impact for its investments. A growing number of foundations are moving away from the traditional responsive banker model to becoming more thoughtful and engaged partners with their grantees in the business of producing outcomes. In the process, they are placing bigger bets on larger, more strategic programs and initiatives.Ā Ā What the field is striving to do now is to ensure that this evolution is based on validated theory, not wishful thinking or shots in the dark. The larger the investment, the more skilled foundations must become at managing risk ā€“ making informed decisions, tracking progress, adjusting action and learning ā€“ throughout the life of a program, so that foreseeable and unforeseeable changes do not torpedo an otherwise worthy collective effort. The traditional grant?to?evaluation?to?adjustment cycle is very long. Because many traditional grantmaking practices are proving to be too slow to adapt, these foundations are striving to better integrate real?time evaluation and learning into their operations in order to become more adaptive; more innovative; more impactful.We undertook this research project to inform how the tools and practices that support EmergentĀ Ā  Learning (described in the next section) can best help foundations and their communities ā€“ grantees, intermediaries and other stakeholders ā€“ improve the way they learn in complex programs and initiatives

    Transforming specifications of observable behaviour into programs

    Get PDF
    A methodology for deriving programs from specifications of observable behaviour is described. The class of processes to which this methodology is applicable includes those whose state changes are fully definable by labelled transition systems, for example communicating processes without internal state changes. A logic program representation of such labelled transition systems is proposed, interpreters based on path searching techniques are defined, and the use of partial evaluation techniques to derive the executable programs is described

    Variable elimination for building interpreters

    Get PDF
    In this paper, we build an interpreter by reusing host language functions instead of recoding mechanisms of function application that are already available in the host language (the language which is used to build the interpreter). In order to transform user-defined functions into host language functions we use combinatory logic : lambda-abstractions are transformed into a composition of combinators. We provide a mechanically checked proof that this step is correct for the call-by-value strategy with imperative features.Comment: 33 page

    Transforming floundering into success

    Full text link
    We show how logic programs with "delays" can be transformed to programs without delays in a way which preserves information concerning floundering (also known as deadlock). This allows a declarative (model-theoretic), bottom-up or goal independent approach to be used for analysis and debugging of properties related to floundering. We rely on some previously introduced restrictions on delay primitives and a key observation which allows properties such as groundness to be analysed by approximating the (ground) success set. This paper is to appear in Theory and Practice of Logic Programming (TPLP). Keywords: Floundering, delays, coroutining, program analysis, abstract interpretation, program transformation, declarative debuggingComment: Number of pages: 24 Number of figures: 9 Number of tables: non

    Type-driven automated program transformations and cost modelling for optimising streaming programs on FPGAs

    Get PDF
    In this paper we present a novel approach to program optimisation based on compiler-based type-driven program transformations and a fast and accurate cost/performance model for the target architecture. We target streaming programs for the problem domain of scientific computing, such as numerical weather prediction. We present our theoretical framework for type-driven program transformation, our target high-level language and intermediate representation languages and the cost model and demonstrate the effectiveness of our approach by comparison with a commercial toolchain

    The Ford Foundation Working Group on Philanthropy for Social Justice and Peace: Phase Ii Report, Brussels and New York Focus Groups

    Get PDF
    This report represents a summary and analysis of the findings from the focus groups of the Ford Foundation Working Group on Philanthropy for Social Justice and Peace done in Brussels and New York
    • ā€¦
    corecore