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.