From Esolang
Jump to navigation Jump to search

For two languages that take this project a couple of steps further, see JAB and IJAB at (near the bottom of the page).

JAB programs are strings on the alphabet {J,A,B}, with the correspondences
'A' <--> '>+'
'B' <--> '<'
'JA' <--> '['
'JB' <--> ']'

IJAB programs are strings on the alphabet {0,1}, and the language is defined in a way analogous to the esoteric language Iota (but is of course imperative rather than functional), and its instructions have the correspondences
'0' <--> 'J'
'10' <--> 'A'
'11' <--> 'B'
(Analogous to the '*' in Iota, the '1' in IJAB acts as a punctuation symbol.)

In both languages, the strings have to be syntactically correct in order to be programs.

--r.e.s. (r dot s at mindspring dot com)

While those are both effective ways of reducing the symbol cound, they don't reduce the command count, so they're no different than COW is to BF. --GregorR 16:41, 28 Jul 2005 (GMT)

memory mapped I/O

Is cell 5 automatically reset to 0 every time input or output is performed, or does it need to be reset manually? For instance, does the program }}}}}<} perform one or two inputs? --Koen (talk) 15:31, 6 October 2012 (UTC)

I think 0 inputs. BitChanger's pointer starts at cell 16, not 0 like Bool/Brainfuck Scheurneus (talk) 09:36, 31 March 2014 (EDT)

Unable to toggle cell 0

In BitChanger, @ is equivalent to <} but if the pointer is at cell 0 it cannot move left, so this is impossible. One possible solution is to change command set to { and > instead of < and } --(this comment by at 19:31, 14 June 2013‎ UTC; please sign your comments with ~~~~)

AFAIK, what you say is not correct. @ is equivalent to }<, because } is the same as @> EDIT: You are correct! What I say ( } is @>) and what you say are both good solutions. However, I wonder if a lot of people will use cell 0 (it would still be Turing-complete without).Scheurneus (talk) 09:29, 31 March 2014 (EDT)