Springer Nature is making SARS-CoV-2 and COVID-19 research free. View research | View latest news | Sign up for updates

Lislog-C: Une première étape vers I’expression généralisée de contraintes en programmation en logique

Lislog-C: A first step to generalized expression of constraints in logic programming

  • 14 Accesses

Résumé

En Prolog standard, la réalisation d’un programme de bonne qualité opérationnelle suppose une formulation souvent très éloignée de la spécification initiale du problème. En Lislog-C (LISp + proLOG + Contraintes), la déclaration de contraintes permet généralement d’assurer la qualité opérationnelle de la programmation simplement calquée sur la spécification. Sur le plan externe, le nouveau concept de base de Lislog-C est le concept de contraintes; il s’intègre très naturellement au formalisme des clauses de Horn. Le point fort de la notion de contraintes est que, tout en améliorant la puissance et la souplesse du langage, elle assure un comportement optimisé des programmes à l’exécution. Sur le plan interne, l’approche Lislog-C assure, d’une part, la richesse et la fiabilité de l’interface Lisp/Prolog et, d’autre part, la réalisation de mécanismes de contrôle transparents pour l’utilisateur. De nombreux types de problèmes font naturellement appel au concept de contraintes: caracterisation d’ensembles, description de types, domaines, gestion de ressources, synchronisation par événements, etc. Les quelques exemples traités illustrent la facilité de la programmation basée sur les contraintes.

Abstract

In Prolog, creating a program of good operational quality requires formulation which is often very far from the problem's initial specification. In Lislog-C (Lisp + prolog + Constraints), the constraint declaration usually allows us to be sure of the operational quality of programming simply modelled on the specification. Externally, constraint is the new basic concept of Lislog-C; it is integrated very naturally into the formalism of the Horn clauses. The strong point of constraints is that they ensure that the behaviour of programs is optimized when they are run, whilst improving the power and flexibility of the language. Internally, the Lislog-C approach ensures on the one hand the richness and reliability of the Lisp/Prolog interface and on the other the accomplishment of control mechanisms which are transparent to the user. Many problems are naturally concerned by the concept of constraints: sets characterization, description of types, domains, resource allocation and synchronization by events… The few examples which are discussed demonstrate the ease and efficiency of constraint-based programming.

This is a preview of subscription content, log in to check access.

Bibliographie

  1. [1]

    Bourgault (S.), Dincbas (M.), Le Pape (J.-P.). Lislog: programmation en Prolog en environnement Lisp.Congrès AFCET-RFIA, Paris (Jan. 1984),2, pp. 275–289.

  2. [2]

    Bruynooghe (M.), Pereira (L.-M.). Deduction revision by intelligent backtracking.Univ. Nova de Lisboa (juil. 1983).

  3. [3]

    Clark (K.), McCabe (F.).Ic-Prolog language features.Proc. Logic Programming Workshop, Debrecen (juil. 1980), pp. 45–52.

  4. [4]

    Colmerauer (A.), Kanoui (H.), Van Caneghem (M.). Prolog, bases theoriques et développements actuels.TSl (1983),2, no 4.

  5. [5]

    Colmerauer (A.). Note sur Prolog-III.Actes Sémin. Program, en Logique, Trégastel (mai 1986), pp. 159–173.

  6. [6]

    Criss. Prolog-Criss: version 4.1.Manuel de référence CRISS, Grenoble (1984).

  7. [7]

    DeGroot (D.), Lindstrom (G.). Logic programming, functions, relations and equations.Prentice-Hall (1986).

  8. [8]

    Deransart (P.), Ferrand (G.). Programmation en logique: méthodologie et enseignement.Actes Semin. Program, en Logique, Tré gastel (mai 1986), pp. 75–89.

  9. [9]

    Dincbas (M.), Le Pape (J.-P.). Metacontrol of logic programs in Metalog.Proc. Int. Conf. FGCS, Tokyo (nov. 1984), pp. 361–370.

  10. [10]

    Dincbas (M.), Van Hentenryck (P.). Algorithmes d’unification étendue pour l’intégration des langages fonctionnels et logiques.Actes Semin. Program, en Logique, Trégastel (mai 1986), pp. 203–232.

  11. [11]

    Dincbas (M.), Simonis (H.), Van Hentenrick (P.). Extending equation solving and constraint handling in logic programming.Colloquium on Resolution of Equations in Algebraic Structures, Texas (mai 1987).

  12. [12]

    Gallaire (H.). Contrôle de la déduction et retour arrière intelligent en résolution de problèmes.Congrès AFCET-Informatique, Nancy (nov. 1980), pp. 4–14.

  13. [13]

    Gallaire (H.). Logic programming: further developments.Proc. IEEE Symp. on Logic Programming, Boston (juil. 1985), pp. 88–96.

  14. [14]

    Gloess (P.-Y.). Oblogis: une implantation par objets et orientée objets de la logique de Prolog.Actes Sémin. Program, en Logique, Trégastel (mai 1985), pp. 181–192.

  15. [15]

    Greussay (P.). Lovlisp: une extension de Vlisp vers Prolog.Actes Sémin. Program, en Logique, Perros-Guirec (1983), pp. 111– 121.

  16. [16]

    Jaffar (J.), Lassez (J.-L.). Constraint logic programming.Proc. of the 14th ACM POPL Symp., Munich (Jan. 1987).

  17. [17]

    Jaffar (J.), Lassez (J.-L.). From unification to constraints.Actes Sémin. Program, en Logique, Trégastel (1988), pp. 543–560.

  18. [18]

    Lebaube (P.), Lepape (B.). Prolog et les techniques de contrôle.Actes Sémin. Program, en Logique, Trégastel (mai 1986), pp. 51–74.

  19. [19]

    Malachi (Y.), Manna (Z.), Waldinger (R.). Tablog: a new approach to logic programming, dans [8].

  20. [20]

    Naish (L.). An introduction to Mu-Prolog. Tech. Report 82/2, Dept of Computer Science.Univ. of Melbourne (1982).

  21. [21]

    Naish (L.). Prolog control rules. Tech. Report 84/13, Dept of Computer Science.Univ. of Melbourne (1984).

  22. [22]

    Porto (A.). Epilog: a language for extended programming in logic.Proc. of the First Int. Logic Program. Conf., Marseille (1982), pp. 31–37.

  23. [23]

    Robinson (J.-A.), Sibert (E.-E.). Loglisp: an alternative to Prolog.Machine Intelligence (1982),10, pp. 399–419.

  24. [24]

    Sato (M.), Sakurai (T.). Qute: a functional language based on unification, dans [8].

  25. [25]

    Subrahmanyam (P.-A.), You (J.-H.). Funlog: a computational model integrating logic programming and functional programming, dans [8].

Download references

Author information

Correspondence to Serge Bourgault or Jean-Pierre Le Pape or Daniel Ranson.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Bourgault, S., Le Pape, J. & Ranson, D. Lislog-C: Une première étape vers I’expression généralisée de contraintes en programmation en logique. Ann. Télécommun. 44, 218–228 (1989). https://doi.org/10.1007/BF02995668

Download citation

Mots clés

  • Langage programmation
  • Prolog
  • Lisp
  • Programmation logique
  • Contrainte

Key words

  • Programming language
  • Prolog language
  • Lisp language
  • Logical programming
  • Constraint