[comp.sys.atari.st] C Programming Languages...

Yonderboy@cup.portal.com (Christopher Lee Russell) (12/11/90)

I am very interested in programming in C on my new (used) Atari ST.  I am
curious what PD C compilers might be available and if they are any good.  I
got Lattice C version 3.03 with my Atari.. Is it possible to get an upgrade 
to this?  (Is the company still supporting Atari).. Also what are considered
the best C compilers that are not PD... Thanks ahead of time..
                ....Yonderboy@cup.portal.com

boyd@mailer.cc.fsu.edu (Mickey Boyd) (12/12/90)

In article <36774@cup.portal.com>, Yonderboy@cup.portal.com (Christopher Lee Russell) writes:
>I am very interested in programming in C on my new (used) Atari ST.  I am
>curious what PD C compilers might be available and if they are any good.  I
>got Lattice C version 3.03 with my Atari.. Is it possible to get an upgrade 
>to this?  (Is the company still supporting Atari).. Also what are considered
>the best C compilers that are not PD... Thanks ahead of time..
>                ....Yonderboy@cup.portal.com

I believe Lattice is still supported in Britain, and that they have come 
out with a recent upgrade that is quite nice.  I think it does not receive 
much attention in the US because of Mark Williams C and Laser C (both 
in-country products).  In the PD realm, the two biggies the I have heard
of are Sozobon and GCC.  GCC is superb, but you need at least 2 megs to 
compile large programs (4 would be a better idea).  It is worth it to 
ftp GCC just for the docs, lots of good info there.  Sozobon seems to be 
solid, but I believe there are some documented bugs.  Another compiler 
that I am impressed with is Prospero C.  This is another British product
that optionally supports the ANSI standard, and is rock solid.  The Prospero
company also produces both FORTRAN and Pascal, and one can cross-link the 
object files from any of the three with any of the three (does that make 
sense?).  All of the Prospero compilers have great documentation (>1000 pages),
and are well supported.  They also produce a source level debugger, and 
provide .ttp versions for use under a shell.  The programming environment is  
the same in all three compilers, which is nice if you have to switch between 
them.   

As always, this is IMHO.

 
-- 
             Mickey R. Boyd          |  "God is a comedian playing to an 
          FSU Computer Science       |      audience too afraid to laugh."
        Technical Support Group      |
      email:  boyd@fsucs.cs.fsu.edu  |                  - Voltaire 

sstreep@next.com (Sam Streeper) (12/12/90)

In article <36774@cup.portal.com> Yonderboy@cup.portal.com (Christopher Lee Russell) writes:
>I am very interested in programming in C on my new (used) Atari ST.  I am
>curious what PD C compilers might be available and if they are any good.  I
>got Lattice C version 3.03 with my Atari.. Is it possible to get an upgrade 
>to this?  (Is the company still supporting Atari).. Also what are considered
>the best C compilers that are not PD... Thanks ahead of time..
>                ....Yonderboy@cup.portal.com


Well, I'll sum up my experience with C compilers...

Megamax C (commercial, probably not available anymore)
	I used to use this compiler from a ramdisk on my old 520 ST.  My
impression is that this is the best C compiler for someone without a hard
disk because it will all fit on a ramdisk and it's very fast.  It has a
few bugs (not too bad, though) and some irritating quirks due to its one
pass nature, but that's the price you pay for a small, fast compiler...
Its not suitable for large projects because it only uses relative addressing,
but for small projects it can generate smaller, faster code than anything
else I've used.

Laser C (commercial)
	This is my compiler of choice. (I now have a mega 2 and hard disk,
not really necessary with this system, but any development is unnecessarily
painful without a hard disk)  This compiler is super fast, the source level
debugger is great, and it can produce great code if you know how to write
for it.  It also allows inline assembly with full access (by name) to all
variables, which I need.  Its a one pass compiler which means its more
finicky about the code it will accept than most 2-3 pass compilers; porting
unix code is almost always a pain.

Mark Williams C (commercial)
	A good solid compiler, but too slow for my patience level; a hard
drive is all but required.  Accepts more C flavors than Laser C, much
better for porting (non-ansi) unix code. Both have
good documentation.  The assembler is painfully non-standard. Generated code
is bigger than Laser C.

Prospero C (commercial)
	The only Ansi compiler in this group.  This compiler works well,
but I don't really like it.  The linker is not smart, so all executables
tend to be quite large.  This is the only compiler listed that will not
let you change the run-time start up module, which I think is unacceptable
(to me, anyway)  Some of the Gem bindings have different names than the
other compilers, which makes porting Atari programs harder than necessary.
It also compiles fairly slowly, even on a hard disk.  On the plus side,
this compiler also works together with the prospero assembler, fortran,
and pascal compilers (all of which are sold separately).  The docs are good,
the support is actually quite good.

Sozobon C (public domain or freeware)
	A good compiler, generates good code.  When you have trouble, though,
you're in for a fight because this compiler has the worst documentation in
the group.  What do you expect for the price?  I think language documentation
is very necessary.  Once you figure out the compiler and your libraries of
choice, though, this product works well.  Comes with source code, which is
great and very interesting.  If your time is worth very much, I would get
a commercial compiler with documentation and a source level debugger...


So there's my opinions, for what they're worth.  I haven't used Turbo C,
Lattice C, Aztec (manx) C, or the atari GNU C compiler, so other's might
wish to add something on these.  Note that my emphasis has always been
on writing code for the Atari, so Laser C is my choice.  Anyone porting
from a unix box would almost certainly find another compiler better...

-sam (sam_s@NeXT.com)
"life is what happens to you while you're busy making other plans" -JL