[net.micro.pc] Lattice C vs Microsoft C?

olson@rochester.UUCP (Thomas J. Olson) (08/01/85)

  Finally going to break down & shell out some substantial bucks for a
C compiler.  Lattice and Microsoft look like the best bets in my price
range.  I understand that they are somewhat related.
  Can anyone advise me on differences?  quality of support?  Anyone have
strong prejudices for or against either of these?
Thanks in advance, 
Tom Olson

slerner@sesame.UUCP (Simcha-Yitzchak Lerner) (08/02/85)

> 
>   Finally going to break down & shell out some substantial bucks for a
> C compiler.  Lattice and Microsoft look like the best bets in my price
> range.  I understand that they are somewhat related.
>   Can anyone advise me on differences?  quality of support?  Anyone have
> strong prejudices for or against either of these?
> Thanks in advance, 
> Tom Olson

Up until the most recent rel (v3.0), microsoft C was a hack of lattice C.
This is no longer the case.  For whatever it's worth, Lotus evaluated
the new microsoft C (vs latest lattice C) and is decided that the
microsoft C (again, ver 3.0) is so much better than Latice that it is
worth the trouble to convert all of their sources.  It seems that the
microsoft generates smaller, faster code, has better source file
checking (you don't need a lint if you set proper option).  Other
big advantages, microsoft supports register variables (up to 2),
and allows explicit far/near decarations on variables/functions to
override the default of current memory model.  (In other words, you 
could build a pgm in small memory model, with a few huge structures/
arrays being addressed with long pointers.)  
Microsoft seems to have better support of different processors (if
you know you will have a 80186 or '286 you can tell the compiler
to take advantage).  Floating point is very versitile, can be
std (use '87 if present, else emulate), '87 required, fast emulator
(less acurate), inline emulator, or inline '87.  (If I am a little
off describing this, please no flames.  The microsoft product comes
with 2 BIG 3-ring binders full of documentation, and I don't have
it all memorized yet :-) )

Also, there seems to still be more bugs in the code generated by
latice (they still play with SP/BP before SS -- leaving a period
of vulnerability if an interupt should occure) than the microsoft
product.

Microsoft allows a few different types of optimizations, for size,
for speed, aliasing...

This could go on forever, so in summary:
My recomendation is to go with Microsoft.

-- 
Opinions expressed are public domain, and do not belong to Lotus
Development Corp.
----------------------------------------------------------------

Simcha-Yitzchak Lerner

              {genrad|ihnp4|ima}!wjh12!talcott!sesame!slerner
                      {cbosgd|harvard}!talcott!sesame!slerner
                                slerner%sesame@harvard.ARPA 

grayson@uiucuxc.Uiuc.ARPA (08/04/85)

I have not used the Lattice C compiler, but the Microsoft version 3.00 is
very good.  I've had it crash ignobly three times, but was able to get
around the problem by rearranging the code.  The subroutine library is
remarkably complete and vax-unix-like.  It does not have huge memory model
support, i.e. arrays are < 64K.  Int's are 16 bit, so malloc max is 64K,
too.

	It is not necessary for the programmer to remember at link time
the memory model used at compile time!

	uucp:	{ihnp4,pur-ee}!uiucdcs!uiucuxc!grayson
		Dan Grayson, Math Dept, Univ of Ill, Urbana 61801

peter@kitty.UUCP (Peter DaSilva) (08/06/85)

I use Lattice C. It's slower than the Ritchie compiler (the old UNIX compiler),
but is otherwise good. It is EXTREMELY compatible with Ritchie, and supports
a good percentage of the UNIX library. The Microsoft compiler used to be
identical with the Lattice compiler, but they now have a new version. I would
wait 6 months for them to finish shaking the bugs out of it. If you need it
now, go for Lattice.