🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.prolog
Article #4140

Re: incrementing values

#4140
From: Saumya K. Debray
Date: Fri, 02 Feb 1990 15:05
22 lines
1311 bytes
In article <34699@iuvax.cs.indiana.edu>, jwmills@iuvax.cs.indiana.edu
(Jonathan Mills) writes:

> | 	increment(Variable) :-
> | 		retract(value(Variable, OldValue)),
> | 		NewValue is OldValue + 1,
> | 		assert(value(Variable, NewValue)).
> 
> Retract/modify/assert sequences such as this can be optimized to
> destructive assignment.  A clever implementation can turn the whole
> clause into an indexed increment in 68K machine language.

At rather high expense, I would think.  You have to ensure, for example,
that no other predicate can have its hands on value/2 when increment/1
is invoked -- the analysis looks hairy.

Somehow "X1 is X+1" seems so much simpler!
-- 
Saumya Debray		CS Department, University of Arizona, Tucson

     internet:   debray@cs.arizona.edu
     uucp:       uunet!arizona!debray
Technical Details
Message-ID: <17483@megaron.cs.arizona.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!ames!ig!arizona!debray
References: <17467@megaron.cs.arizona.edu> <31462@shemp.CS.UCLA.EDU> <34699@iuvax.cs.indiana.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!ames!ig!arizona!debray
From: debray@cs.arizona.edu (Saumya K. Debray)
Newsgroups: comp.lang.prolog
Subject: Re: incrementing values
Keywords: optimization, mangle
Message-ID: <17483@megaron.cs.arizona.edu>
Date: 2 Feb 90 15:05:23 GMT
References: <17467@megaron.cs.arizona.edu> <31462@shemp.CS.UCLA.EDU> <34699@iuvax.cs.indiana.edu>
Organization: U of Arizona CS Dept, Tucson
Lines: 22