ANSI C syntax ?

R

Richard Heathfield

Default User said:
^^^^^^^

The above is not a word. The term you're searching for is "American".

Some people think it logical to reserve the term "American" for
describing (things pertaining to) the continents of North and South
America, just as "European" describes things pertaining to Europe,
"African" describes things pertaining to Africa, and so on. Such people
think it pretty silly to use the term "American" to describe only
things pertaining to a country that occupies a mere quarter of the
Americas. It would be as silly as using the word "Asians" to describe
*only* the Chinese.
If we're going to be pummeling the non-native speakers for using silly
abbreviations, then we ought to refrain from doing the same ourselves.

"Usanian" isn't an abbreviation. It's a coined word that has
considerable mind-share behind it.
 
C

CBFalconer

Default said:
^^^^^^^

The above is not a word. The term you're searching for is "American".
If we're going to be pummeling the non-native speakers for using silly
abbreviations, then we ought to refrain from doing the same ourselves.

Firmly disagree. American includes Canadian, Mexican, Brazilian,
Argentinian, Columbian, Costa Rican, etc. I believe in Canada the
appropriate standards organization is CSO. As long as we require
precision in code, we should also require precision in associated
verbiage, even if it requires coining a word.

The USA occupies considerably less than 1/2 of the North American
continent, not to mention all of North, South, and Central America.

--
<http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt>
<http://www.securityfocus.com/columnists/423>

"A man who is right every time is not likely to do very much."
-- Francis Crick, co-discover of DNA
"There is nothing more amazing than stupidity in action."
-- Thomas Matthews
 
M

Mark McIntyre

^^^^^^^

The above is not a word. The term you're searching for is "American".

American technically refers to anyone living in the Americas, not just
those living in the USA. Don't blame me if the imperialist running
dogs stole the name of an entire two continents... :)

--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
 
K

Keith Thompson

CBFalconer said:
No. ANSI C refers to the standard approved by ANSI, which
currently is C99.

Yes, but it's still very common to refer to C89/C90 as "ANSI C".
Incorrect, but common.

Personally, I avoid using the term "ANSI C". I refer to "ISO C" if
it's sufficiently clear from the context whether I'm talking about C90
or C99, and "C90" or "C99" (or rarely "C95") to refer to the language
defined by a particular version of the standard.
 
D

Default User

Richard said:
Default User said:


Some people think it logical to reserve the term "American" for
describing (things pertaining to) the continents of North and South
America, just as "European" describes things pertaining to Europe,
"African" describes things pertaining to Africa, and so on.

Which is silly. There is no continent of "America". There is North
America, the denizens and things pertaining proper called "North
American", and South America, likewise "South American".
"Usanian" isn't an abbreviation. It's a coined word that has
considerable mind-share behind it.

Only by people who wish to insult and annoy Americans.




Brian
 
D

Default User

CBFalconer said:
Firmly disagree. American includes Canadian, Mexican, Brazilian,
Argentinian, Columbian, Costa Rican, etc.

It can in certain contexts, but all dictionaries firmly list the
"resident of the USA". American is not used to describe the citizens of
any other nation. Period.

Many Americans consider it HIGHLY insulting to use such neologisms in
place of the proper name.




Brian
 
D

Default User

Mark said:
American technically refers to anyone living in the Americas, not just
those living in the USA.

Provide some evidence of such use. I'll bet you have one hell of a hard
time. It's an insult to Americans to rob us of our correct name.



Brian
 
R

Richard Heathfield

Default User said:
Which is silly. There is no continent of "America".

Neither is there a country called "America". And your point?
There is North
America, the denizens and things pertaining proper called "North
American", and South America, likewise "South American".


Only by people who wish to insult and annoy Americans.

Not so. Rather, the term "American" was hijacked for self-description by
a group that constitutes less than a third of the population of the two
American continents. The term "Usanian" is merely an attempt to
facilitate an un-hijacking of that term. If anything is insulting to
Americans, it is the suggestion that the majority of them don't count
as American, simply because they are not from the United States.
 
