🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.prolog
Article #3994

Re: Committed Choice

#3994
From: Inst.f.Prakt.Info 1802
Date: Thu, 06 Apr 1989 03:22
31 lines
2158 bytes
In article <751@gould.doc.ic.ac.uk> cdsm@doc.ic.ac.uk (Chris Moss) writes:
[...]
>so they can be represented by parameterless procedures (or procedures that
>take only input bindings). Thus they do not produce garbage on the stack
                                      ^^^^^^^^^^^^^^^^^^^^^^
>if the top level is a tail recursive procedure.
>Is there any way such a program can run out of memory?

It just depends what You mean by garbage. Try the following little program
which implements the equivalent of LISP's "blam"-lists:

blam(0,[]).
blam(N,[L|L]) :- N > 0, M is N - 1, blam(M,L).
 
..., blam(32,L), assert(little_fact(L)),...

Even if this would be successfully executed - is there any Prolog which
can do this? Quite shure not (Might be - that some LISP-based implementation 
take this, but this is only a very vage speculation) 
However You'll also have problems when just trying to copy such a blam list.

Now this was the worst case which might occur: You had a term represented
by N lists which implements a term consisting of 2^N - 1 lists. In practical 
programs You`ll probably get only some growth nearer to k*N when You use
shared variables heaviliy. Most probably when transforming graphs. 

So my question is just. Do You or anyone else have applications using shared
variables <which are later on bound to some structures> ? :-)
 
Ulrich Neumerkel  (ulrich@vip.UUCP  UUCP: ...!mcvax!tuvie!vip!ulrich) 
<<please don't type "r", but mail to the adress above>>
Technical Details
Message-ID: <674@tuvie>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!um-math!sharkey!shadooby!accuvax.nwu.edu!tank!ncar!ames!hc!lll-winken!uunet!mcvax!tuvie!brock
References: <11500012@hpldola.HP.COM> <733@gould.doc.ic.ac.uk> <18798@adm.BRL.MIL> <192@aucsv.UUCP> <751@gould.doc.ic.ac.uk>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!um-math!sharkey!shadooby!accuvax.nwu.edu!tank!ncar!ames!hc!lll-winken!uunet!mcvax!tuvie!brock
From: brock@tuvie (Inst.f.Prakt.Info 1802)
Newsgroups: comp.lang.prolog
Subject: Re: Committed Choice
Summary: shared structures might produce garbage
Keywords: cut if-then-else Garbage on the stacks
Message-ID: <674@tuvie>
Date: 6 Apr 89 03:22:09 GMT
References: <11500012@hpldola.HP.COM> <733@gould.doc.ic.ac.uk> <18798@adm.BRL.MIL> <192@aucsv.UUCP> <751@gould.doc.ic.ac.uk>
Reply-To: ulrich@vip.UUCP (Ulrich Neumerkel)
Organization: Technical University of Vienna, EDP-Center
Lines: 31