Coding Guidelines for Prolog
Michael A. Covington (Institute for Artificial Intelligence, The, University of Georgia, Athens, Georgia, U.S.A.), Roberto Bagnara (Department, of Mathematics, University of Parma, and BUGSENG srl, Italy), Richard A., O'Keefe (Department of Computer Science, University of Otago

TL;DR
This paper introduces a set of coding guidelines for Prolog, covering code layout, naming, documentation, and development practices, aiming to standardize and improve Prolog programming quality.
Contribution
It provides the first comprehensive set of coding standards and practical considerations specifically tailored for Prolog programming, including rationale and decision factors.
Findings
Guidelines improve code readability and maintainability.
Practical examples illustrate pros and cons of different practices.
Discussion of project-specific factors aids standard selection.
Abstract
Coding standards and good practices are fundamental to a disciplined approach to software projects, whatever programming languages they employ. Prolog programming can benefit from such an approach, perhaps more than programming in other languages. Despite this, no widely accepted standards and practices seem to have emerged up to now. The present paper is a first step towards filling this void: it provides immediate guidelines for code layout, naming conventions, documentation, proper use of Prolog features, program development, debugging and testing. Presented with each guideline is its rationale and, where sensible options exist, illustrations of the relative pros and cons for each alternative. A coding standard should always be selected on a per-project basis, based on a host of issues pertinent to any given programming project; for this reason the paper goes beyond the mere…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Software Engineering Research · Software Testing and Debugging Techniques