R

Richard Heathfield

Default User said:
It can in certain contexts, but all dictionaries firmly list the
"resident of the USA".

That is certainly true. After all, dictionaries describe usage, and
there is no doubt that a great many Usanians use the term "American" to
describe themselves.
American is not used to describe the citizens of any other nation.

But that is certainly false. I use it in that way myself, so I am a
counter-example. Other counter-examples exist.
Many Americans consider it HIGHLY insulting to use such neologisms in
place of the proper name.

Which Americans do you mean? Argentinians? Bolivians? Brazilians?
Colombians? Canadians? Guatemalans? Mexicans? Panamanians? Paraguayans?
Peruvians? Uruguayans? Usanians? Venezuelans? (Non-exhaustive list.)
 
R

Richard Heathfield

Default User said:
Provide some evidence of such use.

I use it in that way, so I am a supporting example for Mark's claim.
I'll bet you have one hell of a hard time.

Nah, it was easy.
It's an insult to Americans to rob us of our correct name.

On the contrary, the claim that "Americans" only applies to Usanians is
an insult to all the other Americans.
 
Y

Yevgen Muntyan

Richard said:
Default User said:


That is certainly true. After all, dictionaries describe usage, and
there is no doubt that a great many Usanians use the term "American" to
describe themselves.


But that is certainly false. I use it in that way myself, so I am a
counter-example. Other counter-examples exist.

"Apple" is used to describe oranges. It's certainly true, here's
the proof: orange is an apple, apple is an orange. We love logic,
it's such a powerful tool in conversations, don't we?
Which Americans do you mean? Argentinians? Bolivians? Brazilians?
Colombians? Canadians? Guatemalans? Mexicans? Panamanians? Paraguayans?
Peruvians? Uruguayans? Usanians? Venezuelans? (Non-exhaustive list.)

Did you ask these people if they are Americans and if they find it
insulting when someone calls them Americans?

Anyway, I am not an American nor a Great-Britaininan, so I guess I
miss very important details about this argument.

Yevgen
 
K

Keith Thompson

Default User said:
It can in certain contexts, but all dictionaries firmly list the
"resident of the USA". American is not used to describe the citizens of
any other nation. Period.

Many Americans consider it HIGHLY insulting to use such neologisms in
place of the proper name.

Speaking as an American, it doesn't bother me at all. I understand
that "American" is usually used to refer to a citizen of the US. I
also understand that excluding all the other residents of the American
continents is an bothersome to some as including them seems to be to
you.

This is entirely off-topic, and it's vanishingly unlikely that
anything is going to be resolved here. I suggest that both sides of
this debate quietly declare victory and move on.
 
M

Malcolm McLean

Richard Heathfield said:
On the contrary, the claim that "Americans" only applies to Usanians is
an insult to all the other Americans.
A Colombian friend of mine got very annoyed when I used the term "American"
to refer to the inhabitants of our former colonies. He said "I am an
American".

Unfortunately "Yank" is derogatory. "Usanian" is not a pronounceable word.
"Republicans" would be accurate but has been taken by a political party.
There just isn't a good word for our friends from over the pond.
 
B

Beej Jorgensen

Richard Heathfield said:
Which Americans do you mean? Argentinians? Bolivians? Brazilians?
Colombians? Canadians? Guatemalans? Mexicans? Panamanians? Paraguayans?
Peruvians? Uruguayans? Usanians? Venezuelans? (Non-exhaustive list.)

This is exactly what I ask myself when all those angry people on TV
chant "Death to America". I mean, they could be talking about anybody!

-Beej
 
R

Rajesh S R

So, I see that I am wrong...but could you please kindly explain why
that code will produce the out put "a = 4", I managed to compile that
code fragment and really got "a = 4", which make me think about that
the right oprand {...} yield a value 2.
If it is just

