A Step Towards a Methodology for Mercury Program Construction: A Declarative Semantics for Mercury

  • Authors:
  • Dante Baldan;Baudouin Le Charlier;Christophe Leclère;Isabelle Pollet

  • Affiliations:
  • -;-;-;-

  • Venue:
  • LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Declarative methodologies for logic program construction have been proposed for Prolog. They roughly consist of 1) building a purely logical version of the program based on a clear declarative semantics and 2) performing a number of checks about modes, types, termination and multiplicity. We plan to define a similar methodology for Mercury. This choice is motivated by the fact that type, mode, and multiplicity must be explicitly specified in Mercury, allowing the compiler to perform the second step above. In order to propose a methodology to perform the first step, we need a declarative semantics for Mercury, which has not yet been explicitly defined. The goal of the paper is to propose such a semantics pursuing simplicity and naturalness. We chose to define the semantics with respect to a unique interpretation domain, called the "universe", which is a kind of higher-order version of the Herbrand universe. Based on this simple domain, the denotation of terms and goals is naturally defined as well as the models of programs. Although the declarative semantics is primarily introduced to improve "manual" program construction by programmers, it could be used in a synthesis context.