Original files version 4.4.7
This commit is contained in:
38
original/html/P/Pascal.html
Normal file
38
original/html/P/Pascal.html
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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> </td><th width="60%" align="center">P</th><td width="20%" align="right"> <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> </td><td width="20%" align="center"><a accesskey="u" href="../P.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="PascalCasing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">parse </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> PascalCasing</td></tr></table></div></body></html>
|
||||
Reference in New Issue
Block a user