Smallest Program Witha Bug

In JavaLanguage:

  public class Buggy
  {
    public static voi main( String [] args )
    {
         System.out.println( 0.1 );
    }
  }

There's a 'd' missing from 'void'. So how many bugs are in this Java code??

In GNU SmallTalk:

 0.1 print

In SmallTalk 80:

 0.1
 (printIt)

In PythonLanguage:

 print repr(0.1)

or better yet

 b

ExBase:

 ? 1/0    (Similar to "print(1.0 / 0.0);" in C-like langs)


Is the referred-to "bug" the fact that 0.1 is not exactly representable in IEEE 754 floating point? One could argue that the program is behaving correctly...


There's an old programming proverb to the effect that "all programs have at least one bug and at least one redundant instruction". Iteratively, then, all programs can be reduced to a single instruction that doesn't work.

abort() ???

A friend has a story that illustrates the truth of this. Somewhere in an IBM mainframe OS (I don't know which one), there was a module that contained but a single instruction (it was a privilege-switching module). It was like that for several years. Eventually, a circumstance was discovered when it didn't work, and a bug report was raised. So the one instruction program did indeed have a bug. Apparently it's 13 instructions now.

From the context, there's every reason to think that this was a hardware bug, and that the extra dozen instructions were a work-around, not a fix for a software bug.


There's another IBM mainframe story, to the effect that someone wanted to write a program that did nothing, so they wrote one that said

     BR    15 
Then someone pointed out that it should really say
     BR    14
(because programs are usually called using a BALR 14,15). Then someone else pointed out that the return code (in register 15) was unpredictable, so it would be better to write
     SR    15,15
     BR    14
2 statements - 2 bugs!


EditText of this page (last edited August 13, 2005) or FindPage with title or text search