37,101 research outputs found

    Logic programming in the context of multiparadigm programming: the Oz experience

    Full text link
    Oz is a multiparadigm language that supports logic programming as one of its major paradigms. A multiparadigm language is designed to support different programming paradigms (logic, functional, constraint, object-oriented, sequential, concurrent, etc.) with equal ease. This article has two goals: to give a tutorial of logic programming in Oz and to show how logic programming fits naturally into the wider context of multiparadigm programming. Our experience shows that there are two classes of problems, which we call algorithmic and search problems, for which logic programming can help formulate practical solutions. Algorithmic problems have known efficient algorithms. Search problems do not have known efficient algorithms but can be solved with search. The Oz support for logic programming targets these two problem classes specifically, using the concepts needed for each. This is in contrast to the Prolog approach, which targets both classes with one set of concepts, which results in less than optimal support for each class. To explain the essential difference between algorithmic and search programs, we define the Oz execution model. This model subsumes both concurrent logic programming (committed-choice-style) and search-based logic programming (Prolog-style). Instead of Horn clause syntax, Oz has a simple, fully compositional, higher-order syntax that accommodates the abilities of the language. We conclude with lessons learned from this work, a brief history of Oz, and many entry points into the Oz literature.Comment: 48 pages, to appear in the journal "Theory and Practice of Logic Programming

    The Oz programming model

    Get PDF
    The Oz Programming Model (OPM) is a concurrent programming model subsuming higher-order functional and object-oriented programming as facets of a general model. This is particularly interesting for concurrent object-oriented programming, for which no comprehensive formal model existed until now. The model can be extended so that it can express encapsulated problem solvers generalizing the problem solving capabilities of constraint logic programming. OPM has been developed together with a concomitant programming language Oz, which is designed for applications that require complex symbolic computations, organization into multiple agents, and soft real-time control. An efficient, robust, and interactive implementation of Oz is freely available

    The definition of kernel Oz

    Get PDF
    Oz is a concurrent language providing for functional, object-oriented, and constraint programming. This paper defines Kernel Oz, a semantically complete sublanguage of Oz. It was an important design requirement that Oz be definable by reduction to a lean kernel language. The definition of Kernel Oz introduces three essential abstractions: the Oz universe, the Oz calculus, and the actor model. The Oz universe is a first-order structure defining the values and constraints Oz computes with. The Oz calculus models computation in Oz as rewriting of a class of expressions modulo a structural congruence. The actor model is the informal computation model underlying Oz. It introduces notions like computation spaces, actors, blackboards, and threads

    Encapsulated search and constraint programming in Oz

    Get PDF
    Oz is an attempt to create a high-level concurrent programming language providing the problem solving capabilities of logic programming (i.e., constraints and search). Its computation model can be seen as a rather radical extension of the concurrent constraint model providing for higher-order programming, deep guards, state, and encapsulated search. This paper focuses on the most recent extension, a higher-order combinator providing for encapsulated search. The search combinator spawns a local computation space and resolves remaining choices by returning the alternatives as first-class citizens. The search combinator allows to program different search strategies, including depth-first, indeterministic one solution, demand-driven multiple solution, all solutions, and best solution (branch and bound) search. The paper also discusses the semantics of integer and finite domain constraints in a deep guard computation model

    Modeling and solving self-referential puzzles

    Get PDF
    The so-called self-referential puzzles are a very interesting kind of logic puzzles, aiming at developing the skill of logical thinking. A self-referential puzzle consists of a sequence of questions about the puzzle itself. In this paper, we shall show some selfreferential puzzles, demonstrate how to model and solve them as propositional logic problems, and how to mechanically generate new puzzles. For this, we shall make use of the specific advantages of Mozart/Oz system – the finite domain constraint programming language and environment. We shall also show some new puzzles, according to our best knowledge not yet published elsewhere. The program in Mozart/Oz using our method generated these puzzles

    An economic analysis of the costs of alternative sugarcane fallow weed control programs

    Get PDF
    Economic research was conducted to present estimates of costs per acre associated with fallow sugarcane weed control programs for Louisiana in 2010. The 2010 projected costs are associated with the various phases of sugarcane fallow using different machinery, implements, and weed control practices followed by most growers in the main sugarcane production area of Louisiana. For bermudagrass and johnsongrass weed control treatments, the herbicides applied were Roundup Original Max at 46 oz/A, generic glyphosate at 64 oz/A, DuPont K4 60DG, Trifluralin 4EC at 4 qt/A, and EPTC at 3.5 pt/A. Purple nutsedge weed control treatments included Roundup Original Max at 46 oz/A, generic glyphosate at 64 oz/A, Permit 75DF at 1 oz/A, and Yukon 67.5WG at 6 oz/A. Roundup Original Max at 46 oz/A applied for perennial weed control was more expensive by 30.40and30.40 and 15.20 per acre compared with generic glyphosate treatments applied at 64 oz/A. Treatments applied with Roundup Original Max had a higher sugarcane fallow cost compared with treatments using generic glyphosate at current fuel, labor and herbicide input prices. A spreadsheet decision aid was developed which summarizes sugarcane fallow field operations and weed control costs, including equipment used, performance rates, and herbicides applied. These data can be entered by the user for specific farm situations, calculating total variable tillage and weed control costs per acre. Binary and non-binary linear programming were utilized to determine optimal sugarcane fallow weed control programs for bermudagrass, johnsongrass, and purple nutsedge control. The non-binary LP model selected treatments to achieve desired control of bermudagrass, johnsongrass and purple nutsedge and minimum cost program. In comparison, the binary LP model selected only one treatment that had minimum fallow field operation and weed control cost while satisfying minimum weed control levels. Generic glyphosate cost was found to be sensitive to price increases to 0.27oz/Aoraboveforbermudagrasscontrol,and0.27 oz/A or above for bermudagrass control, and 0.33 oz/A for johnsongrass and purple nutsedge control. Fuel prices, directly impacting tillage costs, were found to not be sensitive in determining optimal weed control choices

    Oz/K: A Kernel Language for Component-Based Open Programming

    Get PDF
    International audienceProgramming in an open environment remains challenging because it requires combining modularity, security, concurrency, distribution, and dynamicity. In this paper, we propose an approach to open distributed programming that exploits the notion of locality, which has been used in the past decade as a basis for several distributed process calculi such as Mobile Ambients, Dπ, and Seal. We use the locality concept as a form of component that serves as a unit of modularity, of isolation, and of passivation. Specifically, we introduce in this paper OZ/K, a kernel programming language, that adds to the OZ computation model a notion of locality borrowed from the Kell calculus. We present an operational semantics for the language and several examples to illustrate how OZ/K supports open distributed programming

    Set based failure diagnosis for concurrent constraint programming

    Get PDF
    Oz is a recent high-level programming language, based on an extension of the concurrent constraint model by higher-order procedures and state. Oz is a dynamically typed language like Prolog, Scheme, or Smalltalk. We investigate two approaches of making static type analysis available for Oz: Set-based failure diagnosis and strong typing. We define a new system of set constraints over feature trees that is appropriate for the analysis of record structures, and we investigate its satisfiability, emptiness, and entailment problem. We present a set-based diagnosis for constraint logic programming and concurrent constraint programming as first-order fragments of Oz, and we prove that it correctly detects inevitable run-time errors. We also propose an analysis for a larger sublanguage of Oz. Complementarily, we define an Oz-style language called Plain that allows an expressive strong type system. We present such a type system and prove its soundness.Oz ist eine anwendungsnahe Programmiersprache, deren Grundlage eine Erweiterung des Modells nebenläufiger Constraintprogrammierung um Prozeduren höherer Stufe und Zustand ist. Oz ist eine Sprache mit dynamischer Typüberprüfung wie Prolog, Scheme oder Smalltalk. Wir untersuchen zwei Ansätze, statische Typüberprüfung für Oz zu ermöglichen: Mengenbasierte Fehlerdiagnose und Starke Typisierung. Wir definieren ein neues System von Mengenconstraints über Featurebäumen, das für die Analyse von Recordstrukturen geeignet ist, und wir untersuchen das Erfüllbarkeits-, das Leerheits- und das Subsumtionsproblem für dieses Constraintsystem. Wir präsentieren eine mengenbasierte Diagnose für Constraint-Logikprogrammierung und für nebenläufige Constraintprogrammierung als Teilsprachen von Oz, und wir beweisen, daß diese unvermeidliche Laufzeitfehler erkennt. Wir schlagen auch eine mengenbasierte Analyse für eine grössere Teilsprache von Oz vor. Komplementär dazu definieren wir eine Oz-artige Sprache genannt Plain, die ein expressives starkes Typsystem erlaubt. Wir stellen ein solches Typsystem vor und beweisen seine Korrektheit

    Set based failure diagnosis for concurrent constraint programming

    Get PDF
    Oz is a recent high-level programming language, based on an extension of the concurrent constraint model by higher-order procedures and state. Oz is a dynamically typed language like Prolog, Scheme, or Smalltalk. We investigate two approaches of making static type analysis available for Oz: Set-based failure diagnosis and strong typing. We define a new system of set constraints over feature trees that is appropriate for the analysis of record structures, and we investigate its satisfiability, emptiness, and entailment problem. We present a set-based diagnosis for constraint logic programming and concurrent constraint programming as first-order fragments of Oz, and we prove that it correctly detects inevitable run-time errors. We also propose an analysis for a larger sublanguage of Oz. Complementarily, we define an Oz-style language called Plain that allows an expressive strong type system. We present such a type system and prove its soundness.Oz ist eine anwendungsnahe Programmiersprache, deren Grundlage eine Erweiterung des Modells nebenläufiger Constraintprogrammierung um Prozeduren höherer Stufe und Zustand ist. Oz ist eine Sprache mit dynamischer Typüberprüfung wie Prolog, Scheme oder Smalltalk. Wir untersuchen zwei Ansätze, statische Typüberprüfung für Oz zu ermöglichen: Mengenbasierte Fehlerdiagnose und Starke Typisierung. Wir definieren ein neues System von Mengenconstraints über Featurebäumen, das für die Analyse von Recordstrukturen geeignet ist, und wir untersuchen das Erfüllbarkeits-, das Leerheits- und das Subsumtionsproblem für dieses Constraintsystem. Wir präsentieren eine mengenbasierte Diagnose für Constraint-Logikprogrammierung und für nebenläufige Constraintprogrammierung als Teilsprachen von Oz, und wir beweisen, daß diese unvermeidliche Laufzeitfehler erkennt. Wir schlagen auch eine mengenbasierte Analyse für eine grössere Teilsprache von Oz vor. Komplementär dazu definieren wir eine Oz-artige Sprache genannt Plain, die ein expressives starkes Typsystem erlaubt. Wir stellen ein solches Typsystem vor und beweisen seine Korrektheit
    corecore