473,847 Members | 1,511 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

good c compiler

howdy!

please recommend a good c compiler.

- should be small
- should be fast
- should come with a good ide
- should be inexpensive

i am using windows os.

awaiting replies.
Sep 23 '08
159 7147
On 23 Sep, 23:43, jacob navia <ja...@nospam.c omwrote:
Download:http://www.cs.virginia.edu/~lcc-win.
I got an error when I tried to access the link.
I don't think its there anymore...

--
Nick Keighley
Sep 29 '08 #111
jacob navia wrote:
James Kuyper wrote:
>bernard wrote:
>>Keith Thompson wrote:

jacob navia <ja***@nospam.c omwrites:
[...]
lcc-win is a good compiler. I know, since I wrote most of it.
Comes with good IDE+resource editor, compiler+linker +debugger.
Project management, utilities included.
>
Compiler has extensive math library. Language accepted is C99.
Nearly.

What does that mean? Is this what Richard Heathfield and s0suk3 are
discussing? Does it accept older language only? What does not work? I
am still learning C and still write only text mode standard C
programs. Thanks for all replies.

It doesn't fully conform to any version of the standard.

In the mode where it comes closest to conforming to C90, it supports as
extensions certain C99 features.

For instance, it accepts // comments. Isn't it that HORRIBLE?
Yes, if you want C90 conformance. I don't see the problem: if I
want C90 conformance, I don't want // comments. Berate me all you
(non-specific you) wish for my premisitical desire for C90 conformance,
for /that is not your (non-specific you again) call to make/.

--
'It changed the future .. and it changed us.' /Babylon 5/

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

Sep 29 '08 #112
On 23 Sep, 23:43, jacob navia <ja...@nospam.c omwrote:
Download:http://www.cs.virginia.edu/~lcc-win.
ah! this link is wrong

>
--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatiquehtt p://www.cs.virginia .edu/~lcc-win32
*this* link is ok
--
Nick Keighley

Sep 29 '08 #113
jacob navia said:
James Kuyper wrote:
>bernard wrote:
>>Keith Thompson wrote:

jacob navia <ja***@nospam.c omwrites:
[...]
lcc-win is a good compiler. I know, since I wrote most of it.
Comes with good IDE+resource editor, compiler+linker +debugger.
Project management, utilities included.
>
Compiler has extensive math library. Language accepted is C99.
Nearly.

What does that mean? Is this what Richard Heathfield and s0suk3 are
discussing? Does it accept older language only? What does not work? I
am still learning C and still write only text mode standard C
programs. Thanks for all replies.

It doesn't fully conform to any version of the standard.

In the mode where it comes closest to conforming to C90, it supports as
extensions certain C99 features.


For instance, it accepts // comments. Isn't it that HORRIBLE?
This isn't about aesthetics, but about conformance. A C90 implementation is
permitted to accept // comments (just as it is permitted to accept almost
anything) *provided* it issues the required diagnostic message. If it
doesn't issue that message, it isn't C90-conforming.

<snip>
As I told you, it fails to emit a diagnostic. This is just legalese
that will be corrected as soon as a single customer requires this
legalese.
I take it, then, that you accept that lcc-win32 does not conform to any ISO
C Standard, and is therefore not really a C compiler.
Well, no message. And to tell you the truth, I think nobody cares,
excepting language lawyers.
Clearly *you* don't care that lcc-win32 is not a conforming C90
implementation. And you're probably right that nobody else cares either.
But see below.
>It also does not fully conform to C99, I don't know the details. jacob
has decided to put a lot of work into certain extensions to C99, at the
expense of failing to completely conform.

I have worked for years in this project, and C99 is supported with all
important features there. There may be a few things not done yet,
Either it conforms or it doesn't. You say it doesn't. Therefore, it's not a
C99 compiler. And it's not a C90 compiler either, by your own admission.
So it's not a C compiler at all!

Note that the discussion of particular C implementations doesn't really
fall within the purview of this group, so it's hard to see how discussions
of *non*-C implementations can be relevant here.
but
they are relatively obscure. The only significant feature missing is
variable arguments in the preprocessor.
When/if lcc-win32 ever becomes a conforming C99 implementation, that will
be news that many comp.lang.c subscribers will wish to hear. But the
existence of non-conforming non-C compilers isn't news.

