From: Georg Bauhaus on
J. Clarke schrieb:
> On 4/7/2010 2:43 AM, Georg Bauhaus wrote:
>> And in fact, VS2005, which was available in 2006,
>> does not have <complex.h> for C.
>
> So what?

If there is no C99 but MS and C and scientific programming is
required, this means you can only write C++ programs using MS
tools if you want objects of standard complex types. (Or choose
Ada or Fortran or ...) But C++ was not mentioned as an option.

>> VC++ does support <complex>,
>> but enough harm has been done in assuming that writing C using
>> a C++ compiler is a good idea.
>
> What "harm" is this? And in point of fact, VS2005 has no C compiler
> except the C++ compiler that you say should not be used for writing C.
> What you are calling a "C compiler" is in fact a command line switch
> applied to the C++ compiler.

C++ overlaps C to a large extent. But the compilers
must arrange for the parts of the languages outside the
respective other language. However little one might think these
differences are, ignoring them can lead to error and to portability
trouble.
MS C and MC C++ are therefore, strictly speaking, impossibly the
same compilers. But: referring to more than a command line switch,
Microsoft compilers for many languages use some of the common MS
translation technology. That does not make the input languages
the same. Just like an Intel C++ compiler and an Intel Fortran
compiler share some circuitry, AFAIK. This still does not make
C++ or Fortran interchangeable. GCC can be made to translate
a number of languages. That does not make the languages basically
the same, and not even does it make the dialects of C the same:
GCC with -std=c99 and with -std=c89 accept a different set of programs.
Even when the effective compiler "program" is changed "merely" by a
switch. You might call this nitpicking, but observing the little
differences contribute to program quality IMO. If the latter
does not count, then why bother to consider language properties
in the first place?


> My complaint is that you seem to be complaining to be complaining. If
> you're using a C++ compiler then write C++, don't whine because its C
> support is half-assed.

Fitzpatrick wanted to write C, not C++, and he wanted standard
complex types. So why should he be using a C++ compiler with
half-assed support for C99 without complex? (He, not me.)

Writing C using a C++ compiler creates, in addition to other things,
the hurdle of having to understand C++ in order to make sense of
error messages. (But OTOH, the C++ error messages of some compilers
*can* be a lot better than C's in some situations.) The unfortunate
notion behind "C/C++" incidentally creates a business opportunity for
those who wish to be consultants, recongnizing the "pragmatically"
blurred approach to language use. Note that this is not the same as
integrating modules written in C and other parts of a program written
in C++.

But this is moving off topic.
From: Keith Thompson on
"J. Clarke" <jclarke.usenet(a)cox.net> writes:
[...]
> Well Visual C++ 2008, which is the only "MS C" in current production,
> most assuredly DOES implement a standards-compliant complex data type,
> so I don't really understand the point of your complaint.

This is off-topic, but ...

I'm sure the C++ compiler implements C++'s complex type. Does it
support C99 complex types when invoked as a C compiler? They're
defined quite differently; they have to be, since standard C doesn't
have operator overloading.

Here's a test case, a complete translation unit that should compile
without error with a conforming C99 compiler:

double _Complex new;

C and C++ are two different languages.

--
Keith Thompson (The_Other_Keith) kst-u(a)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"
From: Simon Wright on
"robin" <robin51(a)dodo.com.au> writes:

> As for your supercilious question, do I <<know of *any* algorithm that
> was first developed in machine code?>> --

Wasn't Ada Augusta's first program an algorithm to compute Fibonacci
numbers? That would certainly have been in machine code.

And Alan Turing thought in machine code ...
From: J. Clarke on
On 4/7/2010 1:05 PM, Keith Thompson wrote:
> "J. Clarke"<jclarke.usenet(a)cox.net> writes:
> [...]
>> Well Visual C++ 2008, which is the only "MS C" in current production,
>> most assuredly DOES implement a standards-compliant complex data type,
>> so I don't really understand the point of your complaint.
>
> This is off-topic, but ...
>
> I'm sure the C++ compiler implements C++'s complex type. Does it
> support C99 complex types when invoked as a C compiler? They're
> defined quite differently; they have to be, since standard C doesn't
> have operator overloading.
>
> Here's a test case, a complete translation unit that should compile
> without error with a conforming C99 compiler:
>
> double _Complex new;
>
> C and C++ are two different languages.

Precisely. And Microsoft is not touting any of their current projects
as a C compiler so why should they support C99?

Look, you have a choice, you can use C or you can use Microsoft
compilers, but if you're expecting state of the art C from Microsoft
you've come to the wrong shop.

I just don't understand what's so great about C that one MUST use it in
preference to C++.




From: robin on

"Simon Wright" <simon(a)pushface.org> wrote in message news:m2tyrnjc5f.fsf(a)pushface.org...
| "robin" <robin51(a)dodo.com.au> writes:
|
| > As for your supercilious question, do I <<know of *any* algorithm that
| > was first developed in machine code?>> --
|
| Wasn't Ada Augusta's first program an algorithm to compute Fibonacci
| numbers? That would certainly have been in machine code.
|
| And Alan Turing thought in machine code ...

He did, because he wrote programs (including subroutines)
back in 1945 when he designed the Automatic Computing Engine.