[comp.lang.prolog] NU Prolog and Stony Brook Prolog

yonkman@hawk.css.gov (Tom Yonkman) (06/14/91)

I am seeking information on how to obtain either of these prologs.

In actuality I am looking for a good public domain prolog.  Any pointer is
greatly appreciated.

Thanks in advance,

Tom

pierced@buster.cps.msu.edu 4082 Re: Specifying types lakshman@m.cs.uiuc.edu Reply-To: pierced@buster.cps.msu.edu (Douglas K Pierce) (06/18/91)

Stony Brook Prolog is available by anonymous ftp from:

	cs.arizona.edu	
	(not sure which directory, but called SBP or SBProlog)

There is even a version of SBProlog that has been ported to 
the Amiga, at this same site.  Unfortunately, I have had less
luck porting this to MS-DOS.  Using Borland C++, I tried to compile
the main module.  Received a message that the compiler table limit
(symbol table?) was exceeded (fatal error).

I would like to know if anyone has succeeded in porting a PD prolog
(especially SBProlog) to a DOS machine.  This seems like quite a task,
especially if you have to deal with Unix code that goes 'way beyond
DOS segment limits and has to be converted severely.

Finally, if you just want to run Prolog (as opposed to rolling your own),
there is a fine PD version of Prolog-2 from Expert Systems Limited
in England.  There is an ftp site at Univ. of GA that I cannot find a
reference for right now (something.uga.edu) -- sorry.

Doug Pierce
MSU CPS Dept.

dds@theseas.ntua.gr (Diomidis Spinellis) (06/20/91)

In article <1991Jun17.201214.19756@msuinfo.cl.msu.edu>
pierced@buster.cps.msu.edu (Douglas K Pierce) writes:

>I would like to know if anyone has succeeded in porting a PD prolog
>(especially SBProlog) to a DOS machine.  This seems like quite a task,
>especially if you have to deal with Unix code that goes 'way beyond
>DOS segment limits and has to be converted severely.

I have recently ported SBProlog to MS-DOS using the MS-DOS version of
the GNU C compiler available at various FTP sites.  The changes I made
were minimal, I rolled my own frexp(3m) function, provided a stub for
system(3) and a minimal implementation for syscall(2) that only implements
access(2)  (It is used by the compiler).  I also changed some filenames
to get over the 8 character limit of MS-DOS and hacked the place where
the files are opened to reflect those changes (The filenames were hard
wired into the compiler byte code executables and I could not bootstrap
the compiler).  The intepreter needed a very small change in the main loop
which seemed like an error to me.  Needless to say that the whole solution
only works for 386 and upwards compatible machines.

The simulator can run the compiler without a problem.  The benchmarks 
work, but due to a bug in the time() function the time was not
measured correctly.  The sytem has crashed some times with a segmentation violation while garbage collecting.  I `fixed' that by pumping up the
memory limit.  Other than that the system is quite stable.  I have not spent
a lot of time enhancing or fixing the MS-DOS related problems as they are minor
and I am happy to _use_ the system as it is.

Diomidis 
-- 
Diomidis Spinellis                  Internet:                 dds@doc.ic.ac.uk
Department of Computing             UUCP:                    ...!ukc!icdoc!dds
Imperial College, London SW7        #define O(b,f,u,s,c,a)b(){int o=f(); ...