[comp.lang.prolog] Implementation of Prolog-Like Interpreters -> HELP ?

a_omari@fennel.cc.uwa.oz.au (10/18/90)

Help with the implementation of Prolog Interpreters :-

Are there any decent references to the implementation (in C) of Prolog-like
interpreters.  I need general information about the workings of Prolog as 
well as details about data structures etc. required to implement a Prolog-like
interpreter for Expert Systems Applications.

Thanks in advance

Arshad Omari
School of Architecture
The University of Western Australia
Nedlands, W.A. 6009, Australia
(a_omari@fennel.cc.uwa.oz.au)

yonezawa@cs.uiuc.edu (Noritake Yonezawa) (10/18/90)

In article <1990Oct18.103140.2457@fennel.cc.uwa.oz.au> a_omari@fennel.cc.uwa.oz.au writes:

>Help with the implementation of Prolog Interpreters :-
> 
>Are there any decent references to the implementation (in C) of Prolog-like
>interpreters.  I need general information about the workings of Prolog as 
>well as details about data structures etc. required to implement a Prolog-like
>interpreter for Expert Systems Applications.

I recommend the following book:

     Prolog for programmers / Feliks Kluzniak, Stanislaw Szpakowicz,
     with a contribution by Janusz S. Bien. Repr. with corrections. London ; 
     Orlando : Academic Press, 1987, c1985. 
     xii, 308 p. : ill. ; 24 cm. (A.P.I.C. studies in data processing. v. 24) 
     Accompanied by 1 program file, "Prolog for programmers: toy Prolog,"
     (London : Academic Press, c1987) on computer disk in pocket. 
     ISBN  0124165206 
       1. Prolog (Computer program language)  I. Szpakowicz, Stanislaw. 
       II. Bien, Janusz St.  III. Title.   IV. Series.   V. Series:  
       A.P.I.C. studies in data processing. no. 24. 

This includes a complete program of Prolog interpreter written in Pascal.
It would be helpful for you to implement a Prolog-like interpreter in C.

--
Noritake Yonezawa [yonezawa@cs.uiuc.edu]
Department of Computer Science
University of Illinois at Urbana-Champaign

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/18/90)

In article <YONEZAWA.90Oct17230036@m.m.cs.uiuc.edu>, yonezawa@cs.uiuc.edu (Noritake Yonezawa) writes:
> In article <1990Oct18.103140.2457@fennel.cc.uwa.oz.au> a_omari@fennel.cc.uwa.oz.au writes:
> >Are there any decent references to the implementation (in C) of Prolog-like
> >interpreters.

> I recommend the following book:
>      Prolog for programmers / Feliks Kluzniak, Stanislaw Szpakowicz,

That book uses Pascal, which makes some things (like input/output) hard.

Another book is the "Programming in Logic" book by David Scott Warren
and David Maier.

There's a book came out this year that many university bookshops are likely
to have; I can't remember the author or title, but it talks about
programming languages, and presents interpreters written in C for
something resembling Lisp, something resembling Prolog, something
resembling SmallTalk.  I haven't looked at it thoroughly, but that
may be the closest to something you can type in and use.
-- 
Fear most of all to be in error.	-- Kierkegaard, quoting Socrates.

daniel@cs.UAlberta.CA (Daniel Lanovaz) (10/19/90)

In article <4009@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
>There's a book came out this year that many university bookshops are likely
>to have; I can't remember the author or title, but it talks about
>programming languages, and presents interpreters written in C for
>something resembling Lisp, something resembling Prolog, something
>resembling SmallTalk.  I haven't looked at it thoroughly, but that
-----------------^

I assume you mean Smalltalk. :-)

mwette@mr-ed.jpl.nasa.gov (Matt Wette) (10/20/90)

In article <1990Oct19.152912.13154@cs.UAlberta.CA>, daniel@cs.UAlberta.CA (Daniel Lanovaz) writes:
|> In article <4009@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:

|> >There's a book came out this year that many university bookshops are likely
|> >to have; I can't remember the author or title, but it talks about
|> >programming languages, and presents interpreters written in C for
|> >something resembling Lisp, something resembling Prolog, something
|> >resembling SmallTalk.  I haven't looked at it thoroughly, but that
|> -----------------^
|> 
|> I assume you mean Smalltalk. :-)

Try "Programming Languages: An Interpreter-based Approach," by Sam Kamin.

-- 
 _________________________________________________________________
 Matthew R. Wette           | Jet Propulsion Laboratory, 198-326
 mwette@csi.jpl.nasa.gov    | 4800 Oak Grove Dr, Pasadena,CA 91109
 -----------------------------------------------------------------

yonezawa@cs.uiuc.edu (Noritake Yonezawa) (10/21/90)

In article <1990Oct19.181132.24143@jato.jpl.nasa.gov> mwette@mr-ed.jpl.nasa.gov (Matt Wette) writes:

>In article <1990Oct19.152912.13154@cs.UAlberta.CA>, daniel@cs.UAlberta.CA (Daniel Lanovaz) writes:
>|> In article <4009@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
> 
>|> >There's a book came out this year that many university bookshops are likely
>|> >to have; I can't remember the author or title, but it talks about
>|> >programming languages, and presents interpreters written in C for
>|> >something resembling Lisp, something resembling Prolog, something
>|> >resembling SmallTalk.  I haven't looked at it thoroughly, but that
>|> -----------------^
>|> 
>|> I assume you mean Smalltalk. :-)
> 
>Try "Programming Languages: An Interpreter-based Approach," by Sam Kamin.

More detailed information:

     Kamin, Samuel N. 
     Programming languages : an interpreter-based approach 
     / Samuel N. Kamin. Reading, Mass. : Addison-Wesley Pub. Co., c1990. 
     ISBN  0201068249 

The interpreters are written in Pascal, not in C.

--
Noritake Yonezawa [yonezawa@cs.uiuc.edu]
Department of Computer Science
University of Illinois at Urbana-Champaign

ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) (10/22/90)

In article <1990Oct19.152912.13154@cs.UAlberta.CA>, daniel@cs.UAlberta.CA (Daniel Lanovaz) writes:
> In article <4009@goanna.cs.rmit.oz.au> ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes:
> >resembling SmallTalk.  I haven't looked at it thoroughly, but that
> -----------------^
> I assume you mean Smalltalk. :-)

Yes.  Sorry about the mistake.  It's hard to remember that the
capitalisation convention used in Smalltalk-80 programs doesn't
apply to the name of the language itself.  Ick.
-- 
Fear most of all to be in error.	-- Kierkegaard, quoting Socrates.

orjan@marimba.chorus.fr (Orjan Petersson) (10/24/90)

>>>>> On 18 Oct 90 15:40:07 GMT, ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) said:
> >Are there any decent references to the implementation (in C) of Prolog-like
> >interpreters.
[...]
ok> There's a book came out this year that many university bookshops are likely
ok> to have; I can't remember the author or title, but it talks about
ok> programming languages, and presents interpreters written in C for
ok> something resembling Lisp, something resembling Prolog, something
ok> resembling SmallTalk.  I haven't looked at it thoroughly, but that
ok> may be the closest to something you can type in and use.

%A Samuel N. Kamin
%T Programming Languages; An Interpreter-Based Approach
%I Addison-Wesley
%C Reading, MA
%D 1990
%P 640

It is a presentation of programming languages like lisp, scheme, apl, prolog
etc. Each language is presented together with an interpreter for a subset of
the language. The interpreters are written in pascal; source is ftp-able
--
  Orjan Petersson                              | Mail: orjan@chorus.fr
  Chorus Systemes                              | Phone: +33-1-30648200
  6, avenue Gustave-Eiffel                     | Fax:   +33-1-30570066
  F-78182 St-Quentin-en-Yvelines Cedex, France