--
Richard Heathfield <http://www.cpax.org.uk >
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Sep 29 '08 #114
In article <gb**********@a ioe.org>, jacob navia <ja***@nospam.o rgwrote:
....
>It could be something as simple as "thank you for making
use of this wonderful extension"; the standard says nothing about the
contents of the diagnostic message; but a message of some kind is required.

Well, no message. And to tell you the truth, I think nobody cares,
excepting language lawyers.
It *does* emit a diagnostic. The diagnostic is a string of zero length.
According carping kuyper, this is OK.
>It also does not fully conform to C99, I don't know the details. jacob
has decided to put a lot of work into certain extensions to C99, at the
expense of failing to completely conform.

I have worked for years in this project, and C99 is supported with all
important features there. There may be a few things not done yet, but
they are relatively obscure. The only significant feature missing is
variable arguments in the preprocessor.
You could probably get everybody here to shut up if you just said "It
supports most of C99". You could probably also get them STFU
permanently it you said something to the effect of "I don't really care
about conformance - not in the dogmatically religious fundamentalist
Christian way that the regs of CLC do. I care about performance and
usability. I honestly believe that usability is more important than
religious 'conformance'. And I thank God that I don't live in the 14th
Century!"

The problem is that every time this comes up, the scenario goes like this:

newbie: I'm looking for a C compiler for Windows. What do you suggest?
Jacob: You should try my lcc-win32 product. <various bits of
text about how good it is, including some kind of statement,
often in somewhat broken English, to the effect that it
supports C99 features>.

Now, at this point, Heathfield (or one of his minions) will figure out a
way to misinterpret what Jacob has posted (Note that as a non-native
speaker of English, Jacob's English isn't perfect and there's always a
way to construe it badly) and to hijack the thread into the BS that we
always see.

And thus we get to where we are.

Sep 29 '08 #115
Greetings.

In article <OI************ *************** ***@bt.com>, Richard Heathfield
wrote:
Personally, I'd suggest getting yourself at least *two* compilers - gcc
and, perhaps, one of the free Borland offerings - and installing them
both. As you learn C, compile your exercise programs under both
compilers. Learning to keep them both happy will in itself teach you a
lot about C! Specifically, it will help you to distinguish between C
itself (which is what your textbook ought to be teaching you) and the
various add-ons that compiler vendors offer you in the hope of locking
your source code into their product (and yes, sometimes those add-ons are
sufficiently valuable and powerful to get people to opt into such
lock-in).
I don't see how or why this is a good idea. What's wrong with simply
choosing one conforming compiler and making sure to invoke it in
standards-compliant mode? Simply running gcc with
the -Wall -pedantic -ansi options should help the poster distinguish
between C and any implementation-specific extensions, and he won't have to
waste effort of installing, learning, and maintaining two separate
compiler distributions.

And I think it's a bit of a stretch to imply that the GCC folks try to lock
customers into using their product -- it's free to distribute and even to
modify into a very different product. Unlike vendors of proprietary
systems, they don't stand to benefit much from customer lock-in, except to
the degree that the community at large benefits from wider adoption of
their system.

Regards,
Tristan

