Talk:Malbolge

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Hello World[edit]

Should "hello world" be capitalized the way it is? It originally had no caps i believe. Now it has odd mixture of upper/lowercase letters. Perl 00:07, 27 Feb 2004 (UTC)

Looking at the rest of the article, you'll see that no human-written malbolge programs exist, only ones that have been 'found' - essentially by trial and error. So ideally, we would include a program that displayed "Hello, world" or some other rational equivalent, but the best that exists is one that displays an odd mixture of upper and lower case. What that exact mixture is, I couldn't tell you for sure without a malbolge compiler to run it through, but I think the basic idea is correct. - IMSoP 00:29, 27 Feb 2004 (UTC) [Apologies for my over-verbosity, it's late and I'm tired]
Yes, it is actually "hEllO wORld". MISSINGNO. was here. 22:32, 10 October 2007 (UTC)[reply]
Now a moot point, since Antwon posted his version.— Preceding unsigned comment added by 130.216.191.183 (talkcontribs) 01:44, 27 July 2004‎

I have a different comment related to the Hello World section. Why has someone asked for citations for the two examples? Surely, the fact that you can paste each example into a Malbolge interpreter to check its veracity suffices as a citation?--Tedd (talk) 13:30, 19 March 2015 (UTC)[reply]

The rationale given for the "citation needed" edit was that the code could be dangerous since it was "encrypted". Of course this is absurd since Malbolge has no capabilities beyond standard input and output, so I have reverted. --Ørjan (talk) 05:21, 20 March 2015 (UTC)[reply]

Quite easy[edit]

Today, after reading here how hard it is, I wrote a program which generates Malbolge programs writing various strings. It was quite easy. :-)

I'm going to describe right now. Taw 12:03, 17 Aug 2004 (UTC)

The article doesn't say that it is hard. It says that when the language came out, it was hard. No one working with it at the time took the time or knew how to simplify it until a few years later. With the simplified explanation added to the article, it is much easier to understand than the language specification made it. — 12.214.45.9 20:08, 17 Aug 2004 (UTC)
These "simplification" are trivial. For anyone with even the most basic understanding of cryptography, it is obvious that you can get rid of one of lookup tables, substractions and additions. Therefore your claim that it was difficult and is easy now is false. Probably no hello world was written in the first 2 years only because hardly anyone seriously tried. Taw 04:00, 19 Aug 2004 (UTC)
I'm going to describe right now. -- You neglected to do so. Maybe it wasn't so easy after all. -- 184.189.216.159 (talk) 00:56, 5 March 2016 (UTC)[reply]

Pointer notation[edit]

From the "Pointer notation" section:

[d] means the value of d is a memory address; [d] is the value stored at the address.

This is very unclear to me, and I don't know what it's trying to say: could someone clarify? AndrewWTaylor 14:41, 24 November 2005 (UTC)[reply]

This cannot be fixed effectively unless you are more specific. What about it is unclear ? Do you not understand what a memory address is, or what it means to store something at an address, or something else ? Was the section explaining what d means unclear or unread by you ? — 131.230.133.186 10:20, 19 March 2006 (UTC)[reply]
Saying "[d] means the value of d is a memory address" is like saying "the mane is the hair on a horse is an animal". Kind of a broken sentence. Bromskloss 18:21, 26 April 2006 (UTC)[reply]
I think I understand. Perhaps a better phrasing would have been "[d] means that the value of d is a memory address". — 131.230.133.186 12:37, 26 June 2006 (UTC)[reply]
No, it isn't like that at all ... it's like "horses can eat x means x is horse food." ... nothing broken about it. -- 184.189.216.159 (talk) 00:33, 5 March 2016 (UTC)[reply]

Instructions section[edit]

The instruction jmp is defined as 'jmp [d] + 1'. Is this realy correct?
I wrote an interpreter in VB.Net VisualStudio 2010 and it runs the 99 bottle loop correctly only with the definition 'jmp [d]' without the + 1.
Also the section says 'After each instruction is executed, the guilty instruction gets encrypted (see below) so that it won't do the same thing next time, unless a jump just happened. Right after a jump, Malbolge will encrypt the innocent instruction just prior to the one it jumped to instead.'
My interpreter makes no difference in the encryption between jmp and any other instruction. Any suggestions? If interested in my interpreter feel free to contact rheinflut1995@netcologne.de
Rheinflut1995 (talk) 22:07, 2 December 2010 (UTC)[reply]

Is this realy correct? -- No, it isn't. -- 184.189.216.159 (talk) 00:58, 5 March 2016 (UTC)[reply]

What is a "guilty instruction" and what is an "innocent instruction"? I have never heard these terms used in programming before and Googling them just brings me back to this article. Maybe they should be replaced with more common terminology? 216.26.126.130 (talk) 22:51, 18 September 2019 (UTC)[reply]

Probably (talking out of my ass here) from the original language specification, seeing as how it's named for the eight circle of hell in Dante's Inferno. I'd assume "guilty" instruction means the instruction just executed, or just about to be. 109.228.176.49 (talk) 12:45, 13 December 2021 (UTC)[reply]

Crazy operation[edit]

Where does the name "Crazy" come from? From what I can see, the original specification, source code, and Lou Scheffer's page all refer to it simply as "Op". The only external reference I can see using the term "Crazy" is Esolang. Perhaps Wikipedia should refer to it simply as "Op" as well? —MattGiuca (talk) 05:06, 8 December 2010 (UTC)[reply]

Interesting. The esolang mention is newer than the wikipedia one, and might be inherited from here, although comparing with wikipedia from the same time period it doesn't seem to use exactly the same terminology. I googled the old esoteric mailing list archives from 2001-2004, and the term is not used there. (But I didn't check how much Malbolge was discussed at all there.) I'm not sure where else to check. I posted a question at the esolang talk page. --Ørjan (talk) 02:02, 7 January 2011 (UTC)[reply]

Cycles[edit]

The article mentions six different cycles, but at a cursory glance, I was not able to find every number from 0 to 93 in them. It is trivial to prove that they all have to be in some cycle: if there was a number that wasn't in any cycle, the sequence starting from it would have to generate new numbers forever, but this is impossible, as the numbers are mod 94. There are therefore two possibilities: I did not look at the article well enough, or there are some cycles not listed in the article. JIP | Talk 20:12, 20 January 2011 (UTC)[reply]

I just checked, they are all there. The numbers 0-32 are given as 94-126, which are the same mod 94. This is because Malbolge restricts the results to the 94 printable ASCII characters except space, starting at no. 33 (!). --Ørjan (talk) 11:39, 21 January 2011 (UTC)[reply]

Difficulty? Why?[edit]

What is actually so difficult about Malbolge? Of course it is hard to write programs by hand. But why is it so difficult for a machine, that the first program of that kind needed several years? Don't you think that it is rather a question of little knowledge of the existance of the language? --87.172.182.231 (talk) 16:02, 29 March 2011 (UTC)[reply]

I agree - taking a lot of time tells only that it's so obscure that nobody cared enough to try. It's not like there were thousands of scholars all around the world wracking their brains to come up with a solution. --188.238.131.94 (talk) 11:00, 14 December 2012 (UTC)[reply]
Your question is the wrong way around. Doing anything is infinitely hard (short of stumbling upon how to do it by luck) if you don't know how to do it. So, how would you go about writing a program that generates a Malbolge program that performs a particular task? Your question suggests that you think that writing in Malbolge is hard merely because it uses obscure notation, but that is far from all that makes Malbolge difficult to work with. -- 184.189.216.159 (talk) 00:45, 5 March 2016 (UTC)[reply]

Referenced in popular culture[edit]

If someone cares to do a proper edit, it's referred to in Elementary, season 1 episode 10. — Preceding unsigned comment added by 80.217.236.91 (talk) 03:24, 16 December 2012 (UTC)[reply]

