Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!mimsy!chris
From: chris@mimsy.UUCP (Chris Torek)
Newsgroups: comp.lang.misc
Subject: Re: Useful software in Pascal
Message-ID: <4944@mimsy.UUCP>
Date: Thu, 8-Jan-87 10:59:19 EST
Article-I.D.: mimsy.4944
Posted: Thu Jan  8 10:59:19 1987
Date-Received: Thu, 8-Jan-87 23:52:33 EST
References: <3226@bu-cs.BU.EDU> <1635@enea.UUCP>
Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742
Lines: 25

In article <1635@enea.UUCP> sommar@enea.UUCP (Erland Sommarskog) writes:
>As we all know, Pascal was never ment for "productive" programming,
>just for education. On the other hand, the most compilers do offer
>extentions for separate compilation, string handling etc. Of course
>these extentions doesn't make Pascal very portable. By the way, as
>far as I know the most of TeX is written in standard Pascal, but
>you perhaps would call that useless software?

Actually, TeX is written in WEB, which provides much of what is
needed to make Pascal usable.  TeX makes extensive use of a default
case, which is not standard (and indeed not available in Berkeley
Pascal: people using the Berkeley Pascal compiler on Vaxen must
first run the Pascal output from Tangle through `pxp -O', at a cost
of 15% slower execution than with a modified compiler).  TeX also
uses a handful of extensions for `real I/O', all coded as WEB macros
so that the system-specific version may be inserted in line in the
many places it is needed.  Interestingly, TeX does NOT use `new'
and `dispose', probably because these are not properly implemented
in many `standard' and even `extended' Pascals!

The one major extension WEB cannot provide is separate compilation,
and I sorely miss it whenever I work with the TeX sources.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
UUCP:	seismo!mimsy!chris	ARPA/CSNet:	chris@mimsy.umd.edu