--
_
_V.-o Tristan Miller [en,(fr,de,ia)] >< Space is limited
/ |`-' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= < In a haiku, so it's hard
(7_\\ http://www.nothingisreal.com/ >< To finish what you
Sep 29 '08 #116
jacob navia <ja***@nospam.c omwrites:
James Kuyper wrote:
>bernard wrote:
>>Keith Thompson wrote:
jacob navia <ja***@nospam.c omwrites:
[...]
lcc-win is a good compiler. I know, since I wrote most of it.
Comes with good IDE+resource editor, compiler+linker +debugger.
Project management, utilities included.
>
Compiler has extensive math library. Language accepted is C99.
Nearly.

What does that mean? Is this what Richard Heathfield and s0suk3 are
discussing? Does it accept older language only? What does not work?
I am still learning C and still write only text mode standard C
programs. Thanks for all replies.
It doesn't fully conform to any version of the standard.
In the mode where it comes closest to conforming to C90, it supports
as extensions certain C99 features.

For instance, it accepts // comments. Isn't it that HORRIBLE?
No. It just means that lcc-win isn't a fully conforming C90 compiler.
As I recall, you haven't claimed that it is.

This is not a problem. Why are you trying to make it one?

[...]
>It also does not fully conform to C99, I don't know the
details. jacob has decided to put a lot of work into certain
extensions to C99, at the expense of failing to completely conform.

I have worked for years in this project, and C99 is supported with all
important features there. There may be a few things not done yet, but
they are relatively obscure. The only significant feature missing is
variable arguments in the preprocessor.
Apparently all the features that *you* consider important are
supported. And perhaps all the features that any of your customers
consider important are supported. I would think that full C99
conformance might get you more customers, but that's only speculation
on my part; it's a business decision you have to make, and I'm not in
a position to second-guess you.

So, lcc-win supports most, but not all, of C99. It's important for
potential users to understand this, so they can decide for themselves
whether lcc-win will meet their requirements.

But whenever anybody mentions this, you take it as a personal attack.

--
Keith Thompson (The_Other_Keit h) ks***@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Sep 29 '08 #117
jacob navia wrote:
James Kuyper wrote:
bernard wrote:
Keith Thompson wrote:

jacob navia <ja***@nospam.c omwrites:
[...]
lcc-win is a good compiler. I know, since I wrote most of it.
Comes with good IDE+resource editor, compiler+linker +debugger.
Project management, utilities included.

Compiler has extensive math library. Language accepted is C99.
Nearly.

What does that mean? Is this what Richard Heathfield and s0suk3 are
discussing? Does it accept older language only? What does not work? I
am still learning C and still write only text mode standard C
programs. Thanks for all replies.
It doesn't fully conform to any version of the standard.

In the mode where it comes closest to conforming to C90, it supports as
extensions certain C99 features.


For instance, it accepts // comments. Isn't it that HORRIBLE?
Don't put words in my mouth. I only said it was non-conforming, not
that it was "HORRIBLE". You clearly don't equate "non-conforming" with
"HORRIBLE", otherwise you'd have put more effort into achieving
conformance before you started adding extensions.
In itself, this is not a problem,
conforming implementations are allowed to provide extensions. However,
at least diagnostic message is mandatory under C90 for some uses of most
of those features, and lcc-win does not generate those mandatory
diagnostics.

As I told you, it fails to emit a diagnostic. This is just legalese
that will be corrected as soon as a single customer requires this
legalese.
Clearly, your customers are not strongly interested in full
conformance to C90; there's no inherent problem with that. You can
choose not to fully conform to C90, there's no problem with that. You
object to the fact that people point out that lcc-win32 does not fully
conform to C90, treating it as an insult; that's where the problem
comes in. If you truly feel that an assertion that "lcc-win32 does not
fully conform to C90" is in fact an insult, your appropriate response
is to fix the non-conformance, so that the "insult" no longer true -
not to lash out at someone for daring to point out this fact.
It could be something as simple as "thank you for making
use of this wonderful extension"; the standard says nothing about the
contents of the diagnostic message; but a message of some kind is required.

Well, no message. And to tell you the truth, I think nobody cares,
excepting language lawyers.
I care. When I work on code that's intended to be portable to other
C90 compilers, I want the compiler to at least warn me when that code
takes advantage of an extension, whether it was inserted accidentally
by me, or deliberately by previous developers. I write code intended
to be so portable, far more often than I write code that deliberately
makes use of implementation-specific extensions.
It also does not fully conform to C99, I don't know the details. jacob
has decided to put a lot of work into certain extensions to C99, at the
expense of failing to completely conform.

I have worked for years in this project, and C99 is supported with all
important features there. There may be a few things not done yet, but
they are relatively obscure. The only significant feature missing is
variable arguments in the preprocessor.
Your definitions of "important" , "obscure", and "significan t" might
differ from mine; given our previous discussions, I'm certain that
they do. Therefore, in the unlikely event that I was trying to decide
whether or not to make use of your compiler, I'd appreciate a more
detailed and specific list of the ways in which it fails to conform.
Sep 29 '08 #118
Tristan Miller said:
Greetings.

In article <OI************ *************** ***@bt.com>, Richard Heathfield
wrote:
>Personally, I'd suggest getting yourself at least *two* compilers - gcc
and, perhaps, one of the free Borland offerings - and installing them
both. As you learn C, compile your exercise programs under both
compilers. Learning to keep them both happy will in itself teach you a
lot about C! Specifically, it will help you to distinguish between C
itself (which is what your textbook ought to be teaching you) and the
various add-ons that compiler vendors offer you in the hope of locking
your source code into their product (and yes, sometimes those add-ons
are sufficiently valuable and powerful to get people to opt into such
lock-in).

I don't see how or why this is a good idea.
It's a good idea because it helps you to distinguish between C itself and
the various add-ons that compiler vendors offer you in the hope of locking
your source code into their product.
What's wrong with simply
choosing one conforming compiler and making sure to invoke it in
standards-compliant mode? Simply running gcc with
the -Wall -pedantic -ansi options should help the poster distinguish
between C and any implementation-specific extensions,
me@herecat execs.c
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int rc = EXIT_SUCCESS;

char * const args[] = { "/bin/ls", NULL };

if(execve(args[0], args, NULL) == -1)
{
perror("execve" );
rc = EXIT_FAILURE;
}

puts("We only get here if something went wrong.");

return rc;
}

gcc -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align
-Wpointer-arith -Wbad-function-cast -Wmissing-prototypes
-Wstrict-prototypes -Wmissing-declarations -Winline -Wundef
-Wnested-externs -Wcast-qual -Wshadow -Wconversion -Wwrite-strings
-ffloat-store -fno-builtin -O2 -g -pg -c -o execs.o execs.c
execs.c: In function `main':
execs.c:9: warning: initialization discards qualifiers from pointer target
type
gcc -W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align
-Wpointer-arith -Wbad-function-cast -Wmissing-prototypes
-Wstrict-prototypes -Wmissing-declarations -Winline -Wundef
-Wnested-externs -Wcast-qual -Wshadow -Wconversion -Wwrite-strings
-ffloat-store -fno-builtin -O2 -g -pg -o execs execs.o

