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


Groups > comp.lang.prolog > #14798

Avoiding OCCUR Checks / The BAROQUE Language (Was: The roots Program Sharing (PS): J Strother Moore II (1973))

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Avoiding OCCUR Checks / The BAROQUE Language (Was: The roots Program Sharing (PS): J Strother Moore II (1973))
Date 2025-08-18 18:00 +0200
Message-ID <107vim2$7t5h$1@solani.org> (permalink)
References <107vi9k$7t1e$1@solani.org>

Show all headers | View raw


Hi,

The below PhD thesis is a nice gem,
including marvels such as:

 > 2.3 Avoiding Unnecessary OCCUR Checks
 > It is possible to significantly reduce the number
 > of calls to OCCUR during a resolution unification
 > by the following observation. If two clauses are
 > being resolved, they are standardized apart.
 >
 > Thus, a variable from the left-hand parent will not
 > occur in a term from the right-hand parent unless
 > during this unification, there has been a binding of a
 > variable from the right to a term from the left.
 >
 > A similar statement holds for 1eft-to-right bindings.
 > Once again, in structure sharing, this condition
 > is easy to check.

The BAROQUE programming languages is also
a genious contraption, it can run functions
backwards, basically a Prolog based functional

language, using the reified IF-THEN-ELSE
from Ulrich Neumerkel. Only in 1973 there was
no EMACS yet. Now we have Prologers that know

EMACS but still know nothing otherwise.

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