[comp.lang.pascal] Pascal variations

ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (07/26/90)

It would appear that there are, broadly speaking, two quite different
"worlds" of Pascal--the PC world and the "big computer" world.

The various Pascals in the PC world are mostly descended from
UCSD Pascal. You can recognise these by their support of separate
compilation with "unit" declarations, an "address-of" operator (and
a concomitant refusal to treat "@" as synonymous with "^"), type
casts by using the type name as a function, and a reasonable library
of string functions which, on the minus side, can't handle strings
longer than 255 characters, but, on the plus side, don't have any
trouble dealing with nulls.

In the DOS arena, Turbo Pascal is the best-known descendant
of UCSD; on the Macintosh, you've got three different compilers and
an interpreter, with a remarkably high degree of compatibility
between them all.

The other characteristic of the PC world is that most implementations
have never heard of ANSI/ISO standard Pascal.

The other "world" I mentioned, the "big computer" one, presents
a somewhat less unified picture. To their credit, most of them do
support the ANSI/ISO standard; some do no more than this, which
means you end up with a language that may be good for teaching
elementary programming but little else. The others go somewhat
further, and turn the implementation into a full-blown system
programming language. For an example of the latter, see DEC's
VAX Pascal compiler for VAX/VMS--any version from 2.0 onwards.

If it isn't obvious already, I'm a Pascal fan[atic] from way
back. I freely admit that "standard" Pascal is for wimps: my
favourite programming "language" is a mixture of whatever
suitably bastardised implementation of Pascal will run on the
machine I'm using, with a liberal dose of assembly language
(or even in-line machine code, for those compilers that support
it!) for handling the tricky bits. I know Pascal's I/O facilities
are crappy: I don't use them, I just go direct to whatever
functions the underlying OS provides. Similarly the heap
management doesn't often do what I want, so again I go to
the OS. Once you drop off this language baggage, the Pascal
run-time environment becomes very simple indeed--a very desirable
characteristic when you're trying to debug low-level code
like device drivers and the like.

Portability? What portability...?

Lawrence D'Oliveiro                       fone: +64-71-562-889
Computer Services Dept                     fax: +64-71-384-066
University of Waikato            electric mail: ldo@waikato.ac.nz
Hamilton, New Zealand    37^ 47' 26" S, 175^ 19' 7" E, GMT+12:00
To someone with a hammer and a screwdriver, every problem looks
like a nail with threads.