82,711 research outputs found
Program transformation for development, verification, and synthesis of programs
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
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
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
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
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
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
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
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
- ā¦