[HN Gopher] Fractran: Computer architecture based on the multipl...
       ___________________________________________________________________
        
       Fractran: Computer architecture based on the multiplication of
       fractions
        
       Author : signa11
       Score  : 82 points
       Date   : 2024-09-15 12:09 UTC (1 days ago)
        
 (HTM) web link (wiki.xxiivv.com)
 (TXT) w3m dump (wiki.xxiivv.com)
        
       | two_handfuls wrote:
       | Some of the choices there make things harder to read.
       | 
       | For example, this machine takes two numbers and they are the
       | numerator and denominator. Why on earth use ">" for the
       | separator? That already has a mathematical meaning.
        
         | theamk wrote:
         | I assume you'd prefer to use "/" or "/" instead?
         | 
         | ">" is not a division, it's a rewrite operator, and in the
         | page, it's only used with symbolic representation. I would not
         | call "y div1 /" better than "y div1 >", it's special notation
         | either way. And having special symbol makes it easier to
         | understand when are we talking about regular math vs rewrite
         | rules.
         | 
         | (Alternatively, if you meant "why not some other Unicode
         | symbol": I am guessing author wants something easy to type, I
         | can relate)
        
         | cvoss wrote:
         | Because the fraction represents a rewrite rule, which is the
         | fundamental unit of computation in this language. Instances of
         | the denominator factors are replaced with instances of the
         | numerator factors.
         | 
         | Some people read x/y as a rewrite already (like programming
         | language nerds). Others don't, and it makes sense to me to use
         | a more intuitive, directed symbol to denote the action.
         | 
         | FWIW, `>` has not one but many meanings across programming
         | languages.
        
         | entaloneralie wrote:
         | Because the denumerator is to the left side.
        
       | fanf2 wrote:
       | I like Raganwald's ode to Fractran which relates it to Minsky's
       | register machines and (surprisingly) the Collatz conjecture.
       | https://raganwald.com/2020/05/03/fractran.html
        
       | tromp wrote:
       | This was a bit hard to read, requiring some note taking and some
       | factorizating to check the correspondence between variable names
       | and primes.
       | 
       | > You can get the product of two registers(x*y) by keeping an
       | intermediate result and state register. Keeping the resulting
       | product, by naming the first register for the result, prevents
       | the accumulator grow too much in size:                   :: r acc
       | x y         :: iter acc > x iter         :: iter >         :: x y
       | > r acc y          :: y > iter         :: x >               AC
       | 8575 x^2 y^2         .. r^6
       | 
       | This one is harder to figure out. The first line reserves primes
       | 2,3,5,7 for variables r, acc, x, y. The unreserved iter should
       | then be assigned prime 11. The accumulator AC starts at value
       | 8575 = 5^2 * 7^3, so the y^2 has a typo and should be y^3. Which
       | matches the desired end result of 2*3 = 6. But how exactly does
       | it get there?
       | 
       | Btw, the corresponding FRACTRAN program would be
       | 5*11  1   2*3*7  11  1         ----  --  -----  --  -
       | 3*11  11   5*7    7  5
        
         | entaloneralie wrote:
         | Reduction steps from the example:
         | https://git.sr.ht/~rabbits/fractran/tree/main/item/examples
         | :: 55/33 acc.3 iter.11 > x.5 iter.11        :: 1/11 iter.11 >
         | :: 42/35 x.5 y.7 > r.2 acc.3 y.7        :: 11/7 y.7 > iter.11
         | :: 1/5 x.5 >             AC x x y y y        02 42/35 r acc x y
         | y y        02 42/35 r r acc acc y y y        03 11/7 r r acc
         | acc y y iter        00 55/33 r r acc x y y iter        00 55/33
         | r r x x y y iter        01 1/11 r r x x y y        02 42/35 r r
         | r acc x y y        02 42/35 r r r r acc acc y y        03 11/7
         | r r r r acc acc y iter        00 55/33 r r r r acc x y iter
         | 00 55/33 r r r r x x y iter        01 1/11 r r r r x x y
         | 02 42/35 r r r r r acc x y        02 42/35 r r r r r r acc acc
         | y        03 11/7 r r r r r r acc acc iter        00 55/33 r r r
         | r r r acc x iter        00 55/33 r r r r r r x x iter        01
         | 1/11 r r r r r r x x        04 1/5 r r r r r r x        04 1/5
         | r r r r r r             r r r r r r
        
       | oersted wrote:
       | I think this site, along with the 100r.co sister site, are my
       | favourite places on the Internet. Digital Garden indeed!
        
       | Someone wrote:
       | I think the Wikipedia page
       | (https://en.wikipedia.org/wiki/FRACTRAN) is easier for
       | understanding Fractan.
        
         | westurner wrote:
         | By Church-Turing, is Fractran sufficient to host a Hilbert
         | logic? https://en.wikipedia.org/wiki/Hilbert_system
        
       | neuroelectron wrote:
       | The reason to do this would to create a quantum computer
       | emulator. I was looking into this myself recently. I believe Iran
       | was doing the same things but on FPGAs:
       | 
       | https://www.tomshardware.com/news/iran-quantum-computer-arm-...
        
         | theamk wrote:
         | Why would anyone outside of quantum computer research want a
         | quantum computer emulator? On classical machines, classical
         | algorithms beat emulated quantum ones by a very large margin.
         | And Iran apparently claimed "detecting surface vessels using
         | the quantum algorithms", which makes very little sense as there
         | are no high-performance quantum image detection algorithms
         | known, so this is highly likely just some Iranian researchers
         | fooling their government, and making a laughing stock of
         | themselves in the process.
        
           | kragen wrote:
           | presumably you would want it in order to do research on
           | quantum algorithms, but i don't see what that has to do with
           | fractran
        
       | Animats wrote:
       | Rational arithmetic machines have their uses. SAT solvers tend to
       | have one inside. That's because rational arithmetic is closed
       | under addition, subtraction, multiplication and division.
        
         | eigenket wrote:
         | > That's because rational arithmetic is closed under addition,
         | subtraction, multiplication and division.
         | 
         | Unless you divide by zero I guess
        
       ___________________________________________________________________
       (page generated 2024-09-16 23:00 UTC)