Improving Prolog programs: Refactoring for Prolog

Refactoring is an established technique from the OO-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.

[1]  Paul Tarau,et al.  Fluents: A Refactoring of Prolog for Uniform Reflection an Interoperation with External Objects , 2000, Computational Logic.

[2]  Michael Leuschel,et al.  Redundant Argument Filtering of Logic Programs , 1996, LOPSTR.

[3]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[4]  Prashant Palvia,et al.  Software maintenance management: Changes in the last decade , 1990, J. Softw. Maintenance Res. Pract..

[5]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

[6]  Fergus Henderson,et al.  The Implementation of Mercury, an Efficient Purely Declarative Logic Programming Language , 1994, ILPS Workshop: Implementation Techniques for Logic Programming Languages.

[7]  Anjo Anjewierden Richard A. O'Keefe: The Craft of Prolog , 1991 .

[8]  Alberto Pettorossi,et al.  Transformation of Logic Programs: Foundations and Techniques , 1994, J. Log. Program..

[9]  Dietmar Seipel,et al.  Analyzing and Visualising Prolog programs based on XML representations , 2003, WLPE.

[10]  Richard A. O'Keefe,et al.  The Craft of Prolog , 1990 .

[11]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[12]  Bart Demoen,et al.  Refactoring Logic Programs: Extended Abstract , 2003, ICLP.

[13]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[14]  Trevor T. Moores Applying complexity measures to rule-based prolog programs , 1998, J. Syst. Softw..

[15]  Ralph E. Johnson,et al.  Refactoring C with conditional compilation , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[16]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[17]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[18]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[19]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[20]  Huiqing Li,et al.  Tool support for refactoring functional programs , 2003, Haskell '03.

[21]  Salvador Lucas,et al.  Removing Redundant Arguments of Functions , 2002, AMAST.

[22]  Wim Vanhoof Searching Semantically Equivalent Code Fragments in Logic Programs , 2004, LOPSTR.

[23]  Hendrik Blockeel,et al.  The Learning Shell: Automated Macro Construction , 2001, User Modeling.

[24]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[25]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[26]  Daniel Crow,et al.  DB_Habits: comparing minimal knowledge and knowledge-based approaches to pattern recognition in the domain of user-computer interactions , 1992 .

[27]  Tom Schrijvers,et al.  Refactoring Prolog programs , 2003 .

[28]  Sandro Etalle,et al.  Transformations of CCP programs , 2001, TOPL.

[29]  U. Wagener,et al.  Maintaining a Competitive Edge , 1993 .

[30]  Manuel V. Hermenegildo,et al.  A Documentation Generator for (C)LP Systems , 2000, Computational Logic.