a = ( c = 4 );

that is clearly what happend. But does that code

a = ( { int c; c = 2 + a; } );

also give us a = 4?

Thanks

I think that, the result is a consequence of the way the compiler
parses the tokens and compiles them.

You can't use the standards of C to explain the result you get because
I had already said a statement does not yield a vlaue as per its very
definition.

As per the C standards for the assignment there are following
constraints:

One of the following shall hold:94)
- the left operand has qualified or unqualified arithmetic type and
the right has
arithmetic type;
- the left operand has a qualified or unqualified version of a
structure or union type
compatible with the type of the right;
- both operands are pointers to qualified or unqualified versions of
compatible types,
and the type pointed to by the left has all the qualifiers of the type
pointed to by the
right;
- one operand is a pointer to an object or incomplete type and the
other is a pointer to a
qualified or unqualified version of void, and the type pointed to by
the left has all
the qualifiers of the type pointed to by the right;
- the left operand is a pointer and the right is a null pointer
constant; or
- the left operand has type _Bool and the right is a pointer.

Since none of the above constraints are satisfied by the given
statement, it is a constraint violation and you can't use C standards
to explain the result. I guess an error diagnostic is required by any
ANSI compiler, as the constraint is violated.

Correct me if I'm wrong.
 
C

CBFalconer

Keith said:
Speaking as an American, it doesn't bother me at all. I understand
that "American" is usually used to refer to a citizen of the US. I
also understand that excluding all the other residents of the
American continents is an bothersome to some as including them
seems to be to you.

This is entirely off-topic, and it's vanishingly unlikely that
anything is going to be resolved here. I suggest that both sides
of this debate quietly declare victory and move on.

Hooray. We win. :)
 
C

CBFalconer

Richard said:
Default User said:

I use it in that way, so I am a supporting example for Mark's
claim.


Nah, it was easy.


On the contrary, the claim that "Americans" only applies to
Usanians is an insult to all the other Americans.

Let us reason together. :) The full name of the country is "The
United States of America". That intrinsically states that the US
is a subset of America. It is not even accurate, since Hawaii is
not a part of America.

BTW, I do not recall anyone other than "Default User" ever
complaining about "USAnian".
 
C

CBFalconer

Malcolm said:
.... snip ...

Unfortunately "Yank" is derogatory. "Usanian" is not a
pronounceable word. "Republicans" would be accurate but has been
taken by a political party. There just isn't a good word for our
friends from over the pond.

On the contrary, around here designating somewon as a Yankee is a
compliment. The point is that it is regional. Something like
calling all UKanians "Cockneys".
 
K

Keith Thompson

Rajesh S R said:
So, I see that I am wrong...but could you please kindly explain why
that code will produce the out put "a = 4", I managed to compile that
code fragment and really got "a = 4", which make me think about that
the right oprand {...} yield a value 2.
If it is just

a = ( c = 4 );

that is clearly what happend. But does that code

a = ( { int c; c = 2 + a; } );

also give us a = 4?

I think that, the result is a consequence of the way the compiler
parses the tokens and compiles them.

You can't use the standards of C to explain the result you get because
I had already said a statement does not yield a vlaue as per its very
definition.
Right.

As per the C standards for the assignment there are following
constraints:

One of the following shall hold:94)
- the left operand has qualified or unqualified arithmetic type and
the right has arithmetic type; [snip]
Since none of the above constraints are satisfied by the given
statement, it is a constraint violation and you can't use C standards
to explain the result. I guess an error diagnostic is required by any
ANSI compiler, as the constraint is violated.

Correct me if I'm wrong.

The statement in question is a syntax error. A conforming compiler
that doesn't implement a gcc-like extension will never even have a
chance to check the constraints; the failure occurs earlier.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,201
Latest member
KourtneyBe

Latest Threads

Top