Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site cadre.UUCP
Path: utzoo!watmath!clyde!akgua!mcnc!idis!cadre!geb
From: geb@cadre.UUCP
Newsgroups: net.micro.cpm
Subject: turbo pascal
Message-ID: <172@cadre.UUCP>
Date: Fri, 2-Mar-84 17:38:54 EST
Article-I.D.: cadre.172
Posted: Fri Mar  2 17:38:54 1984
Date-Received: Sun, 4-Mar-84 03:29:00 EST
Organization: Decision Systems Lab., Univ. of Pgh.
Lines: 83

I have had a week to work with Turbo Pascal, and as promised,
here is an off-the-top-of-the-head review, not guaranteed to
be completely accurate.

The user interface is quite fine.  The editor uses WordStar
commands and is linked to the compiler so that the compiler
finds errors and dumps you into the editor at the semi-appropriate
point.  The commands are supposedly user changable, but when I
tried to make it emacs-compatible, it failed to be able to
reconfigure to some of the sequences.  I'm not sure why, probably
it is a bug.  

The compiler can compile from a disk or from memory, the memory
compile is about an order of magnitude or two faster than Apple
Pascal or MT+ (I am just guessing, I ran no benchmarks).  The
compiler also locates run-time errors and throws you back into
the statement that was executing when it bombed.  I'm not sure
how it does this, probably there is a linked library error handling
routine.  (I haven't read the whole manual, it may say somewhere).

Execution speed is also very fast, probably an order of magnitude
faster than UCSD on Apple II.  

The syntax is very close to UCSD.  A few differences that I noticed
in converting a longish program from UCSD:

UCSD:  reset(fileid,filename);
       get(fileid);
       recordvar:=fileid^;
       close(fileid,lock);

Turbo: assign(fileid,filename);
       reset(fileid);
       read(fileid,recordvar);
       close(fileid);

The write statement similarly replaces the put in UCSD and standard
Pascal.  The file handling is much faster than UCSD, especially
for text files where the difference between Apple and Turbo is
about 50 times in favor of Turbo.  One curiosity: Turbo does not
seem to be able to read numbers from a text file unless there is
only one number per line, it does not recognize the space as a
proper delimiter.  

It seems to have the same built-in string procedures as UCSD
Pascal, and one or two more in addition.

The PAGE routine is not implemented (they have a ClrScn instead,
but it won't page the LST: device).  The file type INTERACTIVE
in UCSD does not exist.  MARK and RELEASE are implemented apparently
the same as UCSD, but DISPOSE is not (in either version).  

Strings do not have a default length, as they do in UCSD, and
string is not a proper type for parameter lists: you must
first declare something like

TYPE WORKSTRING=STRING[80];

and then

PROCEDURE FOO(S:WORKSTRING);

a strange peculiarity (maybe I'm missing something that's in the
manual, but that was how I had to do it to make it work).

The manual is very good.  It is a paper-back book-like production.

The price of $49 is super, but doesn't include license to sell
compiled code: that is $100 more.  Since this is far below
the cost of Pascals that are (in my opinion) much more
brain-damaged, I don't consider that unreasonable, since most
Pascal users will not be selling their software (I may be wrong,
and still living in 1978 when most programmers were hobbyists).
I think C is still preferable for commerical software development.

One further petty annoyance: it leaves the IBM monochrome display
in high intensity mode when it signs off.  

In short, I am very positive about the package.  It far exceeds
JRT Pascal in value for price.  (Delivery time: 1 week).  I like
it better than MT+ or IBM Pascal or UCSD, and it is cheaper.