AN OPERATIONAL FORMAL DEFINITION OF PROLOG - A SPECIFICATION METHOD AND ITS APPLICATION

被引:4
|
作者
DERANSART, P
FERRAND, G
机构
[1] INRIA,PROJET CHLOE,F-78153 LE CHESNAY,FRANCE
[2] UNIV ORLEANS,LIFO,F-45067 ORLEANS 2,FRANCE
关键词
LOGIC PROGRAMMING; FORMAL SPECIFICATION; PROOF METHOD; OPERATIONAL SEMANTICS; PROTOTYPING; VALIDATION; PROLOG; STANDARD;
D O I
10.1007/BF03037477
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
We present in this paper a logic programming specification language and its application to the formal specification of PROLOG dialects (Marseille-Edinburgh like dialect or parallel logic programs). In particular it is used in the standardization work of PROLOG. The specification language is based on normal clauses (definite clauses with possibly negative literals in the body) whose semantics is the set of the (generalized) proof-trees. We restrict the specification language to stratified programs and ground proof-trees such that its semantics fits with most of the usual known semantics in logic programming. The specification language is fully declarative in the sense that it is written in a pure logical style. It is relatively easy to deduce an executable specification from a specification written in such a language. Part of the specification are the associated comments and a methodology has been developed to write these. Without the comments a formal specification cannot be understood; they are partly formal and serve only to help to understand the axioms. They are a natural language form of formal statements relative to the correctness and the completeness of the axioms with regards to some intended meaning. We show in this paper how this specification language can be used to specify dialects of PROLOG. The presented example is just a sample of PROLOG but fully developed here. The specification language has already been used for real dialects as PARLOG and standard PROLOG. This specification method is also interesting because it illustrates the power of logic programming to make specifications. It seems to us that logic programming is generally considered as ''impure'' executable specification. Our purpose is to show that logic programming may also be used as a perhaps low level but full specification language.
引用
下载
收藏
页码:121 / 171
页数:51
相关论文
共 50 条