Adding partial functions to Constraint Logic Programming with sets

被引:4
|
作者
Cristia, Maximiliano [1 ,2 ]
Rossi, Gianfranco [3 ]
Frydman, Claudia [4 ]
机构
[1] CIFASIS, Rosario, Argentina
[2] UNR, Rosario, Argentina
[3] Univ Parma, I-43100 Parma, Italy
[4] Univ Toulon & Var, Aix Marseille Univ, CNRS, ENSAM,LSIS UMR 7296, Toulon, France
关键词
CLP; {log}; set theory; partial functions; LANGUAGE;
D O I
10.1017/S1471068415000290
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Partial functions are common abstractions in formal specification notations such as Z, B and Alloy. Conversely, executable programming languages usually provide little or no support for them. In this paper we propose to add partial functions as a primitive feature to a Constraint Logic Programming (CLP) language, namely {log}. Although partial functions could be programmed on top of {log}, providing them as first-class citizens adds valuable flexibility and generality to the form of set-theoretic formulas that the language can safely deal with. In particular, the paper shows how the {log} constraint solver is naturally extended in order to accommodate for the new primitive constraints dealing with partial functions. Efficiency of the new version is empirically assessed by running a number of non-trivial set-theoretical goals involving partial functions, obtained from specifications written in Z.
引用
收藏
页码:651 / 665
页数:15
相关论文
共 50 条
  • [1] Sets and constraint logic programming
    Dovier, A
    Piazza, C
    Pontelli, E
    Rossi, G
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2000, 22 (05): : 861 - 931
  • [2] Constructive negation and constraint logic programming with sets
    Agostino Dovier
    Enrico Pontelli
    Gianfranco Rossi
    [J]. New Generation Computing, 2001, 19 : 209 - 255
  • [3] Constructive negation and constraint logic programming with sets
    Dovier, A
    Pontelli, E
    Rossi, G
    [J]. NEW GENERATION COMPUTING, 2001, 19 (03) : 209 - 255
  • [4] Integrating Cardinality Constraints into Constraint Logic Programming with Sets
    Cristia, Maximiliano
    Rossi, Gianfranco
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2023, 23 (02) : 468 - 502
  • [5] Logic programming and constraint logic programming
    Cohen, J
    [J]. ACM COMPUTING SURVEYS, 1996, 28 (01) : 257 - 259
  • [6] CONSTRAINT LOGIC PROGRAMMING
    LASSEZ, C
    [J]. BYTE, 1987, 12 (09): : 171 - &
  • [7] CONSTRAINT LOGIC PROGRAMMING
    POUNTAIN, D
    [J]. BYTE, 1995, 20 (02): : 159 - 160
  • [8] Constraint logic programming
    Gavanelli, Marco
    Rossi, Francesca
    [J]. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2010, 6125 : 64 - 86
  • [9] Constraint logic programming
    Wallace, Mark
    [J]. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2002, 2407 : 512 - 532
  • [10] Constraint logic programming
    Wallace, M
    [J]. COMPUTATIONAL LOGIC: LOGIC PROGRAMMING AND BEYOND, PT I: ESSAYS IN HONOUR OF ROBERT A KOWALSKI, 2002, 2407 : 512 - 532