Files
JargonFile/original/html/P/Pascal.html

39 lines
4.6 KiB
HTML
Raw Normal View History

2014-03-27 18:54:56 +00:00
<?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&amp;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 &#8220;<span class="quote">standard
procedures</span>&#8221;. 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>