On Tuesday, October 15, 2013 4:28:57 AM UTC+11, glen herrmannsfeldt wrote: >
> Seems to me, though, that it was too early.
I do not think so. It came at the right time.
It was designed for scientific and commercial uses
at a time when the main languages addressed either scientific
uses (e.g., FORTRAN) and commercial uses (e.g., COBOL).
There was a need for general purpose language that would do both,
since not every task could be categorised to be only scienftific
or only commercial.
It was a larger language than Fortran
> Many PL/I features from the 1960's are now added in Fortran 2003 and 2008.
> Computers are fast enough now that the overhead (time and memory used)
> doesn't bother us, but they did to many people at the time.
> IBM had hoped to replace Fortran (and maybe COBOL) with PL/I.
> To not write Fortran compilers for S/360. But it took longer to write the
> PL/I compiler.
Longer than what?
> (PL/I (F) is a lot bigger than Fortran G and H combined.)
Naturally, it was bigger on account of the larger language that
it implemented, compared to the small language that FORTRAN then offered.
> At the time (and even sometime later) there was much discussion about a Fortran V. IBM decided that it wasn't possible to keep compatability with Fortran IV, and also do what they wanted in a new language. (Note, for example, that the only arrays in PL/I are like Fortran assumed shape. There is nothing like assumed size.)
Yet IBM's PL/I in the 1960s could call FORTRAN procedures and pass arrays
a la assumed size.
However, please don't suggest that FORTRAN'S assumed size is something
that should be promoted as a desirable feature. Fortran's assumed size
(and "adjustable dimensions") were responsible for many programming errors.
> The whole language was (pretty much) designed before the first compiler was
> written. The result was a more logical, but not necessarily efficient
> language. (PL/I, for example, allows nested internal procedures.
As does ALGOL. And now Fortran.
> If I remember, even F2008 doesn't do that.) Features are more self consistent, even though the cost might be high. PL/I has the RECURSIVE attribute, so the compiler doesn't need to generate recursive code without it, but as far as I know all compilers always generate reentrant code. Do any Fortran compilers generate non-reentrant code when no RECURSIVE attribute is used?
> The delay in getting the first PL/I compiler out,
IBM's PL/I-F compiler was out in 1966, along with the IBM 360.
(I don't have a date for the D compiler.)
> and even more until it was running fast enough, and generating fast enough
> code, left room for Fortran.
For ordinary work, IBM's PL/I was as fast as their FORTRAN compilers.
In terms of productivity, IBM's PL/I was far superior than their FORTRANs
on account of PL/I's run-time error handling and compile-time diagnostics.