home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.java.programmer      Programming in the Java language      224,142 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 224,136 of 224,142   
   Mild Shock to Mild Shock   
   Jaffar's Unification in Dogelog Player (   
   23 Sep 25 16:23:49   
   
   From: janburse@fastmail.fm   
      
   We are currently in our third iteration of   
   unification for rational trees. What first   
   begun as a separate routine inside library(math),   
   has now recently become a novel take on the   
   host language routine unify() inside the   
   Dogelog Player Prolog system.   
      
   We report how we replaced the union find map   
   data structure inside unify() by some Prolog   
   compound pointer swizzling as suggested by Jaxon   
   Jaffar in 1984, arriving at a more competetive   
   rational tree unification realization.   
      
   Jaxon Jaffar (1984) already proposed Hydra test   
   cases. They take very less memory but are very   
   large when written. We conducted according tests   
   with Dogelog Player and Scryer Prolog. For   
   N = 16'384, 65'536, 261'144 the Rust Prolog   
      
   has a minor advantage over the JavaScript Prolog,   
   but interestingly losing it for N = 1'048'576.   
      
   See also:   
      
   Jaffar's Unification in Dogelog Player   
   https://qiita.com/j4n_bur53/items/b0b754f02d88680d3249   
      
   Mild Shock schrieb:   
   > Dear All,   
   >   
   > We are happy to announce a new edition   
   > of the Dogelog Player:   
   >   
   > - Frozen Terms:   
   > We extended our garbage collector marking bits   
   > to Prolog compounds. Unlike Prolog variables, where   
   > setting all bits is used to indicate change set   
   > membership, we use it to indicate frozen objects.   
   > This makes the garbage collector and certain   
   > built-ins such as copy_term/2 etc.. aware of   
   > program sharing (PS).   
   >   
   > - Marking Algorithms:   
   > We now provide native implementations of (==)/2,   
   > copy_term/2, etc.. with sharing and cycle detection.   
   > We didn't deploy additional marking bits and/or   
   > pointers inside the Prolog terms, instead used   
   > additional datastructures, leaving the Prolog terms   
   > untouched. The compare/3 implementation is   
   > not a total order.   
   >   
   > - Canonical Compare:   
   > The library(lists) has experimental predicates   
   > term_decompose/3 and term_canonical/2, still written   
   > in 100% Prolog. We showcase their usage in   
   > library(sequence) and library(aggregate). The end-   
   > user gets by default a structure compare, but can   
   > also have a canonical compare, both being   
   > total and natural orders.   
   >   
   > Have Fun!   
   >   
   > Jan Burse, http://www.herbrand.ai/ , 21.08.2025   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca