Talk:Befunge

From Wikipedia, the free encyclopedia

Is the statement that 'a number of compilers have subsequently been written' true? It was my understanding that no true compiler had ever been written--all 'compilers' off Befunge code really just bundled up the Befunge program and an interpreter in a .exe.

-- Herschel 13:44, Apr 21, 2004 (UTC)

Well it seems like it would be hard to have a compiled language that allowed self-modifying code in the same way... --Grouse 13:35, 10 Jul 2004 (UTC)
Bundling a program and an interpreter together in an .exe is real compilation, even if it does feel like cheating. --lament 19:36, 28 Jul 2004 (UTC)
I would argue that it is psuedocompilation and deserves to be pointed out as such in the article. However, through some investigation, I have found that there is a "true" compiler located here. (Note that it is a link to an archival of the page, seeing as it is actually no longer online.) However, I was unable to get any Befunge programs that I tried to compile to workd correctly--probably due to some nuance of Windows XP. It looks pretty genuine to me, though. Can anyone verify that it works, and perhaps it deserves a mention in the article? --Herschel 18:54, Aug 8, 2004 (UTC)
mtfi works great, it's what i use. (i'm on Linux) --lament 05:01, 9 Aug 2004 (UTC)

As a friend just pointed me, it looks like the example program can't compile: nowhere the symbole '@' (end of progam) is used ;-) I would do the correction myself, but I'm not exactly sure of that ( I'm not an expert in this language :-P ), and I'm not sure either where I should put it :-D --Fafner 11:33, 28 Jul 2004 (UTC)

No, the program is correct. It doesn't have @ because it never halts. It's an endless loop. --lament 19:34, 28 Jul 2004 (UTC)
Ok, the '@' is an "exit" or "return" instruction. But I think the article would gain in precision if a more precise explanation of the algorithm were provided. It is said "This arrow technique is demonstrated in the random number generator program below". For me a random number generator is like a function that returns different values at each call. I don't see where this should be an endless loop unless the program keeps running to endlessly print random number. Is it the case or is it something else?
Fafner 08:38, 30 Jul 2004 (UTC)
This program generates (an endless stream of) random numbers, therefore (by the process of induction, we conclude that) it is a random number generator. Please explain which part of this is unclear.
Dv 12:37, 2004 Jul 30 (UTC)
Now it is clear in my mind, but what I think is that what the algorithm does should be explained more precisely. Maybe just one or two sentences ;-)
Fafner 21:07, 1 Aug 2004 (UTC)
Sure, go ahead :)
Dv 18:23, 2004 Aug 2 (UTC)
Done.
Stelio 00:19, 3 March 2006 (UTC)


Contents

[edit] New Interpreter

Does someone want to add the following?

http://yabi93.sf.net

I agree. Added.--Dougall 11:18, 24 June 2006 (UTC)

[edit] Malicious edit?

An anonymous user changed the word 'like' to 'unlike' here:

Since a Befunge-93 program can only have a single stack and its storage array is bounded, the Befunge-93 language 
is, unlike most machine languages, not Turing-complete. 

I don't remember which statement should be true. My gut feeling was that most machine languages are, due to address space limitations, not turing-complete, but close enough for practical purposes. Anyone CS experts care to resolve this? --Stevage 22:55, 1 December 2005 (UTC)

Most computer language specifications do not have any space limitations. Their implementations most certainly do (if you have such a machine I'd sure like to see it). So Befunge-93's hard limit of 80x25 characters made it inherently not Turing-complete, unlike other languages.

- Xbobx 09:13, 11 January 2006 (UTC)

[edit] Hello World example

Perhaps some explanation of the example would be useful? I suppose I didnt look too hard at it, but I needed someone to explain that 32 was ascii for space, and 10 was ascii for newline.

Done.
Stelio 00:19, 3 March 2006 (UTC)

[edit] 2D array?

...then we should be using a table, right? Guess full-fledged tables are too hard to manage (one TD for each char!) so I added monospaced fonts for now. —The preceding unsigned comment was added by Jafet.vixle (talkcontribs) 09:58, 9 May 2006 (UTC).

Excuse me, but what are you talking about? --ZeroOne 10:45, 9 May 2006 (UTC)

Well, for clearer code view, the characters must align up properly, no? I tried adding [span font-family] but it didn't work. Anyway, just my $0.02. Jafet

There are two code examples and in both of them the characters do align correctly. Besides, I don't see any edits in the main article made by you, so where exactly did you add monospaced fonts for now? Oh, and please sign your posts using four tildes: ~~~~. That expands automatically to your user name and current time/date. :) --ZeroOne 13:27, 9 May 2006 (UTC)

[edit] Befunge-93 vs. Befunge-98

I think that a distinction should be made between Befunge-93 and Befunge-98. The section title "Instruction List" is an excellent list of Befunge-93 instructions, however, Befunge-98 has many more, including '[' (turn left), ']' (turn right), 'r' (reflect) and 'n' (clear stack). I think that there should either be a definative list (like the one found [1]), a line should be added stating that this is a list of Befunge-93 commands or the title should be changed to "Befunge-93 instruction list".--Dougall 11:11, 24 June 2006 (UTC)

I did it myself (but forgot to use the edit discription thing). If anyone has any objections, feel free to tell me.--Dougall 07:56, 28 June 2006 (UTC)
It seems to me that the most recent version of the language should be the one most thoroughly described. So why don't we replace the B-93 instruction list with one for B-98? I'll do it if no one has any objections. Stebbins 20:53, 4 December 2006 (UTC)