Rob Pike <robpike@gmail.com> wrote:
> The Cornell PL/I compiler, PL/C, ran on the IBM 360 so of course used batch
> input. It tried automatically to keep things running after a parsing error
> by inserting some token - semicolon, parenthesis, whatever seemed best -
> and continuing to parse, in order to maximize the amount of input that
> could be parsed before giving up. At least, that's what I took the
> motivation to be. It rarely succeeded in fixing the actual problem, despite
> PL/I being plastered with semicolons, but it did tend to ferret out more
> errors per run. I found the tactic helpful.
>
> -rob
Gawk used to do this, until people started fuzzing it, causing cascading
errors and eventually core dumps. Now the first syntax error is fatal.
It got to the point where I added this text to the manual:
In recent years, people have been running "fuzzers" to generate
invalid awk programs in order to find and report (so-called)
bugs in gawk.
In general, such reports are not of much practical use. The
programs they create are not realistic and the bugs found are
generally from some kind of memory corruption that is fatal
anyway.
So, if you want to run a fuzzer against gawk and report the
results, you may do so, but be aware that such reports don’t
carry the same weight as reports of real bugs do.
(Yeah, I've just changed the subject, feel free to stay on topic. :-)