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 条
  • [1] FORMAL SPECIFICATION OF A PROLOG COMPILER
    HANUS, M
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1989, 348 : 273 - 282
  • [2] FORMAL HARDWARE SPECIFICATION AND VERIFICATION USING PROLOG
    BREZOCNIK, Z
    HORVAT, B
    [J]. MICROPROCESSING AND MICROPROGRAMMING, 1989, 27 (1-5): : 163 - 170
  • [3] A FORMAL OPERATIONAL SEMANTICS FOR LANGUAGES OF TYPE PROLOG III
    BORGER, E
    SCHMITT, PH
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1991, 533 : 67 - 79
  • [4] SOFTWARE FORMAL SPECIFICATION BY LOGIC PROGRAMMING - THE EXAMPLE OF STANDARD PROLOG
    EDDBALI, A
    DERANSART, P
    [J]. LECTURE NOTES IN ARTIFICIAL INTELLIGENCE, 1992, 636 : 278 - 287
  • [5] Automatic generation of formal specification from requirements definition
    Jin, LZ
    Zhu, H
    [J]. FIRST IEEE INTERNATIONAL CONFERENCE ON FORMAL ENGINEERING METHODS, PROCEEDINGS, 1997, : 243 - 251
  • [6] Operational ontological approach to formal programming language specification
    I. S. Anureev
    [J]. Programming and Computer Software, 2009, 35 : 35 - 42
  • [7] Operational ontological approach to formal programming language specification
    Anureev, I. S.
    [J]. PROGRAMMING AND COMPUTER SOFTWARE, 2009, 35 (01) : 35 - 42
  • [8] A propagation tracer for GNU-Prolog:: From formal definition to efficient implementation
    Langevine, L
    Ducassé, M
    Deransart, P
    [J]. LOGIC PROGRAMMING, PROCEEDINGS, 2003, 2916 : 269 - 283
  • [9] Formal specification and state space analysis of an operational planning process
    Mitchell B.
    Kristensen L.M.
    Zhang L.
    [J]. Int. J. Softw. Tools Technol. Trans., 2007, 3-4 (255-267): : 255 - 267
  • [10] THE FORMAL SEMANTICS DEFINITION OF A MULTIRATE DSP SPECIFICATION LANGUAGE IN HOL
    ANGELO, C
    CLAESEN, L
    DEMAN, H
    [J]. IFIP TRANSACTIONS A-COMPUTER SCIENCE AND TECHNOLOGY, 1993, 20 : 375 - 394