473,847 Members | 1,522 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 7148
On Sep 30, 5:55 am, CBFalconer <cbfalco...@yah oo.comwrote:
vipps...@gmail. com wrote:
CBFalconer <cbfalco...@yah oo.comwrote:
jacob navia wrote:
James Kuyper wrote:

... snip ...
>>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?
As a matter of fact, YES, if the system is attempting to conform
to C90. The result is that the poor user is never told that his
code is not portable with those successive division symbols.
If accepting means to translate without emitting a diagnostic
error, you are correct. However, the standard seems to use the
word 'accept' to talk about the implementation processing the
file. In that sense, no, it's not horrible as a C90 compiler is
*required* to accept files containing // comments.

I don't think you meant what you wrote. A C90 compiler is required
to accept the '/' as indicating division. Two in a row are a
syntax error, not a comment, and require a diagnostic.
I did :-)

I mentioned the usage of 'accepting' by the standard (C99 though, not
C90), and it's different than yours in your post.
Accept seems to mean apply TP 1 to 4 to it.
So, a file with // comments must be accepted by a C90 implementation.

Sep 30 '08 #151
vipps...@gmail. com wrote:
....
I mentioned the usage of 'accepting' by the standard (C99 though, not
C90), and it's different than yours in your post.
Accept seems to mean apply TP 1 to 4 to it.
So, a file with // comments must be accepted by a C90 implementation.
One key problem is that the standard uses the terms "accept" and
"reject" in important ways without defining them. I've heard arguments
that "accept" corresponds to translation phases 1-7; I don't think
that's plausible, but the argument has been made. As far as I can see,
a compiler which generates the message "Program accepted" counts as
having accepted the program, even if it does nothing else with the
program (not even translation phase 1). I don't think that this was
the committee's intent, which is why I believe the wording should be
changed to prevent that from being a valid interpretation.
Sep 30 '08 #152
On Sep 30, 11:56 pm, jameskuy...@ver izon.net wrote:
vipps...@gmail. com wrote:

...
I mentioned the usage of 'accepting' by the standard (C99 though, not
C90), and it's different than yours in your post.
Accept seems to mean apply TP 1 to 4 to it.
So, a file with // comments must be accepted by a C90 implementation.

One key problem is that the standard uses the terms "accept" and
"reject" in important ways without defining them. I've heard arguments
that "accept" corresponds to translation phases 1-7; I don't think
that's plausible, but the argument has been made. As far as I can see,
a compiler which generates the message "Program accepted" counts as
having accepted the program, even if it does nothing else with the
program (not even translation phase 1). I don't think that this was
the committee's intent, which is why I believe the wording should be
changed to prevent that from being a valid interpretation.
I agree the standard uses accept in critical sentences without
defining the meaning, but I don't think there's many interprentation s
of what the standard means.

I was actually based on your own words when I mentioned TP 1 to 4.
Message-ID: <8ac6eb1c-3e61-404e-9bd7-
cf**********@34 g2000hsh.google groups.com>
Message-ID: <5hJtk.966$UX.5 51@trnddc03>

You seem to contradict yourself...
Would you mind clarifying?
Sep 30 '08 #153
On Tue, 30 Sep 2008 13:56:29 -0700, jameskuyper wrote:
vipps...@gmail. com wrote:
...
>I mentioned the usage of 'accepting' by the standard (C99 though, not
C90), and it's different than yours in your post. Accept seems to mean
apply TP 1 to 4 to it. So, a file with // comments must be accepted by
a C90 implementation.

One key problem is that the standard uses the terms "accept" and
"reject" in important ways without defining them. I've heard arguments
that "accept" corresponds to translation phases 1-7; I don't think
that's plausible, but the argument has been made.
Do you believe "accept" corresponds to more, or to less translation phases?

Personally, I dislike the idea of treating "A conforming hosted
implementation shall accept any strictly conforming program." as saying it
may refuse to link strictly conforming programs, just because linking
isn't part of "accept". I don't see how "accept" can be meant to refer to
anything less than all 8 phases.
Sep 30 '08 #154
vipps...@gmail. com wrote:
On Sep 30, 11:56 pm, jameskuy...@ver izon.net wrote:
vipps...@gmail. com wrote:

...
I mentioned the usage of 'accepting' by the standard (C99 though, not
C90), and it's different than yours in your post.
Accept seems to mean apply TP 1 to 4 to it.
So, a file with // comments must be accepted by a C90 implementation.
One key problem is that the standard uses the terms "accept" and
"reject" in important ways without defining them. I've heard arguments
that "accept" corresponds to translation phases 1-7; I don't think
that's plausible, but the argument has been made. As far as I can see,
a compiler which generates the message "Program accepted" counts as
having accepted the program, even if it does nothing else with the
program (not even translation phase 1). I don't think that this was
the committee's intent, which is why I believe the wording should be
changed to prevent that from being a valid interpretation.

I agree the standard uses accept in critical sentences without
defining the meaning, but I don't think there's many interprentation s
of what the standard means.
I've been monitoring comp.std.c since 1996, and in that time I've
heard quite a few mutually incompatible meanings for "accept" being
proposed as the only possible meaning.
I was actually based on your own words when I mentioned TP 1 to 4.
Message-ID: <8ac6eb1c-3e61-404e-9bd7-
cf**********@34 g2000hsh.google groups.com>
Message-ID: <5hJtk.966$UX.5 51@trnddc03>

