[comp.os.msdos.programmer] Which C compiler ?

barthe@hpuxa.ircc.ohio-state.edu (Olivier Barthelemy) (07/10/90)

Hi.

I am looking for a good C compiler, among the mainstream ones : Quick C,
Turbo C or Turbo C ++. Can anyone advise me on which to buy, or direct
me to benchmarks.

I want to use C to write small file manipulation utilities (stripping/changing control codes...), and for educational purposes. I know that C++ has objects,  
and I have a vague idea of what objects are. Is it worth the extra cost, the
few bugs, and the slower performance of TC++ compared to TC 2.0 ?

Do these compiler come with good libraries ? to what extent is TC++ compatible
with TC 2.0 ? Is anyone better for Windows programming ?

Thanks for your help

Olivier Barthelemy		barthe@hpuxa.ircc.ohio-state.edu
				(614)-294-3302

880716a@aucs.uucp (Dave Astels) (07/10/90)

In article <2622@nisca.ircc.ohio-state.edu> barthe@hpuxa.ircc.ohio-state.edu (Olivier Barthelemy) writes:
>I am looking for a good C compiler, among the mainstream ones : Quick C,
>Turbo C or Turbo C ++. Can anyone advise me on which to buy, or direct
>me to benchmarks.

By all means get a C++ system.  I haven't used TC++ (note: no space) but the
environment looks good.  The profiler sound promising too.  Allas no Windows
support.  I have Zortech C++.  I've only used it for a few months, but it
seems great.  I am eagerly awaiting my upgrade to version 2.1, which promises
to be even better.  The debugger is wonderful, and there is a C compiler
thrown in (common optimiser & back end for both C & C++).  The optimiser
looks to be very capable.  I comes with the standard ANSI C library, as well
as some extras (EMM support, both as library routines and a special pointer
type; MS mouse support functions; a set of curses-like functions; and a fairly
complete graphics library).  I was dissappointed with the editor/environment
in version 2.0, but 2.1 is supposed to greatly improve this.  All the
pieces works from the command line as well, so I generally use uEmacs to
edit.

>I want to use C to write small file manipulation utilities 
> (stripping/changing control codes...),

Why not use SED or AWK (there are MS-DOS versions, including ones from the
GNU project)

>and for educational purposes. I know that C++ has objects,  
>and I have a vague idea of what objects are. Is it worth the extra cost, the
>few bugs, and the slower performance of TC++ compared to TC 2.0 ?

The extra cost should be insignificant.
Everything has bugs.  Note that Zortech's product has been around for a while.
C++ isn't much slower that C (if any, depending on the code).

>Do these compiler come with good libraries ? 

As I said above, Zortech comes with a fairly complete library.

>Is anyone better for Windows programming ?

Zortech supports Windows development.

>Thanks for your help

No problem.



-- 
"I liked him better before he died" - McCoy, ST V
===============================================================================
Dave Astels            |  Internet: 880716a@AcadiaU.CA
PO Box 835, Wolfville, |  Bitnet:   880716a@Acadia

chrisw@dell.dell.com (Chris Waldren) (07/12/90)

I am about to write a device driver.  I was wondering if there is any way to 
do this from C perferable Microsoft C.  I'd appreciate any suggestions.

Thanks in advance

flo@doitcr.doit.sub.org (Florian Reichl) (07/16/90)

There was a pretty good and complete review of C compilers in
Computer Language of May '90. Their conclusion was that
Microsoft C 6.0 was the best optimizing compiler of the 14 tested.
Performance of a compiled real world application was best when compiled
by MSC 6.0 using the compact memory model and best when compile by
Watcom C 7.0 using the large memory model with MSC 6.0 only needing
1% more execution time.

Hope this helps you!		-- Florian

thj@mtcchi.uucp (XT0221000-Tom Hjellming(ZG90210)0000) (07/16/90)

chrisw@dell.dell.com (Chris Waldren) writes:

>I am about to write a device driver.  I was wondering if there is any way to 
>do this from C perferable Microsoft C.  I'd appreciate any suggestions.

>Thanks in advance

Yes.  I have done a couple of device drivers in C (MS-C even).  You will need
some assembly language glue though.  Basically, the assembly language glue
will need to handle the driver header declaration stuff and the Strategy
and Interrupt call entry points.  Be sure to setup the proper C environment
in addition to switching to a private stack.  

The final executable will need to be in binary or .SYS format.  Run EXE2BIN
to generate the final executable.  EXE2BIN is pretty picky about segment
fixups and things like that.  You'll have to muck with the segment definitions
to get them to fit in the same group.  Also, be very careful about using any
C run-time functions.  Some of them cause the C startup code to be dragged
in which will totally screw up your segment ordering and cause EXE2BIN to
fail.  In general, I found it easier to re-write the C run-time functions
than to try to use the ones with the Compiler.

A while ago there was a public domain/shareware package floating around the
BBSs that was written for Lattice C.  I wrote a similar package for MS-C.
It handles pretty much all the assembler stuff for you.  Your C portion just
supplies functions like Init, Read, Write, IOCtl, etc that is linked with the
assembler stuff.  I think I still have it at home.  Send me e-mail if you are
interested.

Hope this helps.


Tom Hjellming
Software Consultant
Analysts International Corp (AiC)
Schaumburg, IL
...!uunet!tellab5!mtcchi!thj

rja@edison.cho.ge.com (rja) (07/20/90)

With trivial differences in source code style, each of
the compilers tested by Computer Langauge could be shown
to be "more optimising".  The real conclusion was that
there aren't significant differences in the optimisers
between modern MSDOS compilers whether Watcom, Borland,
Microsoft, ...

For my own part, I've heard enough bad reports about 
Microsoft C 6.0 that I won't use it.  I've found Borlands
TC 2.0 and TC++ 1.0 to work fine in production use and
the original reason I went to TC 2.0 was disgust with
MS C 5.1.   A lot of people seem happy with Watcom and
Zortech as well.

I'll take another look if/when MS C 6.1 or MS C++ appear
(neither is an announced product, but you get my drift :-).