Pascal 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 l
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 ten years of improvement and could also stand as an
indictment of many other bondage-and-discipline languages. 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 almost entirely displaced (by C) from the
niches it had acquired in serious applications and systems
programming, but retains some popularity as a hobbyist language in
the MS-DOS and Macintosh worlds.
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 l
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 ten years of improvement and could also stand as an
indictment of many other bondage-and-discipline languages. 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 almost entirely displaced (by C) from the
niches it had acquired in serious applications and systems
programming, but retains some popularity as a hobbyist language in
the MS-DOS and Macintosh worlds.
Related:
- toy language n.
A language useful for instructional
purposes or as a proof-of-concept for some aspect of
computer-science theory,
but inadequate for general-purpose programming.... - toy language: n. A language useful for instructional purposes or
as a proof-of-concept for some aspect of computer-science theory,
but inadequate for general-purpose programming. {Bad... - MFTL /M-F-T-L/
[abbreviation: `My Favorite Toy Language']
1.
adj. Describes a talk on a programming language design... - bondage-and-discipline language n.
A language (such as
Pascal,
Ada, APL, or Prolog) that, though ostensibly general... - bondage-and-discipline language: A language (such as {{Pascal}},
{{Ada}}, APL, or Prolog) that, though ostensibly general... - BASIC /bay'-sic/ n.
A programming language,
originally designed for Dartmouth's experimental timesharing system
in the early 1960s,
which for many years was the leading cause of brain... - languages of choice n.
C, C++, LISP, and
Perl.
Nearly every hacker knows one of C or LISP, and most... - languages of choice: n. {C} and {LISP}. Nearly every
hacker knows one of these,
and most good ones are fluent in both. Smalltalk... - C n.
1. The third letter of the English alphabet.
2. ASCII 1000011. 3. The name of a programming...
From the same category:
- X /X/ n.
1. Used in various speech and writing
contexts (also in lowercase) in roughly its algebraic sense of
`unknown within a set defined by context' (compare N).
Thus, the... - pico- pref.
[SI: a quantifier
meaning * 10^-12]
Smaller than nano-
used in the same rather loose connotative way as... - bucky bits /buh'kee bits/ n.
1. obs. The bits produced by
the CONTROL and META shift keys on a SAIL keyboard (octal 200 and
400 respectively),
resulting in a 9-bit keyboard character set. ... - hungry puppy n.
Syn.
slopsucker... - emoticon /ee-moh'ti-kon/ n.
[common] An ASCII glyph
used to indicate an emotional state in email or news.
Although originally intended mostly as jokes, emoticons...
