Answer set programming (ASP) is a declarative programming paradigm based on an interpretation of logical rules as constraints. In this article, we relate answer set programming with other constraint-based solving para...
详细信息
Answer set programming (ASP) is a declarative programming paradigm based on an interpretation of logical rules as constraints. In this article, we relate answer set programming with other constraint-based solving paradigms: Boolean satisfiability checking, satisfiability modulo theories, mixed integer programming, and constraint programming. We illustrate the relationship of ASP with these alternative paradigms in terms of simple examples, and identify the main primitives and characteristics of the constraint-based languages under consideration.
This is a survey presented at the International Joint Conference on AI (IJCAI-89) in Detroit on Soviet work in the field of knowledge-based programming. It considers work which started in the 1970s as automatic progra...
详细信息
This is a survey presented at the International Joint Conference on AI (IJCAI-89) in Detroit on Soviet work in the field of knowledge-based programming. It considers work which started in the 1970s as automatic programming projects with a goal to find new ways of program construction and, particularly, the work on computational models and problem solving. The structural program synthesis and conceptual programming technique developed in this framework were later used in the new generation computer project, START.
Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory article provides the mathematical background for the discussion of answer set program...
详细信息
Answer set programming is a declarative programming paradigm based on the answer set semantics of logic programs. This introductory article provides the mathematical background for the discussion of answer set programming in other contributions to this special issue.
Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for deterministic functional logic program...
详细信息
Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for deterministic functional logic programming. Our main contribution is to equip VC with a small-step rewrite semantics, so that we can reason about a VC program in the same way as one does with lambda calculus;that is, by applying successive rewrites to it. We also show that the rewrite system is confluent for well-behaved terms.
In this paper we present a study of the problem of handling constraints made by conjunctions of positive and negative literals based on the predicate symbols =, is an element of, boolean OR, and parallel to (i.e., dis...
详细信息
In this paper we present a study of the problem of handling constraints made by conjunctions of positive and negative literals based on the predicate symbols =, is an element of, boolean OR, and parallel to (i.e., disjointness of two sets) in a (hybrid) universe of finite sets. We also review and compare the main techniques considered to represent finite sets in the context of logic languages. The resulting constraint algorithms are embedded in a Constraint Logic programming (CLP) language which provides finite sets-along with basic set-theoretic operations-as first-class objects of the language. The language-called CLP(SET)-is an instance of the general CLP framework, and as such it inherits all the general features and theoretical results of this scheme. We provide, through programming examples, a taste of the expressive power offered by programming in CLP(SET).
We argue for a combination of declarative/constraint and imperative programming approaches for MABS: a declarative layer that specified the ontology, assumptions, types, internal and checks for a simulation and the im...
详细信息
ISBN:
(纸本)9783031610332;9783031610349
We argue for a combination of declarative/constraint and imperative programming approaches for MABS: a declarative layer that specified the ontology, assumptions, types, internal and checks for a simulation and the imperative code that satisfied the statements of the declarative layer - instantiating the behaviours. Such a system would be a generalisation of common elements of existing simulations. The two layers would be separately developed and communicated but work together. Using such a system one might: (a) start by importing an ontology of entities that have been previously agreed within a field, (b) work with domain experts to implement declarative statements that reflect what is known about the system, (c) develop the implementation starting with declarative internal checks and the outlines of the implementation, (d) slowly add imperative statements to fill in details, (e) finally when the simulation has been completely verified, the declarative layer could be switched off to allow faster exploration. This would ensure for a more reliable simulation and ensure its consistency with common ontologies etc. It would facilitate: joining models together with fewer mistakes, comparing models, provide enhanced and flexible error checking, make modules more reusable, allow for rapid prototyping, support the automation of modelling tools/add-ons, and allow the selective exploration of all possible behaviours of a sub-model using constraint programming techniques. Examples are given of previous work that moves in this direction.
The research on paradigms in audio and music programming is an ongoing endeavor. However, although new audio programming paradigms have been created, already established paradigms did prevail and dominate major music ...
详细信息
ISBN:
(纸本)9781450366090
The research on paradigms in audio and music programming is an ongoing endeavor. However, although new audio programming paradigms have been created, already established paradigms did prevail and dominate major music production systems. Our research aims at the question, how programming paradigms and music production interacts. We describe the implementation process of an imperative algorithm calculating the greatest common divisor (gcd) in Pure Data and exemplify common problems of transformational processes between an imperative paradigm and a patch-paradigm. Having a closer look at related problems in research on programming paradigms in general, we raise the question of how constraints and boundaries of paradigms play a role in the design process of a program. With the deliberation on selected papers within the context of computer science, we give insight into different views of how the process of programming can be thought and how certain domains of application demand a specific paradigm.
This paper is primarily intended for students who take the courses on computer engineering. It may be useful as a reference text for practicing engineers and scientists who want to acquire some of the concepts require...
详细信息
ISBN:
(纸本)9781479941063
This paper is primarily intended for students who take the courses on computer engineering. It may be useful as a reference text for practicing engineers and scientists who want to acquire some of the concepts required for computer engineering in programming languages. The main objective of this paper is to make the readers prepared for studying the subjects on computer engineering and computer languages. The features of this paper can be summarized as follows: 1. It introduces the basic classification of programming languages and explain the declarative programming languages. 2. It gives a structure of C-Program with a simple example. 3. It covers the logical and functional programming languages, Common LISP, Standard Meta Languages, and Functional programming with Haskell. 4. Each declarative programming language is illustrated by key concept, and examples with any applications so that the students can appreciate what the examples should be studied for.
We present the development of the Lucid language from the Original Lucid of the mid-1970s to the TransLucid of today. Each successive version of the language has been a generalisation of previous languages, but with a...
详细信息
We present the development of the Lucid language from the Original Lucid of the mid-1970s to the TransLucid of today. Each successive version of the language has been a generalisation of previous languages, but with a further understanding of the problems at hand. The Original Lucid (1976), originally designed for purposes of formal verification, was used to formalise the iteration in while-loop programs. The pLucid language (1982) was used to describe dataflow networks. Indexical Lucid (1987) was introduced for intensional programming, in which the semantics of a variable was understood as a function from a universe of possible worlds to ordinary values. With TransLucid, and the use of contexts as firstclass values, programming can be understood in a Cartesian framework.
暂无评论