Skip to main content
    • Aa
    • Aa

Improving Prolog programs: Refactoring for Prolog


Refactoring 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.

Hide All
L. Erlikh 2000. Leveraging legacy system dollars for e-business. IT Professional 2, 3 (May), 1723.

T. Mens and T. Tourwé 2004. A survey of software refactoring. IEEE Transactions on Software Engineering 30, 2 (February), 126138.

J. T. Nosek and P. C. Palvia 1990. Software maintenance management: Changes in the last decade. Journal of Software Maintenance: Research and Practice 2, 3 (September), 157174.

D. L. Parnas 1972. On the criteria to be used in decomposing systems into modules. Communications of the {ACM 15, 12 (December), 10531058.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Theory and Practice of Logic Programming
  • ISSN: 1471-0684
  • EISSN: 1475-3081
  • URL: /core/journals/theory-and-practice-of-logic-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *



Full text views

Total number of HTML views: 0
Total number of PDF views: 4 *
Loading metrics...

Abstract views

Total abstract views: 140 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 17th October 2017. This data will be updated every 24 hours.