[comp.lang.misc] Revisionism vs Pascal

rcd@ico.ISC.COM (Dick Dunn) (07/09/88)

Some recent comments about Pascal's early history stray pretty far from
fact.  Let me see if I can kill off some folklore.

> It's worth remembering that Wirth never meant the language to be *used*.

Emphatically *not* true!  In the *original* report on the language, Wirth
cites its intended usage "both as a convenient basis to teach programming
and as an efficient tool to write large programs..."

> It was supposed to be a language for *thinking* about computing, not
> implementing systems...

This might have been applied to Algol 60 (tenuously perhaps, but not
incorrectly).  It's just plain wrong for Pascal.  See above, but also note
that the first Pascal compiler that was distributed outside ETH was
written in Pascal.  Actually, Pascal is best viewed as the antithesis of a
gedanken language; it is an attempt to validate in practice the theoretical
work (primarily of Wirth and Hoare) of that period.

>...I've got early 70s Pascal books that use dialects
> of Pascal that were never even implemented, and never meant to be.

Doubtful, unless somebody else went off and invented a dialect he didn't
implement!  Wirth's *first* version of Pascal, as defined in the original
report on the language, was implemented and *widely* distributed.  There
were two revisions of the language.  All three (original and two
revisions) had corresponding implementations which came from ETH.  In
other words:  If Wirth wrote about it, it got implemented.

(If you think otherwise, I'd like to know some characteristics of the
"dialects of Pascal" that weren't implemented.)

There was a bootstrapping process to get Pascal going--obviously the first
whole compiler wasn't written in Pascal.  Wirth describes the process in an
early article--I think it was in SP&E.  But he is careful to make the points
that (a) he wanted to get a real compiler for Pascal very early on, and (b)
it turned out that the easiest way to get there was a fast bootstrap, to
get a minimal compiler which would let the rest of the work be done *in
Pascal*.

The earliest compiler that I know of in the US appeared here around 71 or
72.  It compiled the language from the original report--this language can
be identified by the "class" mechanism and dynamic allocation with the
standard procedure "alloc", plus having "alfa" as a standard *scalar* type.
The compiler for this first version of Pascal was written in Pascal--the
compiler itself was about 4200 lines of Pascal, with an assembly-language
support package of about 3000 lines (for the CDC 6000 series).

As for why Pascal gained popularity early on, it's easy: teaching!  Wirth
is an "academic", and the first implementation of the language was on a
machine widely available (then) at large universities.  The compiler was
efficient and reliable.  The other languages available on the machine were
a good FORTRAN (but a poor language for teaching), an execrable Algol 60
(with a compiler of nominally five passes, if it didn't bomb out
sooner!:-), an orphan COBOL (after all, the 6x00's were scientific
machines), and an assortment of minor unsupported languages.  Imagine the
situation if you're trying to teach a computer science course that would
require some programming with sophisticated data structures (i.e., some-
thing other than arrays:-) and/or interesting control structures (other
than counted loops and non-recursive procedure calls).  Pascal is the ONLY
sensible choice...and lo, not only does the compiler work but the code it
generates is fast.
-- 
Dick Dunn      UUCP: {ncar,nbires}!ico!rcd           (303)449-2870
   ...Are you making this up as you go along?

eugene@pioneer.arc.nasa.gov.arpa (Eugene N. Miya) (07/10/88)

Well, this is generally right.  I know other Pascal implementers
from that time read this group and they can comment.  I will just say
that if any language lawyers are interested, I still have copies of
Pascal News from Andy Mickle back to No. 4. (I left at 18).

Also note that Niklaus left ALGOL 68 development
just at Thompson and Ritchie came from Multics.

Another gross generalization from

--eugene miya, NASA Ames Research Center, eugene@aurora.arc.nasa.gov
  resident cynic at the Rock of Ages Home for Retired Hackers:
  "Mailers?! HA!", "If my mail does not reach you, please accept my apology."
  {uunet,hplabs,ncar,decwrl,allegra,tektronix}!ames!aurora!eugene
  "Send mail, avoid follow-ups.  If enough, I'll summarize."

lear@net.bio.net (Eliot Lear) (07/11/88)

Just out of curiosity, does anybody know of any implementation of
Pascal that does NOT contain extensions either the I/O system or
to the O.S.?