Improving Prolog programs: Refactoring for Prolog

Author:

SEREBRENIK ALEXANDER,SCHRIJVERS TOM,DEMOEN BART

Abstract

AbstractRefactoring is an established technique from the object-oriented (OO) programming community to restructure code: it aims at improving software readability, maintainability, and extensibility. Although refactoring is not tied to the OO-paradigm in particular, its ideas have not been applied to logic programming until now. This paper applies the ideas of refactoring to Prolog programs. A catalogue is presented listing refactorings classified according to scope. Some of the refactorings have been adapted from the OO-paradigm, while others have been specifically designed for Prolog. The discrepancy between intended and operational semantics in Prolog is also addressed by some of the refactorings. In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and the experience with applying ViPReSS to a large Prolog legacy system is reported. The main conclusion is that refactoring is both a viable technique in Prolog and a rather desirable one.

Publisher

Cambridge University Press (CUP)

Subject

Artificial Intelligence,Computational Theory and Mathematics,Hardware and Architecture,Theoretical Computer Science,Software

Reference27 articles.

1. Fowler M. 2003. Refactorings in alphabetical order. URL: http://www.refactoring.com/catalog/. Accessed April 2, 2007.

2. Leveraging legacy system dollars for e-business

3. 1995. Information Technology—Programming Languages—Prolog—Part 1: General Core. ISO/IEC. ISO/IEC 13211-1:1995.

4. van Vliet, H. 2000. Software Engineering: Principles and Practice, 2nd ed. John Wiley & Sons.

5. Tourwé T. and Mens T. 2003. Identifying refactoring opportunities using logic meta programming. In 7th European Conference on Software Maintenance and Reengineering, Proceedings. IEEE Computer Society, 91–100.

Cited by 9 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Prolog Coding Guidelines: Status and Tool Support;Electronic Proceedings in Theoretical Computer Science;2019-09-19

2. Identifying Utility Functions Using Random Forests;2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER);2016-03

3. kLog: A language for logical and relational learning with kernels;Artificial Intelligence;2014-12

4. Semantic Code Clones in Logic Programs;Logic-Based Program Synthesis and Transformation;2013

5. Clones in Logic Programs and How to Detect Them;Logic-Based Program Synthesis and Transformation;2012

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3