中文
相关论文

相关论文: Improving Prolog Programs: Refactoring for Prolog

200 篇论文

Logic Programming languages and combinational circuit synthesis tools share a common "combinatorial search over logic formulae" background. This paper attempts to reconnect the two fields with a fresh look at Prolog encodings for the…

计算机科学中的逻辑 · 计算机科学 2008-12-18 Paul Tarau , Brenda Luderman

Higher-order logic programming is an interesting extension of traditional logic programming that allows predicates to appear as arguments and variables to be used where predicates typically occur. Higher-order characteristics are indeed…

编程语言 · 计算机科学 2018-12-04 Antonis Troumpoukis , Angelos Charalambidis

Magic sets are a Datalog to Datalog rewriting technique to optimize query answering. The rewritten program focuses on a portion of the stable model(s) of the input program which is sufficient to answer the given query. However, the…

人工智能 · 计算机科学 2020-02-19 Mario Alviano , Nicola Leone , Pierfrancesco Veltri , Jessica Zangari

e use Prolog as a flexible meta-language to provide executable specifications of some fundamental mathematical objects and their transformations. In the process, isomorphisms are unraveled between natural numbers and combinatorial objects…

编程语言 · 计算机科学 2011-12-19 Paul Tarau

This report investigates the relationship between software refactoring and behavior preservation. Existing behavior preservation analyses often lack comprehensive insights into refactoring rejections and do not provide actionable solutions.…

Prolog's support for dynamic programming, meta programming and text processing using context free grammars make the language highly suitable for defining domain specific languages (DSL) as well as analysing, refactoring or generating…

编程语言 · 计算机科学 2013-08-20 Jan Wielemaker , Michael Hendricks

An important challenge in constraint programming is to rewrite constraint models into executable programs calculat- ing the solutions. This phase of constraint processing may require translations between constraint programming lan- guages,…

人工智能 · 计算机科学 2010-02-17 Raphael Chenouard , Laurent Granvilliers , Ricardo Soto

Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow. To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable…

编程语言 · 计算机科学 2022-05-17 Michael Hanus

A theory is developed which uses "networks" (directed acyclic graphs with some extra structure) as a formalism for expressions in multilinear algebra. It is shown that this formalism is valid for arbitrary PROPs (short for 'PROducts and…

环与代数 · 数学 2012-04-12 Lars Hellström

Code readability is fundamental to software quality and maintainability. Poor readability extends development time, increases bug-inducing risks, and contributes to technical debt. With the rapid advancement of Large Language Models, AI…

软件工程 · 计算机科学 2026-03-17 Kyogo Horikawa , Kosei Horikawa , Yutaro Kashiwa , Hidetake Uwano , Hajimu Iida

Program slicing has been mainly studied in the context of imperative languages, where it has been applied to a wide variety of software engineering tasks, like program understanding, maintenance, debugging, testing, code reuse, etc. This…

编程语言 · 计算机科学 2007-05-23 Josep Silva , Germán Vidal

Refactoring is widely recognized as one of the efficient techniques to manage technical debt and maintain a healthy software project through enforcing best design practices or coping with design defects. Previous refactoring surveys have…

软件工程 · 计算机科学 2021-09-24 Eman Abdullah AlOmar , Anthony Peruma , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

We describe here a simple application of rational trees to the implementation of an interpreter for a procedural language written in a logic programming language. This is possible in languages designed to support rational trees (such as…

数据结构与算法 · 计算机科学 2007-05-23 Manuel Carro

Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when…

软件工程 · 计算机科学 2021-02-09 Utkarsh Desai , Sambaran Bandyopadhyay , Srikanth Tamilselvam

Logic programming such as Prolog is often sequential and slow because each execution step processes only a single, $micro$ connective. To fix this problem, we propose to use $macro$ connectives as the means of improving both readability and…

编程语言 · 计算机科学 2018-05-08 Keehang Kwon

Large Language Models (LLMs) excel in code generation yet struggle with modern AI software engineering tasks. Unlike traditional function-level or file-level coding tasks, AI software engineering requires not only basic coding proficiency…

软件工程 · 计算机科学 2025-03-20 Siru Ouyang , Wenhao Yu , Kaixin Ma , Zilin Xiao , Zhihan Zhang , Mengzhao Jia , Jiawei Han , Hongming Zhang , Dong Yu

Even though the core of the Prolog programming language has been standardized by ISO since 1995, it remains difficult to write complex Prolog programs that can run unmodified on multiple Prolog implementations. Indeed, implementations…

编程语言 · 计算机科学 2022-05-10 David Geleßus , Michael Leuschel

We introduce DeepProbLog, a probabilistic logic programming language that incorporates deep learning by means of neural predicates. We show how existing inference and learning techniques can be adapted for the new language. Our experiments…

人工智能 · 计算机科学 2018-12-13 Robin Manhaeve , Sebastijan Dumančić , Angelika Kimmig , Thomas Demeester , Luc De Raedt

C is the lingua franca of programming and almost any device can be programmed using C. However, programming mod-ern heterogeneous architectures such as multi-core CPUs and GPUs requires explicitly expressing parallelism as well as…

Many automatic theorem-provers rely on rewriting. Using theorems as rewrite rules helps to simplify the subgoals that arise during a proof. LCF is an interactive theorem-prover intended for reasoning about computation. Its implementation of…

计算机科学中的逻辑 · 计算机科学 2016-08-31 Lawrence C. Paulson