[comp.os.msdos.programmer] C & Pascal compilers: recommendations desired

dhosek@frigga.claremont.edu (Don Hosek) (12/14/90)

Could anyone recommend a good C compiler and a good Pascal
compiler? These will be used on fairly large-scale projects
(e.g., TeX, MF and their utilities are good examples of the
magnitude of the things which I'll be working on. I'll be doing
my work on a 386 MSDOS machine.

-dh

jdb@reef.cis.ufl.edu (Brian K. W. Hook) (12/15/90)

I'm pretty sure that the unanimous response will be to use either Turbo C
2.0 or Turbo C++ 1.01, since both are fast and VERY easy to use.  If you
want to do a program in 386 protected mode, then Watcom, Metaware, and
Intel make protected mode C compilers.  For pascal, Turbo Pascal 6.0 looks
like the hot ticket -- an interface builder is part of the application
program now.  Plus you get access to utils such as Turbo Drive (extended
memory compiler -- runs out of extended memroy), Turbo Assembler (more
masm compatible than masm), Turbo Profiler (profiles function speeds and
bottlencks), Turbo Editor (AWESOME editing environment), and Turbo Debugger
(best debugger on the market, competed only by MultiScope).  The only thing
that I can think of as not good about Borland products is that they are not
Windows 3.0 compatible.

ajayshah@alhena.usc.edu (Ajay Shah) (12/15/90)

In article <25923@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>I'm pretty sure that the unanimous response will be to use either Turbo C
>2.0 or Turbo C++ 1.01, since both are fast and VERY easy to use.  
Microsoft C is said to have the best optimisation on the block.

>For pascal, Turbo Pascal 6.0 looks
>like the hot ticket -- an interface builder is part of the application
>program now.  Plus you get access to utils such as Turbo Drive (extended
>memory compiler -- runs out of extended memroy), Turbo Assembler (more
>masm compatible than masm), Turbo Profiler (profiles function speeds and
>bottlencks), Turbo Editor (AWESOME editing environment), and Turbo Debugger
>(best debugger on the market, competed only by MultiScope).  
Personally, I was very disappointed with tp6.  You may well do
well by getting a "used" tp5.5 (someone on comp.lang.pascal has
been trying to sell one) at a bargain price; tp5.5 does
essentially everything I'd want in tp6.  The assembler, profiler and
debugger are available with tp6, so what you lose is turbo-drive
(compiler runs in extended memory) and turbo-vision (some kind of
interface builder).

Oh, and while we're on the topic of turbo pascal, the best addon
to buy with TP is "Object Professional".  It costs $135 discount
and it's *awesome*.  It contains good libraries for all kinds of
things, full source code, an interface builder, etc.

>The only thing
>that I can think of as not good about Borland products is that they are not
>Windows 3.0 compatible.
Oooh, how I hate Windows!  Imagine what would happen if someday
Borland produced a Turbo Pascal which only worked under Windows!
Windows almost makes the PC a Mac!  Can you imagine how offensive
that it??  Apart from making a 386 as fast as a 8088.

I guess I'd use tpc+brief or just quit programming in TP.

-- 
_______________________________________________________________________________
Ajay Shah, (213)734-3930, ajayshah@usc.edu
                              The more things change, the more they stay insane.
_______________________________________________________________________________

randall@Virginia.EDU (Ran Atkinson) (12/15/90)

In article <25923@uflorida.cis.ufl.EDU>,
	 jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>>I'm pretty sure that the unanimous response will be to use either Turbo C
>>2.0 or Turbo C++ 1.01, since both are fast and VERY easy to use.  

In article <28832@usc> ajayshah@alhena.usc.edu (Ajay Shah) writes:
%Microsoft C is said to have the best optimisation on the block.

In fact, empirical testing has shown that essentially all of the C
compilers from major vendors (MS, Borland, Zortech, Watcom, etc.) have
about the same level of optimisation.  A recent article (this summer)
in _Computer_Language_ gives actual code examples and demonstrates
that with trivial changes to the source code any of the tested
compilers can come out on top.

The net result is that "optimisation" isn't much of a reason to buy a
compiler.  The biggest areas of differentiation are really the libraries
that come with the compiler (this is where MS really doesn't perform
well compared with Borland or Watcom) and the quality of the development
environment (both Borland and MS are considered better than Watcom here).

There have been widespread gripes posted here about problems with MS
C 6.0 and a lot of folks I know who are locked into the MS compilers 
have decided to wait for the next minor release of the compiler before
upgrading.  In the past, some of us have seen DOS versions 2.0 and
3.0 and 4.0 and MS C 4.0 and 5.0 and decided that when dealing with
MS it is sometimes best to wait for the X.1 version so that most of
the new bugs are fixed.

Borland isn't immune to this sort of problem.  TC 2.00 had a number of
bugs that were fixed with TC 2.01 (though the patches were widely
available on the net -- Simtel20 had them).  TC++ 1.00 also has had
some problems which is why they are now shipping TC++ 1.01 which
fixes most of these problems.

I personally have used Borland compilers and debuggers for a while now
and have been very happy with them both for performance and for cost.
Other people have different needs and have been happy with other
compilers and tools.  I'm not sure it really makes all that much
difference for Pascal and C compilers.  Borland and Zortech share
the C++ market for the moment.

>> For pascal, Turbo Pascal 6.0 looks like the hot ticket -- an
>> interface builder is part of the application program now.  Plus you
>> get access to utils such as Turbo Drive (extended memory compiler --
>> runs out of extended memroy), Turbo Assembler (more masm compatible
>> than masm), Turbo Profiler (profiles function speeds and
>> bottlencks), Turbo Editor (AWESOME editing environment), and Turbo
>> Debugger (best debugger on the market, competed only by MultiScope).

However not everyone LIKES integrated environments.  I for one usually
use MicroEMACS with a script that lets me invoke TCC or dmake from
inside the editor and use the MKS Korn Shell and MKS Toolkit outside
EMACS in order to make MSDOS as UNIX-like as possible.  I find I'm
much more productive this way than I would be using the integrated
environment.  Your preferences will probably be different -- which
is the point I'm trying to make.

Also, even folks who don't use Borland compilers can purchase the
TURBO DEBUGGER & TOOLS and since Turbo Debugger supports CodeView
executables there is no problem getting and using these other items 
if they are what one needs.  

>> The only thing that I can think of as not good about Borland
>> products is that they are not Windows 3.0 compatible.

Well Borland have privately demoed TC++ for Windows and indicated
that they plan to have a TP for Windows product as well so that
while this is true now it also will be changing.  

The main problem with Borland as compared with say MS or Watcom or
Metaware is that they don't really support ROM-able code or
protected-mode 386 code.  For ROM work, I'd use MS C every time
because there are fewer hoops to jump.

Nathan.Torkington@comp.vuw.ac.nz (Nathan Torkington) (12/16/90)

In article <28832@usc>, ajayshah@alhena.usc.edu (Ajay Shah) writes:

|> Oooh, how I hate Windows!  Imagine what would happen if someday
|> Borland produced a Turbo Pascal which only worked under Windows!
|> Windows almost makes the PC a Mac!  Can you imagine how offensive
|> that it??  Apart from making a 386 as fast as a 8088.

Hmmm ... TC++ reeks of a Macintosh environment.  Even to the point of having
'close-boxes' on the windows ... *gag*.

"Take me home,
 to that command-line environment,
 where EMACS and make run free ..."

- Nat.
-- 
[  Death@comp.vuw.ac.nz aka Blackadder@st1.vuw.ac.nz aka Nathan Torkington  ]
[ "Graeme Lee ... a condom on the penis of progress"            - Bob Jones ]
[ This is not an official communication of Victoria University, Wellington. ]

einari@rhi.hi.is (Einar Indridason) (12/17/90)

In article <1990Dec15.232529.23187@comp.vuw.ac.nz> death@comp.vuw.ac.nz (Nathan Torkington) writes:
>
>Hmmm ... TC++ reeks of a Macintosh environment.  Even to the point of having
>'close-boxes' on the windows ... *gag*.
>
>"Take me home,
> to that command-line environment,
> where EMACS and make run free ..."
>

Well, there is allways the command line compiler 'tcc' :-)


