relational programming is a methodology which combines the advantages o-f ^^untional programming with the relatively simple laws which govern relations. The goal is to give the programmer an environment which allows a...
详细信息
relational programming is a methodology which combines the advantages o-f ^^untional programming with the relatively simple laws which govern relations. The goal is to give the programmer an environment which allows a higher level o-f programming abstraction than currently exists, an easier approach to proving programs correct, and a language which can support new parallel architectures. In this report, the design and implementation o-f a prototype interactive inter- preter -for a relational programming language is presented. The reasoning behind the decision to use LISP as the implementation language is presented followed by an in depth discussion o-f the design issues involved and the implementa- tion decisions made. How to use the interpreter and future research topics 3. rE; discussed. Also several appendices s. rs provided which include the grammar, the relational operators implemented, and the documented LISP code.
We propose a unified approach to semantically rich knowledge representation, querying and exchange for the Web, based on functional-logic programming. JavaScript- and JSON-based so-called information scripts serve as ...
详细信息
ISBN:
(纸本)9783319137049;9783319137032
We propose a unified approach to semantically rich knowledge representation, querying and exchange for the Web, based on functional-logic programming. JavaScript- and JSON-based so-called information scripts serve as a unified knowledge representation and query format, with logical reasoning being a constraint solving or narrowing task. This way, our framework provides a highly versatile, easy to use and radically different alternative compared to conventional forms of knowledge representation and exchange for the Web.
We combine relational algebra and program derivation methodology and reconstruct a proof of Richardson's theorem that every finite directed graph without circuits of odd length has a kernel as a relational program...
详细信息
We combine relational algebra and program derivation methodology and reconstruct a proof of Richardson's theorem that every finite directed graph without circuits of odd length has a kernel as a relational program. Also a generalization of the approach is presented. (C) 2000 Elsevier Science B.V. All rights reserved.
A method for designing and prototyping program construction systems using relational databases is presented. Relations are the only data structures used inside the systems and for interfaces; programs extensively use ...
详细信息
A method for designing and prototyping program construction systems using relational databases is presented. Relations are the only data structures used inside the systems and for interfaces; programs extensively use relational languages, in particular relational algebra. Two large projects are described. The Ada relational Translator (ART) is an experimental compiler-interpreter for Ada in which all subsystems, including the parser, semantic analyzer, interpreter, kernel, and debugger, use relations as their only data structure; the relational approach has been pushed to the utmost to achieve fast prototyping in a student environment. Multi-Micro Line (MML) is a tool set for constructing programs for multimicroprocessors' targets, in which relations are used for allocation and configuration control. Both experiences confirm the validity of the approach for managing teamwork in evolving projects, identify areas where this approach is appropriate, and raise critical issues. [ABSTRACT FROM AUTHOR]
Synthesizing intended programs from user-specified input-output examples, also known as programming by Examples (PBE), is a challenging problem in program synthesis, and has been applied to a wide range of domains. A ...
详细信息
Synthesizing intended programs from user-specified input-output examples, also known as programming by Examples (PBE), is a challenging problem in program synthesis, and has been applied to a wide range of domains. A key challenge in PBE is to efficiently discover a user-intended program in the search space that can be exponentially large. In this work, we propose a method for automatic synthesis of functional programs on list manipulation, by using offline-trained Recurrent Neural Network (RNN) models to guide the program search. We adopt miniKanren, an embedded domain-specific language for flexible relational programming, as an underlying top-down deductive search engine of candidate programs that are consistent with input-output examples. Our approach targets an easy and effective integration of deep learning techniques in making better PBE systems and combines two technical ideas on generating diverse training dataset and designing rich feature embeddings of probable subproblems for synthesis generated by deductive search. The offline-learned model is then used in PBE to guide the top-down deductive search with specific strategies. To practically manipulate data structures of lists, our method synthesizes functional programs with popular higher-order combinators including map, foldl and foldr. We have implemented our method and evaluated it with challenging program synthesis tasks on list manipulation. The experiments show promising results on the performance of our method compared to related state-of-the-art inductive synthesizers.
We describe a search optimization technique for implementation of relational programming language miniKanren which makes more queries converge. Specifically, we address the problem of conjunction non-commutativity. Ou...
详细信息
ISBN:
(纸本)9781450364416
We describe a search optimization technique for implementation of relational programming language miniKanren which makes more queries converge. Specifically, we address the problem of conjunction non-commutativity. Our technique is based on a certain divergence criterion that we use to trigger a dynamic reordering of conjuncts. We present a formal semantics of a miniKanren-like language and prove that our optimization does not compromise already converging programs, thus, being a proper improvement. We also present the prototype implementation of the improved search and demonstrate its application for a number of realistic specifications.
Starting with the premise that rule-based systems still have their place in AI toolkit, we explore different ways of implementing such systems. We find that some of the criticisms towards rule-based systems, namely th...
详细信息
ISBN:
(纸本)9783031655715;9783031655722
Starting with the premise that rule-based systems still have their place in AI toolkit, we explore different ways of implementing such systems. We find that some of the criticisms towards rule-based systems, namely their large number of rules and high maintenance cost can be addressed by using declarative style programming and a shift to a higher level of abstraction from rules to meta-rules, operating on the structure of data rather than its contents. We use OpenNARS 4 as example implementation to demonstrate advantages of this approach but the results are generally applicable to other rule-based systems.
We present a new, fair, conjunction evaluation strategy for relational programming language MINIKANREN. Unlike the original left-biased conjunction, our approach controls the order of conjunct execution based on the i...
详细信息
ISBN:
(纸本)9781450383059
We present a new, fair, conjunction evaluation strategy for relational programming language MINIKANREN. Unlike the original left-biased conjunction, our approach controls the order of conjunct execution based on the intrinsic properties of relation definitions. We present both the formal study of conjunction fairness and practical evaluation, which demonstrates the essential improvement in terms of both performance and convergence.
Typical hardware description languages, such as Verilog and VHDL, are low-level declarative languages with little room for flexibility. Extending, verifying, or reinterpreting programs in these languages is typically ...
详细信息
ISBN:
(纸本)9798400700439
Typical hardware description languages, such as Verilog and VHDL, are low-level declarative languages with little room for flexibility. Extending, verifying, or reinterpreting programs in these languages is typically done with external tools and at great cost. This paper presents an implementation of a relational hardware description language, Ruby, in the programming language and proof assistant Agda. Using our system, an engineer can easily write, compile, simulate, and verify new designs. The language is modular, allowing for new constructs and libraries to be added easily, and supports formal reasoning about circuit transformations. Symbolic simulation and compilation to a netlist format are also provided. We demonstrate our tool by designing, compiling, and simulating a priority queue design, and showcase how equational reasoning can be used to prove properties of circuits.
暂无评论