[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pascal system



In article <1149562618.439863.103970@i40g2000cwc.googlegroups.com>,
 "mdj" <mdj.mdj@gmail.com> wrote:

> Paul Schlyter wrote:
> 
> > Unfortunately, Apple Pascal didn't run on a standard Apple II, sans
> > "language card"....
> 
> There was a 48k version of the runtime up to 1.1. You couldn't run the
> development environment without a language card though.
> [...]

I seem to recall using the 1.2 48K runtime for distribution, and Pascal 
tech note #10 implies that there was a 1.3 runtime for 64 & 128K:

http://web.pdx.edu/~heiss/technotes/pasc/tn.pasc.10.html

> > Anyway, I remembered one actual advantage of Apple Pascal compared to
> > TP (versions 1 to 3): the ability to create modules (called "units" in
> > UCSD Pascal jargon - units was a UCSD Pascal extension which was
> > absent in the Pascal standard), i.e. separately compiled pieces of
> > code.  Early versions of TP required the whole program in one single
> > source file available at compilation time.  The limitations due to
> > this was in TP overcome by $include statements (which allowed the
> > source to be split up into several files, even though it logically
> > still was one file) and overlays (if the generated object code became
> > too large).  And of course TP was so much faster at compiling than
> > Apple Pascal that usuallyTP was still faster even though it had to
> > recompile all source code for each new compile.
> 
> Yes, and units implemented true shared libraries as well, which saved a
> lot of disk space in a big application. Having UNITS link automatically
> at runtime was a big advantage, and once you got used to it, the
> programs you compiled ended up being fairly small.

The UCSD UNIT model for separate compilation was one of the first to 
enforce a rigorous contract between interface and implementation. In 
particular, it used Pascal's type checking to verify subroutine 
parameters. The original Mac toolbox interfaces were created using this 
model, and we take it for granted now for large APIs.

-- 
John Matthews
jmatthews at wright dot edu
www dot wright dot edu/~john.matthews/