Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!pasteur!ucbvax!hplabs!hp-sdd!megatek!spot!hollen From: hollen@spot.megatek.uucp (Dion Hollenbeck) Newsgroups: comp.sys.ibm.pc Subject: Re: RFC: MS C v. Lattice C Message-ID: <341@megatek.UUCP> Date: 29 Apr 88 02:40:50 GMT References: <4330063@hpindda.HP.COM> Sender: news@megatek.UUCP Lines: 57 From article <4330063@hpindda.HP.COM>, by mintz@hpindda.HP.COM (Ken Mintz): > Can someone offer some constructive views on MS C v. Lattice C: is one > better than the other; if so, why? BTW, I don't intend to develop code > for windows, nor do I indend to use windows myself. > I am using Lattice C at work for some very sophisticated embedded system development. My company purchased it because it was the only compiler warranteed by the manufacturer of SoftProbe 86 simulator (runs on a SUN or VAX or PC - cannot say enough good things about Soft Probe and SSI who makes it). Lattice C is something else. Calling it a toy is not quite accurate, but closer than calling it a real-world compiler. It has no switches to control optimization, no support for in-line assembly and I have discovered numerous bugs (several of which were fixed in the 3.24 release). The worst bug (still not fixed and Lattice is hemming and hawwing about even looking at it) occurs when asking the compiler to include symbolic debug information including line numbers, symbol names and symbol types. In 75% of the source files (I have about 20) it will generate object modules which are rejected by the linker. Unfortunately, the lack of symbol types cripples emulators and simulators from being powerful and reduces me to calculating offsets into complex nested structures by hand instead of being able to refer to 'foo->bar.zips.alt.boo'. Lattice does support all the memory models and has adequate documentation. Their standard libraries seem to be well written, but there are not a lot of nifty extensions. Also, I have the Microsoft 4.0 C compiler and it has lots of features such as selective optimization, complete symbols and types, etc. Microsoft is notoriously bad about support as you may have gathered from postings in this group. Their documentation is not a whole lot better than Lattice. Their attitude towards fixing bugs is not that great. We did not select MS C because at the time of purchase, it had only been ported to SUN UNIX for only a couple of months and there were next to no embedded system development tools. Also, SSI would not warranty it to work with SoftProbe (a feature which was critical to the project, since the hardware would not be available to test on and we could debug on the simulator without going to the hardware until the last minute). In summary, both compiler are adequate. In my opinion, MS C is the better choice of the two. MS C generates vastly superior code optimization and seems to be more full featured. However, it you are not doing heavy duty development the best bang for the buck is the MIX POWER C which also has the most superior documentation for a beginner. As much as I like the CODEVIEW debugger system, MIX beats it all to heck (BTW, Lattice has NO debugger). Dion Hollenbeck (619) 455-5590 x2814 Megatek Corporation, 9645 Scranton Road, San Diego, CA 92121 seismo!s3sun!megatek!hollen ames!scubed/