From Esolang
Jump to navigation Jump to search

Good idea! It was originally Brainfuck was supposed to be like that. This one is much shorter. This program language is also strange. I could easily copy out onto paper and type in any computer. --Zzo38 19:42, 26 Apr 2006 (UTC)

Thanks! BF aimed for a small compiler. I decided on an interpreter because it was easier to define (Gregor discovered that even cat was a compiler). There was going to be a contest, but I'm not sure how exciting it would have been, maybe we can still have one if there is interest. If anyone can further reduce the size of this program (and maintain the Turing Complete aspect), please do so. Or, even better, devise and implement a smaller lang! I'd love to see a TC lang in less than 40 bytes of code. --Calamari 23:55, 26 Apr 2006 (UTC)
What does that mean, even cat is a compiler? --Zzo38 16:06, 27 Apr 2006 (UTC)
Take a program, already compiled and ready to run, feed it thru cat, and redirect its output to a file. You've now compiled the "language" into a program (the language and the code produced by the lang happen to be identical.. for example if my program source is "a", the binary output is "a". Now, of course that's totally cheating. A first thought might be to restrict it to printable characters. However, in MS-DOS, printable characters are sufficient to write any program (they used to use this to make text executables on usenet, for example uudecode, to solve the chicken & egg problem). Another restriction might be that the source and output must differ. That's easy to get around by math: add 1, subtract 1, multiply, etc. Anyhow, to sum up, the problem here is that the language is being interpreted by the cpu, it can skip the step of being interpreted by our compiler. So, with an interpreter, you can set restrictions such as enforcing that the program be interpreted as it is run, and not in advance. --Calamari 18:56, 27 Apr 2006 (UTC)

The next things we need are interpreters for other systems such as the ARM9 (one of the processors in the Nintendo DS), and some other things as well. --Zzo38 03:48, 27 Apr 2006 (UTC)

jix reminded me of Subskin. I might be able to use some variation on OISC for a smaller size. Also, it would be fun to see how small a custom language interpreter can be on Linux (abusing the ELF headers, etc, like on Brian Raiter's pages). --Calamari 18:56, 27 Apr 2006 (UTC)