8,729 research outputs found

    On-demand Evaluation by Program Transformation1 1Work partially supported by CICYT TIC2001-2705-C03-01 and MCYT grants HA2001-0059 and HU2001-0019.

    Get PDF
    AbstractStrategy annotations are used in eager programming languages (e.g., OBJ2, OBJ3, CafeOBJ, and Maude) for improving efficiency and/or reducing the risk of nontermination. Syntactically, they are given either as lists of natural numbers or as lists of integers associated to function symbols whose (absolute) values refer to the arguments of the corresponding symbol. A positive index forces the evaluation of an argument whereas a negative index means “evaluation on-demand”. Recently, we have introduced a formal description of the operational meaning of such on-demand strategy annotations which improves previous formalizations that were lacking satisfactory computational properties. In this paper, we introduce an automatic, semantics-preserving program transformation which produces a program (without negative annotations) which can be then correctly executed by typical OBJ interpreters. Moreover, to demonstrate the practicality of our ideas, the program transformation has been implemented (in Haskell) and we compare the evaluation of transformed programs with the original ones on a set of representative benchmarks

    Interactive Simplifier Tracing and Debugging in Isabelle

    Full text link
    The Isabelle proof assistant comes equipped with a very powerful tactic for term simplification. While tremendously useful, the results of simplifying a term do not always match the user's expectation: sometimes, the resulting term is not in the form the user expected, or the simplifier fails to apply a rule. We describe a new, interactive tracing facility which offers insight into the hierarchical structure of the simplification with user-defined filtering, memoization and search. The new simplifier trace is integrated into the Isabelle/jEdit Prover IDE.Comment: Conferences on Intelligent Computer Mathematics, 201

    Singular and Plural Functions for Functional Logic Programming

    Full text link
    Functional logic programming (FLP) languages use non-terminating and non-confluent constructor systems (CS's) as programs in order to define non-strict non-determi-nistic functions. Two semantic alternatives have been usually considered for parameter passing with this kind of functions: call-time choice and run-time choice. While the former is the standard choice of modern FLP languages, the latter lacks some properties---mainly compositionality---that have prevented its use in practical FLP systems. Traditionally it has been considered that call-time choice induces a singular denotational semantics, while run-time choice induces a plural semantics. We have discovered that this latter identification is wrong when pattern matching is involved, and thus we propose two novel compositional plural semantics for CS's that are different from run-time choice. We study the basic properties of our plural semantics---compositionality, polarity, monotonicity for substitutions, and a restricted form of the bubbling property for constructor systems---and the relation between them and to previous proposals, concluding that these semantics form a hierarchy in the sense of set inclusion of the set of computed values. We have also identified a class of programs characterized by a syntactic criterion for which the proposed plural semantics behave the same, and a program transformation that can be used to simulate one of them by term rewriting. At the practical level, we study how to use the expressive capabilities of these semantics for improving the declarative flavour of programs. We also propose a language which combines call-time choice and our plural semantics, that we have implemented in Maude. The resulting interpreter is employed to test several significant examples showing the capabilities of the combined semantics. To appear in Theory and Practice of Logic Programming (TPLP)Comment: 53 pages, 5 figure

    Economic and agronomic feasibility of organic vegetable seed production in the UK, and subsequent seed quality (OF0166)

    Get PDF
    This is the final report of Defra project OF0166. There is a longer summary at the start of the attached main report. For many farmers and growers, a move to organic production presents major challenges. Among these, the issues regarding the use of organic seeds could yet be a stumbling block, as growers and the seed trade have reservations about using and producing them for four major reasons: 1) The availability of a wide range of organic varieties appropriate to all year round crop scheduling, and differing production techniques and markets 2) The impact of derogation on managing the supply and demand for organic seed 3) The technical issues of organic seed production 4) Maintaining high standards of seed quality, hygiene and vigour. Three biennial vegetable crops: parsnips, winter cauliflower, and bulb onions and a small range of annual crops including lettuces, runner beans, spinach, broccoli were grown for seed production. All the crops were grown under a Spanish “Haygrove” tunnel. These relatively cheap structures allow good ventilation whilst offering protection against wet weather. All the crops were grown following organic protocols. Seed yields were recorded, and comparisons with disease contamination, germination and vigour were made against seed of the same variety produced conventionally by the collaborating seed company. Yields were unpredictable for some crops in the early stages of the project, but this problem was overcome as techniques were better understood and more experience gained. Seed quality was generally very good for most crops, and few problems were encountered with seed borne diseases for most crops. High levels of seed surface contamination with saprophytic fungi (Penicillium and Cladosporium) may have masked the presence of other fungi. Where equivalent comparisons with conventional seedlots could be tested for disease and vigour differences were small. However, major problems were encountered with bulb onion seed production as neck rot resulted in loss of stock material (around 50% of bulbs were lost). Hot water treatments were used in this project and were found to be successful against a range of pathogens on infected onion seed. More research into organic seed treating is advocated. The project has shown that on a small scale at least, good quality organic seed can be produced under relatively inexpensive polythene tunnels. The yields attained can be as good as those from conventional production, but there are without doubt greater risks involved. It is suggested that should diseases or pests become rampant then their control will be difficult. This project has shown that crops like onions are extremely difficult to produce, and that neck rot in particular will be a problem for the seed producer and grower. The use of tunnels is strongly supported; they can keep crops dry at harvest, they do not necessarily encourage disease build up and natural predator populations can be built up in and around them. It can be summed up that 1) Organic seed production was found to feasible, but higher risk than conventional production 2) Seed quality differences were small 3) Costs in terms of management input were high 4) Neck rot ( Botrytis allii) on bulb onions was, and is likely to remain, a persistent problem 5) Hot water treatment was found to be satisfactory for the small volumes of seed treated. Urgent attention is needed to identify other more consistent methods than this which will satisfy Organic protocols

    Maude: specification and programming in rewriting logic

    Get PDF
    Maude is a high-level language and a high-performance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both user-definable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and object-oriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude

    Exploiting the Hierarchical Structure of Rule-Based Specifications for Decision Planning

    Get PDF
    Rule-based specifications have been very successful as a declarative approach in many domains, due to the handy yet solid foundations offered by rule-based machineries like term and graph rewriting. Realistic problems, however, call for suitable techniques to guarantee scalability. For instance, many domains exhibit a hierarchical structure that can be exploited conveniently. This is particularly evident for composition associations of models. We propose an explicit representation of such structured models and a methodology that exploits it for the description and analysis of model- and rule-based systems. The approach is presented in the framework of rewriting logic and its efficient implementation in the rewrite engine Maude and is illustrated with a case study.

    Evaluation Report: 2010-2015 Social Development Strategy

    Get PDF
    In 2010, Centraide of Greater Montreal adopted a strategy to fight poverty and social exclusion that was firmly grounded in a territorial approach.The hypothesis: Centraide could generate better outcomes by prioritizing investment targets and applying strategic and proactive investment approaches across a neighbourhood instead of considering agencies in isolation.Five years later, an evaluation was conducted in six communities to observe changes and draw lessons from this approach.Instead of just increasing resources so that agencies can do more, the territorial approach helped Centraide create a plan for each neighbourhood and use available vectors to support the desired improvements. These vectors include: * Support for solid and dynamic agencies that provide leadership in their communities. * Support for multi-network and intersectoral coordination so that communities can implement solutions that have the greatest chance of reducing and mitigating the impact of poverty and social exclusion. * Reinforcement of agency skills and leadership. * Ongoing relationships between organizations, mobilization initiatives and Centraid
    corecore