Coding guidelines for Prolog

@article{Covington2011CodingGF,
  title={Coding guidelines for Prolog},
  author={Michael A. Covington and Roberto Bagnara and Richard A. O'Keefe and Jan Wielemaker and Simon Price},
  journal={Theory and Practice of Logic Programming},
  year={2011},
  volume={12},
  pages={889 - 927}
}
Abstract Coding standards and good practices are fundamental to a disciplined approach to software projects irrespective of programing languages being employed. Prolog programing can benefit from such an approach, perhaps more than programing in other languages. Despite this, no widely accepted standards and practices seem to have emerged till now. The present paper is a first step toward filling this void: It provides immediate guidelines for code layout, naming conventions, documentation… 
Prolog Coding Guidelines: Status and Tool Support
TLDR
A linter was implemented for Prolog and applied to several packages to get a hold on the current state of coding guidelines in the community and discuss to what extent they can be automatically verified.
50 Years of Prolog and Beyond
TLDR
A SWOT analysis is performed in order to better identify the potential of Prolog, and propose future directions along which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
Fifty Years of Prolog and Beyond
TLDR
A SWOT analysis is performed in order to better identify the potential of Prolog and propose future directions along with which Prolog might continue to add useful features, interfaces, libraries, and tools, while at the same time improving compatibility between implementations.
Theoretical foundations of the organization of branches and repetitions in programs in the logic programming language Prolog
  • D. Zdor
  • Computer Science
    Advanced Engineering Research
  • 2021
TLDR
The objectives of the study are to identify the most effective ways to solve problems using branching and repetition by means of the logic programming language Prolog, as well as to demonstrate the results obtained by examples of computational problems.
plspec - A Specification Language for Prolog Data
TLDR
Prolog developers should implement their own runtime type checking system to identify the types or data structures anticipated by predicates in the source code.
Higher-order frameworks for profiling and matching heterogeneous data
TLDR
This Thesis introduces the SubSift submission sifting framework for developing webbased research intelligence applications that profile and match heterogeneous textual content from web pages and documents and proposes a theoretical framework for querying structured data.

References

SHOWING 1-10 OF 40 REFERENCES
Elements of Programming Style
TLDR
These notes provide guidelines for internal program documentation and style for student programmers, geared mainly for a block structured language such as Pascal or C, most of the points discussed are applicable to any programming language.
A Documentation Generator for (C)LP Systems
We describe lpdoc, a tool which generates documentation manuals automatically from one or more logic program source files, written in Ciao, ISO-Prolog, and other (C)LP languages. It is particularly
Ada 95, Quality and Style: Guidelines for Professional Programmers
TLDR
The style guide is divided into chapters that map to the major decisions a programmer addresses when creating high-quality, reliable, reusable, and portable Ada software.
The Craft of Prolog
TLDR
The emphasis in "The Craft of Prolog" is on using Prolog effectively, and presents a loose collection of topics that build on and elaborate concepts learning in a first course.
The Practice of Programming
Logical Loops
We present a concrete proposal for enhancing Prolog and Prolog based Constraint Logic Programming languages with a new language construct, the logical loop. This is a shorthand notation for the most
Type classes in Mercury
TLDR
This paper explains how Mercury's type system is extended to include support for type classes, and shows that type classes integrate very nicely with Mercury's mode, determinism and uniqueness systems.
Typing constraint logic programs
TLDR
A prescriptive type system with parametric polymorphism and subtyping for constraint logic programs and modules, while maintaining the capabilities of performing the usual coercions between constraint domains, and of typing meta-programming predicates, thanks to the exibility of subtyped.
Prolog Programming in Depth
TLDR
Prolog as its own Metalanguage, Artificial Intelligence and the Search for Solutions, and Natural Language Processing.
Logtalk-Design of an Object-Oriented Logic Programming Language
TLDR
Logtalk is designed as an extension to the Prolog logic programming language providing encapsulation features based on objectoriented concepts, including support for both prototypes and classes in the same application, integration of event-driven programming with objectoriented programming, and category-based code reusing.
...
...