Talk:Two-instruction madness!

From Esolang
Jump to navigation Jump to search

Total?

is not this total? how are we supposed to loop? --Pro465 (talk) 14:04, 22 June 2023 (UTC) ok, sorry i was in a haste and did not read the whole article. but still, how does ee wait till 0? the way the article defines it, it seems to me to only cause an infinite loop. --Pro465 (talk) 14:11, 22 June 2023 (UTC)

your claim is false

3 instructions may be turing complete, however, since it now has 3 instruction, it is not the shortest, as there is I/D machine --Pro465 (talk) 15:30, 25 June 2023 (UTC)

ok, so this is still interesting, as it is more efficient the i/d machine, and it has a more straightforward translation to bf than i/d (if your proof is correct).

if you could change the spec to say j jumps back if the current cell is nonzero, then we could nest a piece of code in a loop by inserting j's every 3rd place. of course, it would execute the code the first time regardless of the current cell's value, but im not sure we need that to be turing complete. --Pro465 (talk) 16:05, 25 June 2023 (UTC)

response to your claim is false

I/D machine does not fit the requirments, as it still uses values which is NOT ALLOWED. look at the page for more info. --Yetyetty1234567890 21:02, 10 July 2023 (MYT)

please read it again, it says that it does not need values, only that it CAN be a single instruction with a value. --Pro465 (talk) 14:55, 10 July 2023 (UTC)
ok, you meant to say it has no IO. i mean, yeah, but you claimed that this was the esolang with the least amount of commands, not that this is one which also fullflls your specific criterion. --Pro465 (talk) 15:05, 10 July 2023 (UTC)

Look at the translation table. also, they litterally say about using numbers in the explanation. --Yetyetty1234567890 5:40, 11 July 2023 (UTC) Sorry about that, but still, I wrote a program and a explination in the talk section of Talk:I/D machine of it is not turing complete. And in case you want that program, its this: d*=d*-1 thats it! I/D machine is NOT turing complete if it able to compute this, since it will have limited memory. But if it couldn't, then it wouldn't be turing complete because it couldn't do everything a turing complete language could do. 6:43, 12 July 2023 (UTC)

It's not completely clear what you mean by the d*=d*-1 program. A computable function or a "program" or whatever to test Turing completeness needs to runnable on any Turing, or TC equivalent, machine.
How would you run d*=d*-1 using Python, or Scratch, or a functional language like Haskell, or esolangs like Lazy-K, Thue, or Cyclic tag? The general form of computing a subtraction would be: x - 1, which can be computed with I/D machine, as well as any other language I listed. You need to encode your x and perform a subtraction process on it. In I/D machine you'd need to code that subtraction algorithm yourself, and the result would end up somewhere on a Cyclic tag style datastring located somewhere in the I/D machine's memory. To understand I/D machine you need to understand that Cyclic tag is Turing complete too. Not all TC languages have variables or addressable memory.
Arguing that I/D machine is not TC because you can't change a given cell or memory location in a particular way is a bit like saying bf is not TC because you can't do c = c * -1.234555 directly, where c is a particular cell value. You can compute this in bf, but it'll take more than one cell, and you'll need to encode floats and a sign flag (there's more than one way). I/D machine is Turing complete (see the proof), and can compute subtractions, as well as anything else computable. Understanding how Cyclic tag works first will be a good step if you are interested in minimalistic esolangs and models of computation like this. Salpynx (talk) 20:52, 31 January 2024 (UTC)

It seems that ?! has only 2 commands, but it is Turing complete

--None1 (talk) 10:29, 18 July 2023 (UTC)

that cheat --Yetyetty1234567890 24:40, 19 July 2023 (UTC)

what do you mean by that --None1 (talk) 07:20, 20 July 2023 (UTC)

What about Brainpocalypse, that is definitely not cheating and has 2 instructions without arguments. --None1 (talk) 10:38, 30 January 2024 (UTC)

"Computational class

Brainpocalypse is Turing-complete, given a sufficiently long tape (and it is likely but not proven that 256 cells is sufficient)."

^^^^^ WhAt iS thIS ( I would also mention Two-instruction madness! (fr this time) --Yetyetty1234567890 13:13, 31 January 2024

If you're talking about the 256 cells part, standard brainfuck with wrapping cells is not Turing-complete either with only 256 cells. I think it's fair to let Brainpocalypse have an infinite amount. --PkmnQ (talk) 13:38, 31 January 2024 (UTC)

Brainpocalypse, sorry I forgot a link to it

Brainpocalypse is an esoteric programming language created by User:ais523 in 2018, as a cross between brainfuck and Subtractpocalypse. The idea is to produce a language that's simpler than each of the original languages in terms of the complexity of its command set. It can also be fairly easily minimalized down to two instructions; unlike some other languages with the same property, it does not require an implicit loop around the program (i.e. the commands of the program itself handle both data manipulation and control flow).

Because the cells are unbounded, the tape length can be bounded; According to specification, it is the pointer that wraps, not the cells.

And as you have Two-instruction madness! (fr this time), Two-instruction madness! is not the TC esolang with least instructions. --None1 (talk) 04:11, 1 February 2024 (UTC) Tell me a esolang with 1 instruction with no params --Yetyetty1234567890 23:15, 3 Febuary 2024 (UTC) IAlso where is the loops and control flow? --Yetyetty1234567890 23:23, 3 Febuary 2024 (UTC)

There seems to be none, therefore Two-instruction madness! (fr this time) and Brainpocalypse should be the TC esolangs with least instructions, not Two-instruction madness!. Control flow in Brainpocalypse is done by the - command (standard version): Subtract 1 from the tape cell that the pointer is pointing to, if it's nonzero. If the subtraction fails because the cell was zero, instead goto the start of the program (i.e. rewind the IP address to the first command in the program). --None1 (talk) 00:58, 4 February 2024 (UTC)

Brainpocalypse has a sequel, Brainpocalypse II, which doesn't even require a wrapping tape. The instructions are:

( Add 1 to the cell that the tape pointer is pointing to. Reset the tape pointer to its original location.
) If the cell that the tape pointer is pointing to is nonzero, subtract 1 from it, then move the tape pointer one cell to the right.
If the cell that the tape pointer was pointing to is zero, add 1 to it, reset the tape pointer to its initial location, and goto the start of the program.

These two instructions are able to handle moving the pointer to the right and back to its original location, incrementing and decrementing cells, and control flow, in a way that's able to produce enough of an arbitrary effect at an arbitrary point to still be Turing-complete. (Any given program can only access finitely many cells, because a backwards jump also resets the tape pointer to its original position, and thus you can't access cells further from the start than the length of the program – but that doesn't matter because the cells can store unboundedly large integers, so you still have infinite storage.) --ais523 01:37, 4 February 2024 (UTC)

How are we going to execute This stuff?

--None1 (talk) 10:27, 9 August 2023 (UTC)