Improving Prolog Programs: Refactoring for Prolog
<|reference_start|>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.   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. Also the discrepancy between intended and operational semantics in Prolog is 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. Our main conclusion is that refactoring is not only a viable technique in Prolog but also a rather desirable one.<|reference_end|>
@article{schrijvers2004improving,
    title={Improving Prolog Programs: Refactoring for Prolog},
    author={Tom Schrijvers, Alexander Serebrenik},
    journal={arXiv preprint arXiv:cs/0406026},
    year={2004},
    archivePrefix={arXiv},
    eprint={cs/0406026},
    primaryClass={cs.SE cs.PL}
}