[net.lang.pascal] Answers About TURBO Pascal

phipps@fortune.UUCP (Clay Phipps) (02/28/84)

Some of the Borland [Borlund ?] International people gave a pitch
and demo at the January 24 meeting of the Graphics Special Interest Group
(SIG) of the Silicon Valley Computer Soc'y (SVCS).
To add to what Dick Binder has already written (in "net.micro"):

The lead man at Borlund, Philippe Kahn, was one of a handful of people 
in Wirth's early [first ?] Pascal class at ETH/Zuerich
(for comparison, at the same time, the PL/I classes were jam-packed).

The Turbo development system (compler, editor, menu system, &c.)
occupies 33KB of memory (on an IBM PC).
Compilation rate is >= 2000 lines/minute (in-memory compiles, I assume).
The compiler is one pass, including the 8086 native code generator.
The system is written in 8086 assembler.

Source code limited to <= 64KB;
object code limited to <= 64KB.
Heap can be > 64KB.

The development environment is very similar to that provided
by UCSD Pascal, in that whenever the compiler detects an error,
it drops the user into the editor, with the cursor placed
on the offending source code line at the point of the error.
Run-time errors are handled similarly,
but the error can only be narrowed down to the offending statement.
System doesn't retain or can't locate variable values in memory
after a genuine crash, but those are rare [I think].

Type equivalence rules are "named equivalence",
which (if done properly) conforms to the new ANSI/IEEE/ISO Pascal Standards.
Many compilers (all those based on the P-code compilers ?) 
use "structural equivalence".  Jensen & Wirth is ambiguous on this issue.

There is little support [in my opinion] for separate compilation,
although it is allowed.  Borlund emphasizes "includes and chaining"
[UCSD or Microsoft "units" would be much preferable].
The "include" feature is pretty vanilla [I can't find notes about it].
I believe [no notes] that the term "chaining" is used in the conventional way
to mean serial execution of programs, where the nth program explicitly 
calls the (n+1)th program immediately before it (nth) terminates.
Communication between "chained" routines is done through external variables
in shared (= overlaid) memory; can also absolutely address variables.
Chained routines are grabbed from disk as needed.

Price is $49.95, including their thick typeset paperback manual.
The ~5x7 paperback is the basis of their "software protection scheme",
because it is a real pain to XER*X a thick "perfect bound" [publishing term
for the way the average phone book is bound]  These are a pain to use
as manuals because they close all by themselves when set down on a desktop.
Those wishing to distribute object code produced by Turbo Pascal
are supposed to pay an additional one-time $100 license fee;
the fee covers an arbitrary number of programs.

A "Professional Turbo Pascal" is planned which supports overlays,
"real soon now".

See also recent reviews in *Interface Age* (by Alan Miller),
*MicroSystems*, and Jerry Pournelle's column in the February [March ?] Byte.

-- Clay Phipps

-- 
   {allegra,amd70,cbosgd,dsd,floyd,harpo,hpda,ihnp4,
    megatest,nsc,oliveb,sri-unix,twg,varian,VisiA,wdl1}
   !fortune!phipps