[net.micro.apple] PROMAL for the Apple //e

hall@ittral.UUCP (Doug Hall) (07/12/85)

I have recently had the opportunity to use PROMAL, a compiler from
Systems Management Associates, on my Apple //e. What follows is not a
detailed review, but a brief summary of PROMAL's features.

First of all, PROMAL (the Apple version) will only run on an Apple //e
or Apple //c. It requires the 80 column card and extra memory. PROMAL
runs under ProDOS, but it has its own environment for editing,
compiling, and running programs. Standalone PROMAL applications to run
under ProDOS can be developed, however. This requires the developers
version of the system, and costs a bit more.

PROMAL compiles down to an intermediate code which is interpreted at
runtime. The executive is quite fast, however, and PROMAL programs
consistantly run faster than Apple (UCSD) Pascal, which is also
interpreted. In the benchmarks I've run, only Aztec C runs faster than
PROMAL (3-5 times faster, but that's native code). Turbo Pascal is
also faster, but that's not a fair comparison since Turbo runs on a
Z-80 under CP/M. At any rate, PROMAL beats the heck out of BASIC, even
compiled basic.

The PROMAL editor is pretty good. It is a screen oriented editor which
is basically modeless, and has most of the usual text editor features
as well as handy programming features (auto-indent, etc). Function
keys are implemented by using the open-apple key and any number (0-9).
Each function key may also be reasssigned.

The compiler is fast and generates small code. It can compile from
memory, so you can leave the editor and compile without any disk
activity. PROMAL uses the 64K extension as a "workspace" similar to a
ramdisk. Include files and chaining are supported, but not separate
compilation. There is no linker or assembler.

PROMAL looks like a cross between C and Pascal. It has byte, integer,
word (unsigned int), and real data types. It has arrays, but no
structures or unions (records or sets for Pascal fans). It has all the
major constructs such as for, while, repeat, case. It supports strings
a la C (null terminated) and, like C, depends on an I/O library for
many functions. Formatted i/o is very similar to the C implementation.

The programming environment is sort of like a shell, and supports I/O
redirection and a history feature with command line editing. As in the
editor, function keys are implemented.

All in all, it's pretty good. It's easy to use, easy to learn, and
doesn't take half an hour to compile like some other compilers.

I'll be glad to answer any other questions by mail. Hope this was of
some help to someone.

Doug Hall
ITT Telecom, Raleigh, NC
decvax!ittvax!ittral!hall

paulb@ttidcc.UUCP (Paul Blumstein) (07/17/85)

*** Don't Replace This Line \! ***

Thorough Review!  However, one may ask themselves why they would use a
language that is peculiar to a machine and not used by a large community.
You will not be able to transport programs, take your knowledge elsewhere,
and will have the constant fear of PROMAL disappearing with the other
myriads of computer languages.

	Paul Blumstein
	philabs!ttidca!paulb