(oops @ warning)

No diagnostic message for unistd.h, nor one for exec*(). Implementations
are not required to diagnose extensions that don't break syntax rules or
violate constraints.
And I think it's a bit of a stretch to imply that the GCC folks try to
lock customers into using their product
Since when were the GCC folks a "vendor"?

--
Richard Heathfield <http://www.cpax.org.uk >
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Sep 29 '08 #119
Kenny McCormack wrote:
In article <gb**********@a ioe.org>, jacob navia <ja***@nospam.o rgwrote:
...
It could be something as simple as "thank you for making
use of this wonderful extension"; the standard says nothing about the
contents of the diagnostic message; but a message of some kind is required.
Well, no message. And to tell you the truth, I think nobody cares,
excepting language lawyers.

It *does* emit a diagnostic. The diagnostic is a string of zero length.
According carping kuyper, this is OK.
I had not intended my comment to be misunderstood in that fashion;
though I do see how you could, with malicious intent, twist it that
way. While the standard does not say anything about the actual content
of diagnostic messages, it does say that a diagnostic is a "message
belonging to an implementation-defined subset of the implementationí s
message output". That means that the implementation is required to
provide documentation of how this subset is to be identified. Does lcc-
win come with documentation that allows us to identify a zero-length
output string as a diagnostic message? If so, it would be horrible
QoI, but it would not render the implementation non-conforming. If you
think I've ever said anything to suggest that QoI is irrelevant in
general, you misunderstood me. It's irrelevant to conformance, but
very relevant to users.

