| | |
Summary: Executing Formal Specifications by Translation
to Higher Order Logic Programming
James H. Andrews
Dept. of Computer Science
University of British Columbia
Vancouver, BC, Canada V6T 1Z4
Abstract. We describe the construction and use of a system for trans
lating higher order logicbased specifications into programs in the higher
order logic programming language Lambda Prolog. The translation im
proves on previous work in the field of executing specifications by allow
ing formulas with quantifiers to be executed, and by permitting users
to pose Prologstyle queries with free variables to be instantiated by the
system. We also discuss various alternative target languages and design
decisions in implementing the translator.
1 Introduction
One of the early goals of formal specification in software engineering
was to provide a formal model against which an implementation of
the software, or a more detailed model, could be checked. This goal
has not been fully realized in practice. But even where no tools exist
to check an implementation against a specification, the process of
|