English
Related papers

Related papers: Improving Prolog Programs: Refactoring for Prolog

200 papers

Procedural computer languages have long been used in many aspects of mathematics pedagogy. In this work, we examine the use of Prolog, a declarative language for the same purpose. We find the facts+rules aspect of Prolog to be a novel…

Computers and Society · Computer Science 2021-08-24 Tom Bensky

Refactoring is an important activity that is frequently performed in software development, and among them, Extract Method is known to be one of the most frequently performed refactorings. The existing techniques for recommending Extract…

Software Engineering · Computer Science 2021-08-31 Jinto Yamanaka , Yasuhiro Hayase , Toshiyuki Amagasa

ProbLog is a state-of-art combination of logic programming and probabilities; in particular ProbLog offers parameter learning through a variant of the EM algorithm. However, the resulting learning algorithm is rather slow, even when the…

Artificial Intelligence · Computer Science 2017-08-03 Francisco H. O. V. de Faria , Arthur C. Gusmão , Fabio G. Cozman , Denis D. Mauá

Context. Refactoring has been widely investigated in the past in relation to production code quality, yet still little is known on how developers apply refactoring on test code. Specifically, there is still a lack of investigation into how…

Software Engineering · Computer Science 2023-08-21 Luana Martins , Valeria Pontillo , Heitor Costa , Filomena Ferrucci , Fabio Palomba , Ivan Machado

Refactoring is the process of restructuring existing code without changing its external behavior while improving its internal structure. Refactoring engines are integral components of modern Integrated Development Environments (IDEs) and…

Software Engineering · Computer Science 2025-07-10 Haibo Wang , Zhuolin Xu , Shin Hwei Tan

Refactorings are structured changes to existing software that leave its externally observable behaviour unchanged. Their intent is to improve readability, performance or other non-behavioural properties. State-of-the-art automatic…

Programming Languages · Computer Science 2017-12-21 Cristina David , Pascal Kesseli , Daniel Kroening

In order to achieve competitive performance, abstract machines for Prolog and related languages end up being large and intricate, and incorporate sophisticated optimizations, both at the design and at the implementation levels. At the same…

Programming Languages · Computer Science 2020-02-19 Jose F. Morales , Manuel Carro , Manuel Hermenegildo

Understanding the practice of refactoring documentation is of paramount importance in academia and industry. Issue tracking systems are used by most software projects enabling developers, quality assurance, managers, and users to submit…

Software Engineering · Computer Science 2022-03-22 Eman Abdullah AlOmar , Anthony Peruma , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

Generating high-quality code that solves complex programming tasks is challenging, especially with current decoder-based models that produce highly stochastic outputs. In code generation, even minor errors can easily break the entire…

Computation and Language · Computer Science 2025-04-15 Nikita Sorokin , Ivan Sedykh , Valentin Malykh

The most important way to achieve higher performance in computer systems is through heterogeneous computing, i.e., by adopting hardware platforms containing more than one type of processor, such as CPUs, GPUs, and FPGAs. Several types of…

Software Engineering · Computer Science 2020-05-19 Hugo Andrade , Ivica Crnkovic , Jan Bosch

Agentic coding tools, such as OpenAI Codex, Claude Code, and Cursor, are transforming the software engineering landscape. These AI-powered systems function as autonomous teammates capable of planning and executing complex development tasks.…

Software Engineering · Computer Science 2025-11-10 Kosei Horikawa , Hao Li , Yutaro Kashiwa , Bram Adams , Hajimu Iida , Ahmed E. Hassan

Directives for the compiler such as pragmas can help programmers to separate an algorithm's semantics from its optimization. This keeps the code understandable and easier to optimize for different platforms. Simple transformations such as…

Programming Languages · Computer Science 2018-11-05 Michael Kruse , Hal Finkel

Program obfuscation is an important software protection technique that prevents attackers from revealing the programming logic and design of the software. We introduce translingual obfuscation, a new software obfuscation scheme which makes…

Cryptography and Security · Computer Science 2016-01-13 Pei Wang , Shuai Wang , Jiang Ming , Yufei Jiang , Dinghao Wu

Code refactoring is widely recognized as an essential software engineering practice to improve the understandability and maintainability of the source code. The Extract Method refactoring is considered as "Swiss army knife" of refactorings,…

Software Engineering · Computer Science 2023-12-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

Existing reinforcement learning strategies based on outcome supervision have proven effective in enhancing the performance of large language models(LLMs) for code generation. While reinforcement learning based on process supervision has…

Software Engineering · Computer Science 2025-02-05 Yufan Ye , Ting Zhang , Wenbin Jiang , Hua Huang

We describe an application of Prolog: a type checking tool for the Q functional language. Q is a terse vector processing language, a descendant of APL, which is getting more and more popular, especially in financial applications. Q is a…

Programming Languages · Computer Science 2011-12-19 János Csorba , Zsolt Zombori , Péter Szeredi

Visual Programming has recently emerged as an alternative to end-to-end black-box visual reasoning models. This type of method leverages Large Language Models (LLMs) to generate the source code for an executable computer program that solves…

Computer Vision and Pattern Recognition · Computer Science 2024-07-24 Jaywon Koo , Ziyan Yang , Paola Cascante-Bonilla , Baishakhi Ray , Vicente Ordonez

To appear in Theory and Practice of Logic Programming (TPLP), 2008. We are researching the interaction between the rule and the ontology layers of the Semantic Web, by comparing two options: 1) using OWL and its rule extension SWRL to…

Artificial Intelligence · Computer Science 2007-11-22 Ken Samuel , Leo Obrst , Suzette Stoutenberg , Karen Fox , Paul Franklin , Adrian Johnson , Ken Laskey , Deborah Nichols , Steve Lopez , Jason Peterson

Although some recent works show potential complementarity among different state-of-the-art systems, few works try to investigate this problem in text summarization. Researchers in other areas commonly refer to the techniques of reranking or…

Computation and Language · Computer Science 2021-04-16 Yixin Liu , Zi-Yi Dou , Pengfei Liu

Prolog's very useful expressive power is not captured by traditional logic programming semantics, due mainly to the cut and goal and clause order. Several alternative semantics have been put forward, exposing operational details of the…

Programming Languages · Computer Science 2011-07-28 António Porto