Survey of C Compilers

Clayton Cramer cramer at kontron.UUCP
Tue Jul 22 03:08:53 AEST 1986


I'm not really disagreeing with Brad, but I do have a few comments about
our experiences here at Kontron with the Microsoft C compiler.

> 
> I have used several C compilers in my projects and here are the summaries:
> 
> 1) Microsoft C
> 	The winner:
> 		- It comes from a large firm dedicated to languages
> 		- The only compiler to take my 30,000 line program and have
> 		  it run essentially right away.

Early on in our project, we move 12,000 lines of source from Berkeley 4.2
UNIX on a VAX to Microsoft C under PC-DOS.  It only took six hours to find
all the differences between PC-DOS & UNIX, and to find incompatible chunks
of C.  (The incompatibilities were just about all our fault.)

> 		- Support has been reasonable for me, but I'm a beta tester.

Support has been poor to useless for us.  The questions we ask usually get
pretty useless answers, because they are usually telling us to do things
that the manuals warned about.

> 		- Ansi C style argument type checking.

Nice feature, but incompatible with the Berkeley 4.2 C compiler.  (I use 
this feature at home a lot, though.)

> Brad Templeton, Looking Glass Software Ltd. - Waterloo, Ontario 519/884-7473

Additionally, we have run into a few maddening bugs:

1. A parameter is declared as a register pointer to a structure -- it
generated spurious code.  (No, I don't consider register declarations for
a 8086 family machine sensible -- the declaration exists for historical
reasons.)

2. If you scanf a floating point variable, the linker will not grab the
8087 emulator unless you have AT LEAST one floating point arithmetic
operation in the program.  This is documented (sort of), but I'm a little
disappointed that the compiler doesn't generate the right floating point
emulator library references because of the float declarations without
an float operation.

3. Under some ill-defined conditions, the following parameter declarations
are not equivalent:

	char	*String;

	char	String[];

Overall, I'm very pleased with the Microsoft C V3.0 compiler.  The
number and type of bugs are completely acceptable for a compiler.

Clayton E. Cramer



More information about the Comp.lang.c mailing list