Talk:BrainSub

Detailed reasons for deletion of this article
1- I originally wanted to publish this article in Wikipedia, not Esolang, but an editor moved all Brainfuck-related references to this wiki. That was not my original intention.

2- The idea behind BrainSub is to eliminate the "esoteric" label of a Brainfuck derivative. This language is easy-to-use enough to serve as a learning tool for programming (that is its main goal) and powerful enough to write small and medium size applications with it. The least important aspect of BrainSub is if it is Turing complete or not.

3- Many of the esoteric languages published in this wiki are 10-minute exercises. Please note that I do NOT said "all of them"! Several had been defined in one or two paragraphs and the few that have compilers/interpreters are "incomplete or buggy".

BrainSub article is 30 KBytes long, the compiler executable file is 10.5 KB and comes from a 6,200+ lines source program written in assembler, plus more than 150 KBytes for standard object libraries and an user manual 175 KB long.

Every day when I see that my work receive null attention (the same than many of the other articles in this site) my self-esteem suffers. I would prefer an article about BrainSub much more limited but written by another people that think that this language is notable enough to deserve an article in this site or, better yet, in Wikipedia itself. Of course, such article will not even be considered while this article exists. Aacini 07:53, 11 July 2008 (UTC)


 * You can't really expect to put stuff like this on a low traffic wiki and expect people to use it, nor can you put stuff on Wikipedia that no one but you knows about. If you want to put effort into making it a real programming language and putting in on Wikipedia I would suggest making a website for it, or advertising it more.  Is there any chance for you to re-upload what you worked on to the wiki?  It seems like such a waste to throw it all away just because no one took interest.  The worst that could happen is someone else discovering it.

Orange 04:41, 7 August 2009 (UTC)

Why I requested to delete this article
Today is one full year since I published this article and just two people had shown a very little interest in. This is very disappointing for me; however, it is entirely my fault.

When I published this article I had not read all Wikipedia polices, mainly those related to the notability of the article. As someone told me, "Wikipedia is not a soapbox".

If some day someone think that BrainSub is notable enough so he/she publish an article in this site, I will be the happiest person.

Thanks a lot. Antonio Aacini 03:23, 8 July 2008 (UTC)


 * This isn't Wikipedia. It's the Esolang wiki, and its policies bear little resemblance to those on Wikipedia.  One of the main differences is that this wiki is a suitable place for publishing new esolang ideas.  Here are just a few statements to this effect:
 * Contrary to the Wikipedia you are welcome to write an article about an esoteric programming language you've made yourself, even if you are the only one in the world that knows about it. -- Community Portal
 * Articles on languages you made yourself are encouraged, unlike for example Wikipedia. -- Policy
 * -- Smjg 23:16, 8 July 2008 (UTC)

Would a "Hello, World!" program be: ( MAIN (72) > (101) > (108) (DUP) > (111) > (44) > (32) > (87) > (111) > (114) > (108) > (100) > (33) (<12) (.12) ) poiuy_qwert 16:26, 7 July 2007 (UTC)

No. Load Number intrinsic subroutine have in implicit >, so your example don't needs a single >. Also, I think there are 13 characters, not 12.

Of course, you can also write it this way: ( MAIN ("Hello, World!") (<13) (.13) )

Or

( MAIN ("Hello, World!") (STRSCANL) (WRITE) )

Or

( MAIN ("Hello, World!") (SL_WRITE) )

Aacini 19:08, 7 July 2007 (UTC)

Ah I see, I guess i'll Read next time instead of Skimming :P Thanks for clearing it up! poiuy_qwert 05:03, 8 July 2007 (UTC)

Multi-tape BrainSub
I think there should also be a multi-tape version of BrainSub that tapes must be defined using command: (TAPE name parameter) such as: (TAPE Red /2) (TAPE Blue /1) (TAPE Green /4) for 2-bytes values on Red tape, and 1-byte values on Blue tape, and 4-bytes values on Green tape. Possibly (for finite tapes) you could also make it you can indicate how much memory allocated for each tape: (TAPE Red /2 200) (TAPE Blue /1 400) (TAPE Green /4 100) Each tape is now 400 bytes long (plus the pointer). To select a tape you can use: (Red) (Blue) (Green) to select which tape you are working with. Also you could have a switch for binary/text I/O by doing: (IO_BINARY_MODE) (IO_TEXT_MODE) to set default function of,. commands, and (.) do the other way. Default is IO_TEXT_MODE. If the TAPE directive is used, it uses Multi-tape BrainSub, and the current tape must be set at beginning of program, but without TAPE directive or IO_BINARY_MODE,IO_TEXT_MODE directive then it uses normal BrainSub.

Other than these things I think it is good. --Zzo38 20:52, 25 November 2007 (UTC)

This is a wonderful idea! Not just because it would provide more features to BrainSub, but because it is a good example of the possibility to use BrainSub syntax to extend language capabilities; however, the implementation have several glitches.

BrainSub code is currently compiled in accordance with element size selected via /2 or /4 compiler switch, but the multi-tape version you suggest requires that the same compiled code be executed as 1-, 2- or 4-byte instructions in accordance with the last selected tape. Although is possible to generate a program that run this way, it would be totally opposed to "efficient" BrainSub's design principle. Another way to achieve a similar result could be via a subroutine attribute that allow to compile the entire subroutine with the selected element size, for instance: ( WordSize:2 a b c ) or ( ByteSize:1 x y z ).

Anyway I don't grasp the usefulness of such feature: if the tapes are allocated in different memory areas a single tape with the larger size would do the same job. If you use the tapes to manage the same memory area as elements of different sizes then you can (soon) do the same job with PACK and UNPACK subroutines of EXTENDED.BL# object library.

BTW do you had written some stuff in BrainSub? Aacini 05:31, 10 December 2007 (UTC)