....
Christian way that the regs of CLC do. I care about performance and
usability. I honestly believe that usability is more important than
religious 'conformance'.
I think performance and usability are very important, but that an
absolute minimum requirement for a compiler to count as usable is full
conformance. If you can't count on the compiler to what the standard
specifies that it should do, how can it be truly useful for any
purpose other than implementation-specific code? I don't write any
programs where it would be permissible to restrict their portability
to platforms for which lcc-win32 was available?
The problem is that every time this comes up, the scenario goes like this:

newbie: I'm looking for a C compiler for Windows. What do you suggest?
Jacob: You should try my lcc-win32 product. <various bits of
text about how good it is, including some kind of statement,
often in somewhat broken English, to the effect that it
supports C99 features>.

Now, at this point, Heathfield (or one of his minions) will figure out a
way to misinterpret what Jacob has posted (Note that as a non-native
speaker of English, Jacob's English isn't perfect and there's always a
way to construe it badly) and to hijack the thread into the BS that we
always see.
If it were merely a matter of bad English that caused Jacob to promote
a non-conforming implementation of C as a conforming one, the
corrections he's received would have put a stop to that by now. He
honestly doesn't care about the discrepancy between what IS
conformance and what he CALLS conformance, any more than you do.
Sep 29 '08 #120

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

30
3533
by: Christian Seberino | last post by:
How does Ruby compare to Python?? How good is DESIGN of Ruby compared to Python? Python's design is godly. I'm wondering if Ruby's is godly too. I've heard it has solid OOP design but then I've also heard there are lots of weird ways to do some things kinda like Perl which is bad for me. Any other ideas?
1
13294
by: lovens weche | last post by:
Is there a good editor that can be used with a 32 bit compiler under the MS-Dos platform? I used to use the Watcom C++ 11 compiler but the editor that came with it (VI if I remeber) was not that great, in fact it was horrible. I'm searching for a Borland C++ style editor and a good C++ 32 bit compiler. Doesn't really matter if the compiler doesn't optimize the code. Thanx in advance... Lovens
7
6180
by: Kyle Stevens | last post by:
Does anyone know of and good, and free, C++ compiler programs and where I might download them?
3
1957
by: happy | last post by:
I am searching over the net for a Good C compiler that has good editor .. Tc 2.01 has bad editor . please advice me with aweb site for downloading the godd Editor C compiler NOT C++. Thanks
9
3034
by: myhotline | last post by:
Hi all, After googling i came across Pelles C, is it a good C compiler over Windows( I am using Windows Xp )...Though Pelles C website says its a C99-compliant compiler, even though i would like somebody to tell me abnout this C99-COmpliance? Are there any other good C99-compliant comilers available for windows....please do let me know.... Any cooperation at earliest will be highly appreciated... REgards -Ahmed
43
2681
by: Sensei | last post by:
Hi! I'm thinking about a good programming style, pros and cons of some topics. Of course, this has nothing to do with indentation... Students are now java-dependent (too bad) and I need some serious motivations for many issues... I hope you can help me :) I begin with the two major for now, others will come for sure! - function variables: they're used to java, so no pointers. Personally I'd use always pointers, but why could be better...
87
3853
by: H. | last post by:
I am a student taking a machine structures class in a university, which includes learning C. I am looking for a good freeware or shareware compiler which can be used in a "C only" mode. C++ isn't allowed in assignments, and I would like the compiler to check for C syntax instead of C++ syntax. Besides that, ease of use for a beginner and basic debugging capabilities are important. Suggestions are welcome.
244
9640
by: Ajinkya | last post by:
Can anyone suggest me a good compiler for(c/cpp) for windows? I tried dev cpp but its debugging facility is very poor.
23
3160
by: tonytech08 | last post by:
What I like about the C++ object model: that the data portion of the class IS the object (dereferencing an object gets you the data of a POD object). What I don't like about the C++ object model: that most OO features are not available for class object design without loss of POD-ness. So, I'm more than leaning toward "bad" because of the limitations and
0
9892
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, weíll explore What is ONU, What Is Router, ONU & Routerís main usage, and What is the difference between ONU and Router. Letís take a closer look ! Part I. Meaning of...
0
9734
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10656
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10347
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7061
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5730
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5915
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4541
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3171
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.