Enhancing Prolog to support Prolog programming environments

  • A. Martelli
  • G. F. Rossi
5. Implementation Of Programming Languages
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)


This paper describes the basic ideas we followed in the development of PROSE, a Prolog programming support environment we are implementing at our Department. We claim that standard Prolog must be adequately enhanced to be well suited to support the construction of an efficient programming environment. For this purpose, some new facilities are supplied by our Prolog (called Env_Prolog) which are mainly intended to allow the language:
  • —to handle programs as data and to partition the program database into disjoint sets of clauses;

  • —to support "editing" of clauses in the program database and the controlled execution of Prolog programs. Env_Prolog has been implemented by developing a new interpreter written in the C language. The paper will concentrate mainly on the interpreter and the support it offers to other tools of the environment.


Internal Representation Unification Algorithm User Program Program Database Prolog Program 


  1. [1]
    J.Bendl, P.Koves, P.Szeredi: The MProlog System; in Proc. of the Logic Programming Workshop, (S-A. Tarlund ed.) Hungary, July 1980.Google Scholar
  2. [2]
    K.A. Bowen and R.A. Kowalski: Amalgamating language and meta-language in logic programming; in Logic Programmino, (K.L. Clark and S-A. Tarlund, Eds), Academic Press, 1982, 153–172.Google Scholar
  3. [3]
    A.Colmerauer: Prolog and Infinite Trees; in Logic Programming, (K.L.Clark and S-A. Tarlund, Eds), Academic Press, 1982.Google Scholar
  4. [4]
    W.F. Clocksin and C.S. Mellish: Programming in Prolog, Springer Verlag, Berlin 1981.Google Scholar
  5. [5]
    N.Francez et al.: An Environment for Logic Programming; in Proc. of the ACM Sigplan Symp. on Languages Issues in Programming Environments; Seattle, June 1985, 179–190.Google Scholar
  6. [6]
    A.Feuer: Building Libraries in Prolog; AAAI-83, August 1983, pp. 550–552.Google Scholar
  7. [7]
    Kluzniak, Swpakozicw: Prolog for programmers; Academic Press, 1985.Google Scholar
  8. [8]
    A.Martelli and U.Montanari: An Efficient Unification Algorithm; ACM TOPLAS, 4,2, April 1982.Google Scholar
  9. [9]
    A.Martelli and G.F.Rossi: Efficient Unification with Infinite Terms in Logic Programming; in Proc. of FGCS84; International Conf. on Fifth Generation Computer Systems, Japan, 1984.Google Scholar
  10. [10]
    A.Martelli and G.F.Rossi: Toward a Prolog Programming Support Environment (in italian); Proc. of the First National Conference on Logic Programming, Genova, March 1986.Google Scholar
  11. [11]
    A.Martelli and G.F.Rossi: On the Semantics of Logic Programming Languages; in Proc of the 3 rd Conf. on Logic Programming, London, July 1981.Google Scholar
  12. [12]
    C.S.Mellish: An Alternative to Structure Sharing in the Implementation of a Prolog Interpreter; in Logic Programming, (K.L.Clark and S-A. Tarlund, Eds), Academic Press, 1982, 99–106.Google Scholar
  13. [13]
    A.Martelli and G.F.Rossi: PROSE: a Prolog Support Environment (in italian); Proc. of the Second National Conference on Logic Programming, Turin, May 1987.Google Scholar
  14. [14]
    L.Console and G.F.Rossi: FROG: a Prolog-based system for Prolog-based knowledge representation; in Artificial Intelligence and Information-Control Systems of Robots-87, (I.Plander, ed.), North-Holland, 1987,179–183.Google Scholar
  15. [15]
    C-Prolog User's Manual-Version 1.5; edited by F.Pereira, Technical Rept. 82/11, Edinburgh Computer Aided Architectural Design, Univ. of Edinburgh, February 1984.Google Scholar
  16. [16]
    A.Martelli and G.F.Rossi: An implementation of unification with infinite terms and its application to logic programming languages; Technical Rept., Dipartimento di Informatica, Univ. di Torino, 1987.Google Scholar
  17. [17]
    F.Fages: Formes canoniques dans les algebres booleennes et applications a la demonstration automatique; These de 3eme Cycle, Universite Paris VI, June 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • A. Martelli
    • 1
  • G. F. Rossi
    • 1
  1. 1.Dipartimento di InformaticaUniversità di TorinoTorinoItaly

Personalised recommendations