2014-04-26 10:52:28 -04:00
|
|
|
Pascal
|
|
|
|
|
2014-04-26 11:54:15 -04:00
|
|
|
n. An Algol-descended language designed by Niklaus Wirth on the CDC 6600
|
|
|
|
around 1967--68 as an instructional tool for elementary programming. This
|
|
|
|
language, designed primarily to keep students from shooting themselves in
|
|
|
|
the foot and thus extremely restrictive from a general-purpose-programming
|
|
|
|
point of view, was later promoted as a general-purpose tool and, in fact,
|
|
|
|
became the ancestor of a large family of languages including Modula-2 and
|
|
|
|
Ada (see also bondage-and-discipline language ). The hackish point of view
|
|
|
|
on Pascal was probably best summed up by a devastating (and, in its deadpan
|
|
|
|
way, screamingly funny) 1981 paper by Brian Kernighan (of K R fame) entitled
|
|
|
|
Why Pascal is Not My Favorite Programming Language , which was turned down
|
|
|
|
by the technical journals but circulated widely via photocopies. It was
|
|
|
|
eventually published in Comparing and Assessing Programming Languages ,
|
|
|
|
edited by Alan Feuer and Narain Gehani (Prentice-Hall, 1984). Part of his
|
|
|
|
discussion is worth repeating here, because its criticisms are still
|
|
|
|
apposite to Pascal itself after many years of improvement and could also
|
|
|
|
stand as an indictment of many other bondage-and-discipline languages. (The
|
|
|
|
entire essay is available at http://www.lysator.liu.se/c/bwk-on-pascal.html.
|
|
|
|
) At the end of a summary of the case against Pascal, Kernighan wrote: 9.
|
|
|
|
There is no escape This last point is perhaps the most important. The
|
|
|
|
language is inadequate but circumscribed, because there is no way to escape
|
|
|
|
its limitations. There are no casts to disable the type-checking when
|
|
|
|
necessary. There is no way to replace the defective run-time environment
|
|
|
|
with a sensible one, unless one controls the compiler that defines the
|
|
|
|
standard procedures. The language is closed. People who use Pascal for
|
|
|
|
serious programming fall into a fatal trap. Because the language is
|
|
|
|
impotent, it must be extended. But each group extends Pascal in its own
|
|
|
|
direction, to make it look like whatever language they really want.
|
|
|
|
Extensions for separate compilation, FORTRAN-like COMMON, string data types,
|
|
|
|
internal static variables, initialization, octal numbers, bit operators,
|
|
|
|
etc., all add to the utility of the language for one group but destroy its
|
|
|
|
portability to others. I feel that it is a mistake to use Pascal for
|
|
|
|
anything much beyond its original target. In its pure form, Pascal is a toy
|
|
|
|
language, suitable for teaching but not for real programming. Pascal has
|
|
|
|
since been entirely displaced (mainly by C ) from the niches it had acquired
|
|
|
|
in serious applications and systems programming, and from its role as a
|
|
|
|
teaching language by Java.
|
|
|
|
|