显然,修复c99为时已晚 - C已经死了 [英] Clearly, it is too late to fix c99 - C is dead

查看:96
本文介绍了显然,修复c99为时已晚 - C已经死了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

早在2002年,Harry H. Cheng写道:

Back in 2002, Harry H. Cheng wrote:

同意。 gcc是用于不同平台的C编译器。
VC ++是用于Windows的C / C ++编译器。
SCC是用于Cray机器的C编译器。
Ch是针对不同平台的可嵌入C解释器。
他们使用不同的名称,并对C有不同的扩展。
但是,它们都符合ISO C90标准。
我认为它们最终会符合C99。



回复我在comp.lang.c上发布的咆哮。我咆哮的重点是

,大多数现有的编译器应该在99年的C99中占据很大比例。发布

标准的目的是编纂现有的做法。因此,当C99发布时,

应该花费几周的时间来调整大多数现有的编译器

进行调整以符合要求。情况并非如此。委员会没有编写现有的做法,他们编造了一种新语言,他们将b $ b作为标准发布。


现在是2004年,距离C99发布已近5年。世界上最受欢迎的C编译器之一GCC尚未实施

标准(参见 http://gcc.gnu.org/c99status.html )他们永远不会。

怎么能我这么肯定地说这个吗?事实上,我会说更多:

没有人打算执行这个标准。如果你看看什么是
弗格斯·亨德森在参考托尼编写的测试程序时说的话

Finch执行GCC的可变长度结构的实现

你可以理解这个问题:

我认为这是C99的一个缺陷。 C99与现有的做法不符。我注意到Sun C,Compaq C和GNU C都对这个结构使用相同的布局。这种布局比C99规定的布局更有效(使用更少的空间)。我不认为委员会打算以这种方式迫使实施效率低下,我不认为委员会打算强制实施打破二进制与先前版本的兼容性。
Agreed. gcc is a C compiler for different platforms.
VC++ is a C/C++ compiler for Windows.
SCC is a C compiler for Cray machine.
Ch is an embeddable C interpreter for different platforms.
They use different names and have different extensions to C.
However, they all conform to the ISO C90 standard.
I think they will conform to C99 eventually.

In reply to a rant I posted on comp.lang.c. The point of my rant was
that a large majority of existing compilers should have conformed with
a large percentage of C99 back in ''99. The purpose of releasing a
standard is to codify existing practice. So when C99 was released it
should have taken a few weeks for the majority of existing compilers
to be tweaked to conform. That wasn''t the case. The committee didn''t
codify existing practice, they made up a new language and they
released it as a standard.

It is now 2004, almost 5 years since the release of C99. One of the
most popular C compilers in the world, GCC, has yet to implement the
standard (see http://gcc.gnu.org/c99status.html) and they never will.
How can I say this with such certainty? In fact, I''ll say more:
no-one intends to ever implement the standard. If you look at what
Fergus Henderson said when refering to a test program written by Tony
Finch which exercises GCC''s implementation of variable length structs
you can appreciate the problem:
I think this is a defect in C99. C99 does not match existing practice
here. I note that Sun C, Compaq C, and GNU C all use the same layout
for this struct. This layout is more efficient (uses less space) than
the layout mandated by C99. I don''t think the committee intended to
force implementations to be inefficient in this way and I don''t think
the committee intended to force implementations to break binary
compatibility with previous releases.




- http://gcc.gnu.org/ml/gcc/2002-05/msg02858.html

GCC仍然产生输出Tony Finch早在2002年就被发现,其他编译器弗格斯·亨德森提到了这一点。我不怀疑

有一个编译器在某处正确实现了

标准的这一部分但是现有的绝大多数C的实践b $ b编译器是忽略标准的,因为这是我们唯一的标准,我相信这是该语言的死跪。


Trent Waddington



- http://gcc.gnu.org/ml/gcc/2002-05/msg02858.html

GCC still produces the output Tony Finch discovered back in 2002, as
do the other compilers Fergus Henderson mentioned. I don''t doubt
there is a compiler somewhere that implements this part of the
standard correctly but the existing practice of a vast majority of C
compilers is to ignore the standard and, as this is the only standard
we have, I believe that to be the death kneel of the language.

Trent Waddington

推荐答案

为了杀死C,你会不得不杀了我,这不是那么

轻松完成。如果c99平坦,那将会有一个类似于c2006的东西。缺乏标准使每个人都脱头发。语言抨击它接近

让我问:如果不是C,那么什么? MPJ
In order to kill C, you would antecendently have to kill me, which is not so
easily done. If c99 falls flat, there will be a c2006 oder something
similar. Lack of standards makes everyone pull their hair out. It borders
on language-bashing for me to ask: if not C, then what? MPJ


C99标准中没有任何内容我觉得特别吸引人,或者

我该怎么说呢,需要使用C99。我将使用C89作为

可预见的未来。 C99尝试帮助实现国际化,但实际上是编写可移植的,国际化的程序,仍然必须按照自己的方式制作,而不是依靠编译器系统来实现支持任何东西,因为

它不需要提供任何UTF编码或任何特别的东西,

具体,有用。


这些只是我的思考;他们可能会改变,但我对此表示怀疑。
There is nothing in the C99 standard that I find especially appealing or,
how shall I put it, a required to use C99. I''ll be using C89 for the
forseeable future. C99 atempts to help with internationalisation, but the
fact is to write portable, internationalised programs one still has to make
ones own way, and not rely on the compiler system to support anything since
it doesn''t have to provide for any UTF encodings or anything particularly,
concretely, useful.

These are only my musings; they may change, but I doubt it.


QuantumG写道:
QuantumG wrote:
回复我在comp.lang.c上发布的咆哮。我咆哮的意思是,大多数现有的编译器应该在99年回归大部分的C99。发布
标准的目的是编纂现有的做法。因此,当C99发布时,它应该花费几周的时间来调整大多数现有的编译器,以便进行调整。情况并非如此。委员会没有对现有的做法进行编纂,他们编写了一种新的语言,并将其作为标准发布。
In reply to a rant I posted on comp.lang.c. The point of my rant was
that a large majority of existing compilers should have conformed with
a large percentage of C99 back in ''99. The purpose of releasing a
standard is to codify existing practice. So when C99 was released it
should have taken a few weeks for the majority of existing compilers
to be tweaked to conform. That wasn''t the case. The committee didn''t
codify existing practice, they made up a new language and they
released it as a standard.




ANSI C确实做了一些重大改变。我认为它的一部分还需要与需求相关的
。在1990年,C几乎是* b $ b行业的主要语言,所以人们更关心它。现在Java,C ++,Visual

Basic,以及其他(每个!)更普遍。如果他们中的任何一个显着改变了
,我认为它的更改将会更快地被

编译器和开发人员所取代(这可能已经发生了

VB6-> VB.NET)。

-

Derrick Coetzee

我将此新闻组发布到公共领域。我不承担所有

明示或暗示保证并承担所有责任。我不是专业人士。



ANSI C did make some significant changes. I think part of it also has to
do with demand. In 1990, C was pretty much *the* main language in
industry, and so people cared about it a lot more. Now Java, C++, Visual
Basic, and others are (each!) more prevalent. If any of them changed
significantly, I think its changes would be picked up more quickly by
compilers and developers alike (this may have already happened with
VB6->VB.NET).
--
Derrick Coetzee
I grant this newsgroup posting into the public domain. I disclaim all
express or implied warranty and all liability. I am not a professional.


这篇关于显然,修复c99为时已晚 - C已经死了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