From: David Thompson on
On 30 Jun 2010 21:10:06 -0000, Kulin Remailer <remailer(a)reece.net.au>
wrote:

> > I remember this when I was young. For some reason, students
> > get real hung up on compile time errors. It's like they are
> > horses bouncing around inside the gate, waiting for the door
> > to open.
>
> That was the questionable thinking behind a hilarious variant of PL/I
> called PL/C, Cornell University's PL/I compiler. Students just want their
> programs to compile and run, don't bother them with details like whether
> it's correct or not. Not a good assumption but...it was enough for somebody
> or some group of people to put out a pretty interesting compiler and get it
> out there in academia, circa late 70s early 80s timeframe.
>
Earlier. My school was using it in '75, and it wasn't treated as new.
Wikipedia says it was published on in '73, and on concrete things like
that I apply fewer grains of salt to them.

> The purpose of PL/C was to take almost any input and hammer it until it
> looked like a PL/I program, compile it, and generate an executable from
> it. It certainly may not do what you intended, but by george, the damn
> thing will almost always start running. What happens next...nobody knows.
>
In the days of 4 or 8 hour or even longer batch turnarounds, trying to
correct errors as PL/C did, and WATFIV for FORTRAN, was useful.
Yes, they didn't always guess right, but if you had made a few small
mistakes keypunching it might save you a day or more.

> It was hysterical to look closely at the diagnostics. I don't have a
> listing handy but I remember it would be something like
>
> Error on line ... (note the syntax error)
> PL/C uses .... (what PL/C replaced your erroneous statement with)
>
> If I had a dime for every cup of coffee that went out my nose working with
> that compiler! Actually it could have been a very interesting aspect of AI
> if they had intentions in that direction but I don't think it went any
> further and I haven't seen anything like it since.
>
My favorite was one time I was bored and gave it an empty source, and
it constructed a complete program; from vague memory something like:

* PROC statement missing inserted
* PROC label missing added
* END PROC statement missing added
* main PROC doesn't have OPTIONS added
* PROC contains no statement added
* running ...
* dummy statement executed, execution stopped

But compared to IBM's ZYX9942E Invalid construct somewhere near X
(especially for JCL) this was manna from heaven.