Extending functional programming towards relations

  • Remi Legrand
4. Language Concepts
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


This article describes the relational programming paradigm. Because a function is a particular case of relation, we can consider the computation of points-to-set processes (relations) instead of points-to-point processes (functions). Relations are useful for parallel, non-deterministic or multi-valued algorithms. The first section presents the main features of the proposed language and it is shown how relations make programs more flexible and natural. Then, we present an efficient implementation of the language on a classical architecture.


Union Tree Reduction Rule Functional Programming Functional Language Primitive Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [Bellot 86a]
    P. Bellot, Graal: a functional programming system with uncurryfied combinators and its reduction machine, European Symposium on Programming, (ESOP 86), LNCS 213, Saarbrücken, mars 1986Google Scholar
  2. [Bellot 86b]
    P. Bellot, Sur les sentiers du Graal, étude, conception et réalisation d'un langage de programmation sans variable, Thèse d'état, Rapport LITP 86-62, Paris, octobre 1986Google Scholar
  3. [Bellot 87]
    P. Bellot, V.Jay, A theory for Natural Modelisation and Implementation of Functions with Variable Arity, to appear in LNCS, Portland, septembre 1987Google Scholar
  4. [Chailloux 84]
    J. Chailloux, M. Devin, J.M. Hullot, LE_LISP, a portable and efficient LISP System, Conference Record of the 1984 ACM Symposium on LISP and functional Programming, p113–123, Austin, Texas, 1984Google Scholar
  5. [Cutland 80]
    N.J. Cutland, An introduction to recursive function theory.Google Scholar
  6. [Durieux 81]
    J.L Durieux, Sémantique des liaisons nom-valeur: application à l'implémentation des lambda-langages, Thèse d'état, Université Paul Sabatier, Toulouse, 1981Google Scholar
  7. [Eilenberg 70]
    S. Eilenberg, C.C. Elgot, Recursiveness, Academic Press, New york, 1970Google Scholar
  8. [Korf 85]
    R.E. Korf, Depth-First Iterative-Deepening: An Optimal Admissible Tree Search, Artificial Intelligence, Vol 27, p 97–109, 1985MathSciNetGoogle Scholar
  9. [Legrand 87a]
    R. Legrand, Le calcul relationnel au service de l'implantation d'un langage de programmation en logique, Séminaire de programmation en logique, CNET Lannion, Ed M.Dincbas, p 333–346, Trégastel, 1987Google Scholar
  10. [Legrand 87b]
    R. Legrand, Calcul Relationnel et Programmation en Logique, Thèse de l'Université Paris VI, 1987Google Scholar
  11. [Turner 79]
    D.A. Turner, Another Implementation Technic for applicative Language, Software Practice and Experience, Vol. 9, 1979Google Scholar
  12. [Nguyen 85]
    T.T. Nguyen, Algebraic theory of predicate transformers for relational programming, Research Report No RR 85-12, Louvain, 1985Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Remi Legrand
    • 1
  1. 1.LITP-CNRS UA 248, Université P. et M. Curie - Paris 6Paris Cedex 5France

Personalised recommendations