中文
相关论文

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

200 篇论文

Software remodularization through clustering is a common practice to improve internal software quality. However, the true benefit of software clustering is only realized if developers follow through with the recommended refactoring…

软件工程 · 计算机科学 2023-03-14 Alvin Jian Jia Tan , Chun Yong Chong , Aldeida Aleti

Software systems are evolving by adding new functions and modifying existing functions over time. Through the evolution, the structure of software is becoming more complex and so the understandability and maintainability of software systems…

软件工程 · 计算机科学 2014-08-22 Ginika Mahajan , Ashima

Context: Modern code review is a widely employed technique in both industrial and open-source projects, serving to enhance software quality, share knowledge, and ensure compliance with coding standards and guidelines. While code review is…

软件工程 · 计算机科学 2025-01-31 Eman Abdullah AlOmar

Software refactoring plays an important role in software engineering. Developers often turn to refactoring when they want to restructure software to improve its quality without changing its external behavior. Studies show that small-scale…

Developers often refactor code to improve the maintainability and comprehension of the software. There are many studies on refactoring activities in traditional software systems. However, refactoring in data-intensive systems is not well…

软件工程 · 计算机科学 2022-02-08 Biruk Asmare Muse , Foutse Khomh , Giuliano Antoniol

This paper contains examples for a companion paper "The Prolog Debugger and Declarative Programming", which discusses (in)adequacy of the Prolog debugger for declarative programming. Logic programming is a declarative programming paradigm.…

编程语言 · 计算机科学 2020-04-07 Włodzimierz Drabent

The semantics and the recursive execution model of Prolog make it very natural to express language interpreters in form of AST (Abstract Syntax Tree) interpreters where the execution follows the tree representation of a program. An…

编程语言 · 计算机科学 2020-08-31 Philipp Körner , David Schneider , Michael Leuschel

This is a tutorial on logic programming and Prolog appropriate for a course on programming languages for students familiar with imperative programming.

编程语言 · 计算机科学 2007-05-23 Krzysztof R. Apt

This document describes a couple of tools that help to quickly design and develop computer (formalized) languages. The first one use Flex to perform lexical analysis and the second is an extention of Prolog DCGs to perfom syntactical…

软件工程 · 计算机科学 2007-05-23 Thierry Despeyroux

We introduce the higher-order refactoring problem, where the goal is to compress a logic program by discovering higher-order abstractions, such as map, filter, and fold. We implement our approach in Stevie, which formulates the refactoring…

机器学习 · 计算机科学 2024-01-30 Céline Hocquette , Sebastijan Dumančić , Andrew Cropper

To appear in Theory and Practice of Logic Programming (TPLP). Several Prolog interpreters are based on the Warren Abstract Machine (WAM), an elegant model to compile Prolog programs. In order to improve the performance several strategies…

编程语言 · 计算机科学 2014-05-13 George Souza Oliveira , Anderson Faustino da Silva

Refactoring is the practice of improving software quality without altering its external behavior. Developers intuitively refactor their code for multiple purposes, such as improving program comprehension, reducing code complexity, dealing…

计算机与社会 · 计算机科学 2023-11-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

To remain useful for their users, software systems need to continuously enhance and extend their functionality. Nevertheless, in many object-oriented applications, features are not represented explicitly. The lack of modularization is known…

软件工程 · 计算机科学 2014-07-07 T. Pandiyavathi

Prolog is a well-known declarative programming language commonly used in introductory courses on logic and reasoning. However, many students find Prolog challenging because it lacks the familiar debugging mechanisms found in imperative…

编程语言 · 计算机科学 2026-05-27 Ricardo Brancas , Vasco Manquinho , Ruben Martins

ProFIT is an extension of Standard Prolog with Features, Inheritance and Templates. ProFIT allows the programmer or grammar developer to declare an inheritance hierarchy, features and templates. Sorted feature terms can be used in ProFIT…

cmp-lg · 计算机科学 2016-08-31 Gregor Erbach

It is next to impossible to develop real-life applications in just pure Prolog. With XPCE we realised a mechanism for integrating Prolog with an external object-oriented system that turns this OO system into a natural extension to Prolog.…

软件工程 · 计算机科学 2007-05-23 Jan Wielemaker , Anjo Anjewierden

Software refactoring aims at improving code quality while preserving the system's external behavior. Although in principle refactoring is a behavior-preserving activity, a study presented by Bavota et al. in 2012 reported the proneness of…

软件工程 · 计算机科学 2020-09-25 Massimiliano Di Penta , Gabriele Bavota , Fiorella Zampetti

We describe a strategy language to control the application of graph rewriting rules, and show how this language can be used to write high-level declarative programs in several application areas. This language is part of a graph-based…

编程语言 · 计算机科学 2010-12-30 Maribel Fernández , Olivier Namet

Proponents of the programming language Prolog share the opinion Prolog is more appropriate for transforming XML-documents as other well-established techniques and languages like XSLT. In order to clarify this position this work proposes a…

编程语言 · 计算机科学 2021-04-26 René Haberland

Code super-optimization is the task of transforming any given program to a more efficient version while preserving its input-output behaviour. In some sense, it is similar to the paraphrase problem from natural language processing where the…

机器学习 · 计算机科学 2017-06-29 Rudy Bunel , Alban Desmaison , M. Pawan Kumar , Philip H. S. Torr , Pushmeet Kohli