39 lines
4.6 KiB
HTML
39 lines
4.6 KiB
HTML
|
|
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
|
|||
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pascal</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../P.html" title="P"/><link rel="previous" href="parse.html" title="parse"/><link rel="next" href="PascalCasing.html" title="PascalCasing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pascal</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parse.html">Prev</a><EFBFBD></td><th width="60%" align="center">P</th><td width="20%" align="right"><EFBFBD><a accesskey="n" href="PascalCasing.html">Next</a></td></tr></table><hr/></div><dt><a id="Pascal"/><dt xmlns="" id="Pascal"><b>Pascal</b>: <span xmlns="http://www.w3.org/1999/xhtml" class="grammar">n.</span></dt></dt><dd><p> 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
|
|||
|
|
<a href="../B/bondage-and-discipline-language.html"><i class="glossterm">bondage-and-discipline language</i></a>). 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
|
|||
|
|
<a href="../K/K-ampersand-R.html"><i class="glossterm">K&R</i></a> fame) entitled
|
|||
|
|
<i class="citetitle">Why Pascal is Not My Favorite Programming Language</i>,
|
|||
|
|
which was turned down by the technical journals but circulated widely via
|
|||
|
|
photocopies. It was eventually published in <i class="citetitle">Comparing and
|
|||
|
|
Assessing Programming Languages</i>, 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 <a href="http://www.lysator.liu.se/c/bwk-on-pascal.html" target="_top">http://www.lysator.liu.se/c/bwk-on-pascal.html</a>.)
|
|||
|
|
At the end of a summary of the case against Pascal, Kernighan wrote:</p><div class="blockquote"><blockquote class="blockquote"><p>9. There is no escape</p><p>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 “<span class="quote">standard
|
|||
|
|
procedures</span>”. The language is closed.</p><p>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.</p><p>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.</p></blockquote></div><p>Pascal has since been entirely displaced (mainly by
|
|||
|
|
<a href="../C/C.html"><i class="glossterm">C</i></a>) from the niches it had acquired in serious
|
|||
|
|
applications and systems programming, and from its role as a teaching
|
|||
|
|
language by Java.</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parse.html">Prev</a><EFBFBD></td><td width="20%" align="center"><a accesskey="u" href="../P.html">Up</a></td><td width="40%" align="right"><EFBFBD><a accesskey="n" href="PascalCasing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">parse<EFBFBD></td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"><EFBFBD>PascalCasing</td></tr></table></div></body></html>
|