Date : Fri, 10 Feb 1984 22:31:17 PST (Fri)
From : Michal Young <young@uci-750a>
Subject: Turbo Pascal-- first impressions
Turbo Pascal arrived yesterday. I'll share some first impressions now
and give a better review when I've used it for a while.
First-- it is very near standard. Get and Put are not implemented, the
IO primitives are instead Read and Write. The heap is really a stack
and storage is returned by using mark and release instead of dispose.
Goto may not leave a block (this may be a problem for error recovery).
Functions and procedures may not be passed as parameters. 'Packed' is
allowed but meaningless, and pack and unpack are not provided.
There are numerous extensions, but they are well thought out mostly and
do not screw up the syntax or semantics of the standard portion of the
language. For instance, initializers are provided by an extension to
the const declaration. Structures and arrays can be initialized this
way. Strings up to 255 characters are allowed.
A real attempt has been made to provide a programming environment rather
than just a compiler. Provided the program and pascal system both fit
in memory, you can edit a program, compile and run it, and edit again
to fix an error without leaving the environment. And no annoying waits
for overlays to load from disk, either-- compiler, editor, and program
somehow fit in memory all at once. When either a syntax error or a run-time
error is detected, you wind up back in the editor with the cursor at
the error. If you have to run your program from outside the pascal
system (because it is too big to fit with everything else in memory),
you can still find the source line in error. You reenter the pascal
system and tell it the program counter address, and it re-compiles
until it comes to that address. Pretty slick. There are a few
rough edges, but I haven't ever seen a compiler (not interpreter)
this nice to work with.
The documentation is good. 250+ pages in a paperback book, reasonably
well written but not outstanding. This same manual covers CP/M-80,
CP/M-86, and MS-DOS versions. Except for BIOS level diddling (which
turbo will allow), it looks to be portable.
Michal Young
young@uci