--
Internet:    einari@rhi.hi.is        |   "Just give me my command line and drag
UUCP:    ..!mcsun!isgate!rhi!einari  |   the GUIs to the waste basket!!!!"

Surgeon Generals warning:  Masking the 8th bit can seriously damage your brain!!

bright@nazgul.UUCP (Walter Bright) (12/21/90)

In article <1990Dec15.141850.3405@murdoch.acc.Virginia.EDU> Ran Atkinson <randall@Virginia.EDU> writes:
/In article <28832@usc> ajayshah@alhena.usc.edu (Ajay Shah) writes:
/%Microsoft C is said to have the best optimisation on the block.
/In fact, empirical testing has shown that essentially all of the C
/compilers from major vendors (MS, Borland, Zortech, Watcom, etc.) have
/about the same level of optimisation.  A recent article (this summer)
/in _Computer_Language_ gives actual code examples and demonstrates
/that with trivial changes to the source code any of the tested
/compilers can come out on top.

This is not at all true for C++ compilers, though. There are major differences
in code size and code speed between C++ compilers. According to the
Ladd Report,

		ZTC++	TC++
Run Times	107.3	187.3
EXE Size	26,480	31,476

This is for the ECOSYS benchmark, compiled and optimized for time in the
large memory model. To quote from the report:

	"ECOSYS is an ecosystem simulation Scott Ladd wrote for his series
	of C++ Techniques and Applications books. The program consists of
	2500 lines of C++. The program performs several million virtual
	function calls and creates thousands of polymorphic objects."

	"In both small and large models, Zortech's compiler is always faster
	than Borland's at producing 'debugging' programs. Since all
	compiles except the final few are usually of the debugging type,
	this gives Zortech an important advantage over Borland. While
	Zortech does perform slower on optimized compiles, it is uncommon
	to do more than a few compiles with the optimization switches on."

	"On the ECOSYS benchmark, Zortech produced a program that is 45%
	faster than Borland. Zortech produced programs that were 9% and
	12% faster on the respective DHRY2 and MATTEST benchmarks. Only on
	the MANDEL benchmark, which is floating-point intensive, did Borland
	win with a margin of 8%. Clearly, Zortech's global optimizer
	provides a significant boost in program speed. Zortech always
	produced a smaller .EXE file than did Borland."

	Excerps from "MS-DOS C++ Compilers: A Comparison" (11-9-90)
	Copyright 1990 by The Ladd Group. All Rights Reserved.
	(303) 641-4129

/The net result is that "optimisation" isn't much of a reason to buy a
/compiler.

For many people this is true. But for a lot of people who are writing
competitive application software, this can make a big difference. It can
be the difference between a large or small memory model, between fitting
in 640k or having to go to protected mode, between an application being
fast enough as is or having to profile and recode bottlenecks in assembler.

At Zortech, we wish to cater to the demanding professional, and have
concentrated our efforts on superior compilation speed and code
generation. We welcome posting of other benchmarks comparing our compilers.

/The main problem with Borland as compared with say MS or Watcom or
/Metaware is that they don't really support ROM-able code or
/protected-mode 386 code.

ZTC++ now offers a 386 compiler for use with the Pharlap DOS Extender.
Watcom C and MetaWare C support 386 code and Pharlap too.

Disclaimer: I work for Zortech.