Fractran: Computer architecture based on the multiplication of fractions
wiki.xxiivv.com
wiki.xxiivv.com
> 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 :: 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 rFor 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.
">" 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)
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.
It's still used for some niche purposes.
Unless you divide by zero I guess
https://www.tomshardware.com/news/iran-quantum-computer-arm-...