Half a croissant, on a plate, with a sign in front of it saying '50c'
h a l f b a k e r y
i v n i n seeks n e t o

idea: add, search, annotate, link, view, overview, recent, by name, random

meta: news, help, about, links, report a problem

account: browse anonymously, or get an account and write.

user:
pass:
register,


                                       

Meaningful compiler error messages

Just for a change, your compiler tells you whats actually wrong with your program
  (+4, -1)
(+4, -1)
  [vote for,
against]

Maybe I'm being a little naive here, but wouldn't it be great to have a compiler that actually told you what was wrong.

Posible messages should include: you've put that bit in the wrong place, it should go there, you've forgotten to do that, etc

imagooAJ, Oct 21 2000

(?) "Funny" error messages http://home.xnet.co...nis/unix_humor.html
To stem the tide. [egnor, Oct 21 2000, last modified Oct 04 2004]

Parentheses tracker http://www.halfbake...rentheses_20tracker
An idea for Nobody. [juuitchan3, Jun 29 2002, last modified Oct 04 2004]

[link]






       I used to be consulted daily on Fortran problems in a large engineering firm. I was reminded of Robert Pirsig's comments on paying attention and thinking about what you are doing when you are doing it.   

       A typical exchange:   

       "I can't figure out why my program crashed."   

       I look at the printout. "ERROR: YOU HAVE DIVIDED BY ZERO IN LINE 420."   

       "Have you considered the possibility that you have divided by zero in line 420?" I ask politely.   

       "No. I better check..."   

       I kid you not.
boris, Oct 21 2000
  

       To report the kind of error message you want, the compiler has to somehow know what you meant so that it can tell how what you wrote down is different.   

       If we could make compilers which were able to intuit your meaning from buggy code you wrote, well...   

       The best we can really hope to do is provide enough information about what the compiler was doing when it encountered the error, and why the error occurred, that the programmer can match this against their mental model and track down the problem.
egnor, Oct 21 2000
  

       My devtool of choice, Delphi, has the decency to give me plenty of hints where it sees I've left loose ends in my code. That's a start, I suppose.   

       It would be really cool if the compiler could go a step further, work out what the mistyped variable name should have been (hey, its toted up the symbols already!), and perhaps working out where the missing END; should go.
MonTemplar, Oct 21 2000
  

       I am reminded of a story (web urban legend?) where some version of a C compiler went out the door with some of the developer's "test" error messages still in place. It was not too long before they got a call asking what the following compiler error meant:   

       Error 3040: Klingons off the starboard bow
blahginger, Oct 21 2000
  

       A number of compilers do attempt "error recovery", e.g. "working out where the missing END; should go". Many such compilers will even tell you exactly what they're doing: "inserting END; before line 135".   

       It sucks. They guess wrong, and you just get a whole pile of "snowball" errors.
egnor, Oct 21 2000
  

       Or, alternatively: Compilers that swear at you if get something wrong:   

       eg: "You ****ing idiot, you missed out a ;", or "Everbody knows you dont do that you cretin".
imagooAJ, Oct 23 2000
  

       Error 1500: Better software that does the same task already exists as off-the-shelf.   

       Error 1501: Your user-model is lousy and no one but a code-head will be able to figure out the UI.   

       Error 1502: I could have written this using 2110 fewer lines of code.   

       Error 1503: Lines 13900-14560 violate 3 current software patents.   

       Error 1504: It's obvious this was written without the benefit of a proper Software Requirements Specification.   

       and so on . . .
bristolz, Oct 29 2000
  

       Imho, it would be good if we moved away from C-style syntax. If, instead, you have to write something like   

       do i=1,10 call doSomething() enddo   

       you'll be less likely to make mistakes like this:   

       for(i = 1; i <= 10; i++); doSomething();
nobody, May 05 2001
  

       Hey nobody. Get yourself some Delphi:   

       for i := 1 to 10 do
begin
Something;
Something else;
end;
  

       Or even VB
globaltourniquet, May 05 2001
  

       Or even lisp.   

       My lisp interpreter deals with runtime errors as follows:   

       Error: Can't evaluate <some expression> Evaluate instead: <read expression> Replace?(t/nil): <value that would have been returned if evaluate instead expression were where some expression was>   

       In the event that <some expression> is a list, it puts a <exp>-><value> entry for each element between Error: and Evaluate instead. This makes obvious situations where I've used an inappropriate number of arguments or inappropriate argument type, without maintaining a collection of error messages.
LoriZ, Sep 27 2001
  

       Debugging Java from (Sun) compiler errors is dead easy 99% of the time.
jabbers, Sep 27 2001
  

       This is not a compiler error but a command line error on my terminal that keeps me amused when things are slow...

<enter command> God
<error message> 'God' does not exist.
DrBob, Sep 27 2001
  

       See link, before anyone posts more...
egnor, Sep 27 2001
  

       Nobody: I have a similar idea.
juuitchan3, Jun 29 2002
  

       Halfbaked enough to have an acronym: DWIMNWIS.
bookworm, Jun 29 2002
  

       <error message> 'God' does not exist. - DrBob,   

       What would he have done if it had worked....   

       Semicolon added.
pashute, Feb 02 2016
  
      
[annotate]
  


 

back: main index

business  computer  culture  fashion  food  halfbakery  home  other  product  public  science  sport  vehicle