I see you beat me to finding this on Wikipedia, but I first spent many hours learning about Malbolge and compiling the Interpreter by Ben Olmstead, then running all the examples I could find to test it. They all passed flawlessly. Then I proceeded to check the code that was visible on the paper that Sherlock held up, albeit upside down--easy enough to 'flip' the picture, and apart from the fact that there's no way in Dante's Inferno that what was shown could be remotely similar to the algorithm he later said was what it represented, that is, "E(n)=Q(n)/Q(E)+Q(n)" [and that's another story for a Maths article], I now know that the so-called Malbolge code fails after just the ninth (9-th) character (see further below). For those who may be interested in what was shown, it appeared to me to be as follows (Note: The 'W' in the top line may be questionable; and there appears to be more characters after the 'm' but I couldn't read them. The 'c' and the 'A' in the bottom line were both questionable. Also note: Wikipedia is keeping a leading ',' from appearing, so look at source text to know for sure what I saw):
('&%:9]!-}|z2Vzwv-,POqponl$Hjig%eB@@>}=M:9wv^WsU2T|nm
,jcl(I&%$#"^CB]V?Tx<uVtT^Rpo3N1f.Jh++Fdbc=CBA@?!
If you try running just "('&%:9]!-" (without the two quote marks), Ben's Malbolge Interpreter displays the error message: "invalid character in source file" referring to the minus sign at that position. So, even though, as I would assume, there appears to be some characters missing in the close-up view at the right edge of the paper created by the show's 'prop department,' it doesn't matter: The code is not a Malbolge program, at least not according to Ben's Interpreter! Daniel B. Sedory (talk) 10:55, 17 December 2012 (UTC)[reply]
What you copied is very similar, but with some errors here and there and the last part cut off, to the Hello World! program in this very article. They might very well have copied it from wikipedia, although it's of course available from other places. --Ørjan (talk) 10:07, 19 December 2012 (UTC)[reply]
I have a flipped, reversed and then slightly rotated, image capture (only 212 Kb, .PNG) of the so-called 'Malbolge program' that appeared on the TV show Elementary and would like to email it to you or anyone else who would be able to add it to this page, so there's no question about what Sherlock held up for the audience! And as I stated above, there's no way that a bogus or let's be nice and call it a hurried and thus error filled copy of a 'Hello World' program could ever lead to the algorithm: "E(n)=Q(n)/Q(E)+Q(n)". You'll find my email address at my web site here: The Starman's Realm Daniel B. Sedory (talk) 02:40, 25 December 2012 (UTC)[reply]
Oh. I don't think I'm the right person to do this, I'm not good with pictures and I would also be worried about the copyright of that image. --Ørjan (talk) 01:19, 26 December 2012 (UTC)[reply]

"A significantly shorter version" >>[citation needed]<< ?[edit]

in its current revision, anybody with half a brain can see the shorter version is indeed much shorter. no citation is needed. 88.88.16.75 (talk) 23:45, 19 March 2015 (UTC)[reply]

The rationale given for the "citation needed" edit wasn't the length, but that the code could be dangerous since it was unreadable. Of course this is absurd since Malbolge has no capabilities beyond standard input and output, so I have reverted. --Ørjan (talk) 05:21, 20 March 2015 (UTC)[reply]
To be fair, if you give me control of your standard input and output outside a sandbox, I can do pretty much anything. 109.228.176.49 (talk) 12:49, 13 December 2021 (UTC)[reply]

Paper by Hisashi IIZAWA et al.[edit]

As one of the only technical work on the language, someone should try and translate it into English. http://www.sakabe.i.is.nagoya-u.ac.jp/~nishida/DB/pdf/iizawa05ss2005-22.pdf — Preceding unsigned comment added by DarkestElephant (talkcontribs) 11:54, 21 June 2015 (UTC)[reply]

Malbolge Unshackled[edit]

As the creator of this variant, I am not going to edit that part myself, but the new, longer paragraph on Malbolge Unshackled is misplaced, partially redundant with the already existing mention, and also partially wrong (it takes more than staying within the memory limit to achieve backwards compatibility.) (That said, the editor who added it understands both Malbolge and the variant better than me.) --Ørjan (talk) 07:02, 12 December 2016 (UTC)[reply]

99 Bottles of Beer website down[edit]

The original place where the 99 bottles of beer in Malbolge example was posted seems to have gone down. I found a copy of the code at https://github.com/nstarke/malbolge-examples/blob/master/bottles-995.mb, but I'm not sure if there is a better source (such as the paper by Hisashi Iizawa). If anyone knows more about this, please edit the page! Mount2010 (talk) 18:30, 16 November 2020 (UTC)[reply]