Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14800

Frozen Prolog Terms make copy_term/2 constant (Was: The roots Program Sharing (PS): J Strother Moore II (1973)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Frozen Prolog Terms make copy_term/2 constant (Was: The roots Program Sharing (PS): J Strother Moore II (1973)
Date 2025-08-21 03:29 +0200
Message-ID <1085sot$brmu$1@solani.org> (permalink)
References <107vi9k$7t1e$1@solani.org>

Show all headers | View raw


Hi,

Frozen Prolog terms don’t need to be traversed to know
whether they are ground. They have a GC mask information
that shows that they are program shared (PS) ground Prolog

terms, so that copy can immediately return. One can modify
the testing slightly, going from this here in frozen.pl:

test(N) :- between(1,1000,_), data(N,_), fail.
test(_).

test2(N) :- between(1,1000,_), test(N), fail.
test2(_).

To this here, unfortunately copy_term/2 not available in WebPL:

test(X) :- between(1,1000,_), copy_term(X,_), fail.
test(_).

test2(N) :- data(N,X), between(1,1000,_), test(X), fail.
test2(_).

So basically departing from testing whether a first access
to a program sharing structure is fast, into testing
whether copy_term/2 has some smarts to detect

program sharing structures.

Bye

Mild Shock schrieb:
> Hi,
> 
> J Strother Moore II is the Original Gangster (OG)
> of program sharng. Interestingly structure sharing
> meant always program sharing in the theorem
> 
> proving community back then:
> 
> COMPUTATIONAL LOGIC: STRUCTURE SHARING AND
> PROOF OF PROGRAM PROPERTIES
> J Strother Moore II - 1973
> https://era.ed.ac.uk/bitstream/handle/1842/2245/Moore-Thesis-1973-OCR.pdf
> 
> Only the WAM community managed to intsitutionalize
> the term structure sharng, as a reduced form of
> program sharing, namely goal argument sharing
> 
> not using pairs of two pointers with skeleton and binding
> environment anymore, to indentify a Prolog term,
> but simple single pointers for a Prolog term.
> 
> Bye
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

The roots Program Sharing (PS): J Strother Moore II (1973) Mild Shock <janburse@fastmail.fm> - 2025-08-18 17:53 +0200
  Avoiding OCCUR Checks / The BAROQUE Language (Was: The roots Program Sharing (PS): J Strother Moore II (1973)) Mild Shock <janburse@fastmail.fm> - 2025-08-18 18:00 +0200
  Frozen Prolog Terms make copy_term/2 constant (Was: The roots Program Sharing (PS): J Strother Moore II (1973) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:29 +0200
    SWI-Prolog needs linear time (Was: Frozen Prolog Terms make copy_term/2 constant) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:30 +0200
      Old Lady with Double Pointers and Frozen Info (Was: SWI-Prolog needs linear time) Mild Shock <janburse@fastmail.fm> - 2025-08-21 03:31 +0200

csiph-web