You seem to contradict yourself...
Would you mind clarifying?
That message described an absolutely minimally conforming
implementation of C99. My point was to show that there are far fewer
meaningful requirements on such an implementation than you might
think. One requirement is that code which contains a #error directive
which survives conditional compilation must be rejected, with a
suitable error message. That requires essentially full implementation
of translation phases 1-4. Another requirement is that all strictly
conforming programs must be accepted. In itself, that requirement can
be met by a compiler with accepts all programs, regardless of their
contents. In the message I posted today, I was only addressing the
acceptance requirement, not the rejection requirement.
Sep 30 '08 #155
Harald van Dijk wrote:
On Tue, 30 Sep 2008 13:56:29 -0700, jameskuyper wrote:
....
>One key problem is that the standard uses the terms "accept" and
"reject" in important ways without defining them. I've heard arguments
that "accept" corresponds to translation phases 1-7; I don't think
that's plausible, but the argument has been made.

Do you believe "accept" corresponds to more, or to less translation phases?

Personally, I dislike the idea of treating "A conforming hosted
implementation shall accept any strictly conforming program." as saying it
may refuse to link strictly conforming programs, just because linking
isn't part of "accept". I don't see how "accept" can be meant to refer to
anything less than all 8 phases.
When you "accept" a gift, does that mean that you need to use it? Do you
even need to unwrap it? As I understand it, I've finished accepting the
gift when I take it into my hands, and say "thank you", even if I toss
it in the trash, still wrapped, as soon as I'm out of sight of the giver.

I don't see any justification for interpreting "accept" for compilers in
any stronger fashion than that. I believe that the committee intended
the term to mean more than that, but I think it's a defect in the
standard that they chose to use the word "accept" to convey that intent,
without giving it any C-specific definition.
Oct 1 '08 #156
In article <gc************ @jones.homeip.n et>,
<la************ @siemens.comwro te:
>jacob navia <ja***@nospam.c omwrote:
>>
I have worked years implementing C99, and I have
now an implementation that is not missing any important feature.

According to your classification of which features are important and
which are not. Other people may well have different opinions. Your
compiler is an impressive piece of work, but I wish you'd stop
pretending that it's complete when you know darned well that it isn't
yet.
Nothing is ever complete. Nor is a painting ever finished.

Oct 7 '08 #157
On Tue, 7 Oct 2008 14:54:14 +0000 (UTC), Kenny McCormack wrote:
In article <gc************ @jones.homeip.n et>,
<la************ @siemens.comwro te:
>>jacob navia <ja***@nospam.c omwrote:
>>>
I have worked years implementing C99, and I have
now an implementation that is not missing any important feature.

According to your classification of which features are important and
which are not. Other people may well have different opinions. Your
compiler is an impressive piece of work, but I wish you'd stop
pretending that it's complete when you know darned well that it isn't
yet.

Nothing is ever complete. Nor is a painting ever finished.
Jacob's lcc was the most complete C compiler I had used when I was intent
on getting C99 features. I was decompressing off of Microsoft products,
but notwithstanding .

His compiler is complete in a way that standard thumpers don't value: you
can make a window without reinventing the wheel, which for those who target
the world's most popular OS, is the window.

All of the implementations with which I have experience are having trouble
with, say, double complex. YMMV.

What important C99 feature does lcc lack?
--
Richard Milhous Nixon

All kings is mostly rapscallions.
~~ Mark Twain
Oct 7 '08 #158
Richard Nixon <ri*****@exampl e.invalidwrites :
[...]
>In article <gc************ @jones.homeip.n et>,
<la************ @siemens.comwro te:
>>>jacob navia <ja***@nospam.c omwrote:

I have worked years implementing C99, and I have
now an implementation that is not missing any important feature.

According to your classification of which features are important and
which are not. Other people may well have different opinions. Your
compiler is an impressive piece of work, but I wish you'd stop
pretending that it's complete when you know darned well that it isn't
yet.
[...]
>
Jacob's lcc was the most complete C compiler I had used when I was intent
on getting C99 features. I was decompressing off of Microsoft products,
but notwithstanding .

His compiler is complete in a way that standard thumpers don't value: you
can make a window without reinventing the wheel, which for those who target
the world's most popular OS, is the window.
Nobody said that's not valuable; I'm sure it is. There's nothing
wrong with making system-specific operations such as making a window
more convenient. The question we've discussed here is how well
lcc-win conforms to the C99 standard.

jacob frequently refers to his lcc-win as a C99 compiler, but he's
never claimed that it fully conforms to the C99 standard. As I
recall, it doesn't implement variadic macros, and there may be some
missing functionality in the C99 changes to initializers. I don't
have any details about the current status.
All of the implementations with which I have experience are having trouble
with, say, double complex. YMMV.

What important C99 feature does lcc lack?
An important note: lcc is a C90-only compiler. lcc-win (sometimes
also known as lcc-win32) is jacob navia's compiler, and is based on
lcc. lcc itself is still available.

Apparently it depends on what you mean by "important" . jacob insists
that the only missing C99 features are unimportant ones, so his answer
would be "none". A question that might yield more meaningful results
would be: what important *or unimportant* features does lcc-win lack.
You can then decide for yourself which features are or are not
important to you.

Of course, if lcc-win suits your purposes, by all means use it.

--
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"
Oct 7 '08 #159
la************@ siemens.com writes:
ja*********@ver izon.net wrote:

For some reason, jacob confusingly describes that situation by saying
that lcc doesn't implement "long double".

Because he's thinking as an implementor: "I've already implemented
32-bit floating-point arithmetic for float and 64-bit floating-point
arithmetic for double; I don't feel like implementing yet another kind
of floating-point arithmetic for long double, so I'll just use my 64-bit
implementation instead." In Jacob's mind, this lazy implementor has
just reused his double implementation instead of implementing long
double (correctly). While it's understandable in that context, you're
correct that it's very confusing to the rest of us.
I just want to offer some applause for a very nice
posting clarifying the two different mindsets here.
Oct 9 '08 #160

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
9735
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
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...
1
7889
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7062
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
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
2
4133
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
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.