免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wwwsq
打印 上一主题 下一主题

530,继续抽某昏昏 [复制链接]

论坛徽章:
0
161 [报告]
发表于 2012-05-31 02:21 |只看该作者
幻の上帝 发表于 2012-05-31 02:19
回复 159# wwwsq

那你就又错了。ISO C++之前也没有value computation的解释。



你这么说的话,也有道理。

但是value computation这个概念在C里面终究是没有明确规定,那么在讨论C的语境下,value computation就不能当作是一个有特定含义的术语,而只能从字面去解释。

论坛徽章:
0
162 [报告]
发表于 2012-05-31 02:31 |只看该作者
回复 161# wwwsq


语境嘛……那要看你说的是哪个C了。K&R?ANSI C89/ISO C90?ISO C99?还是具体实现决定的方言?
如果没有事先限定,那我就认为是最新版本的现行正式国际标准定义的C,也就是ISO C11。当然,也得考虑现有实现——但是,概念上的问题显然不必要。
ISO C11 Forward
6 This third edition cancels and replaces the second edition, ISO/IEC 9899:1999, as corrected by ISO/IEC 9899:1999/Cor 1:2001, ISO/IEC 9899:1999/Cor 2:2004, and ISO/IEC 9899:1999/Cor 3:2007. ...
而且我确信关于这个概念的说法也适用于正式版(尽管我拿到的是draft)。
退一步讲,即便是你不认同这个概念,这个概念描述的东西本身也不会消失,至少ANSI C89开始就有这个问题。
PS.An assignment expression has the value of the left operand after the assignment这个是C89就有的说法。这里的模糊很可能只是因为没修订全。

论坛徽章:
0
163 [报告]
发表于 2012-05-31 02:35 |只看该作者
至于什么是value computation,即便不在基本术语或概念定义中提到,也不是用斜体标注的局部术语,但意思可以通过上下文清楚地理解,至少和evaluation的关系是明确的。
ISO C11(N1570)
5.1.2.3 Program execution
2 Accessing a volatile object, modifying an object, modifying a file, or calling a function that does any of those operations are all side effects,12) which are changes in the state of the execution environment. Evaluation of an expression in general includes both value computations and initiation of side effects. Value computation for an lvalue expression includes determining the identity of the designated object.

论坛徽章:
0
164 [报告]
发表于 2012-05-31 02:39 |只看该作者
回复 163# 幻の上帝

不过顺便又得吐槽ISO C了,这种细节上的描述习惯性缩水,几乎从来就没比ISO C++清楚过(我所知的反例是trap representation/indeterminate value等少数几个)……(为什么有时候C的语境下我习惯顺带引用ISO C++而绝少反过来,也是这个原因。)
ISO C++11
1.9 Program execution [intro.execution]
12 Accessing an object designated by a volatile glvalue (3.10), modifying an object, calling a library I/O function, or calling a function that does any of those operations are all side effects, which are changes in the state of the execution environment. Evaluation of an expression (or a sub-expression) in general includes both value computations (including determining the identity of an object for glvalue evaluation and fetching a value previously assigned to an object for prvalue evaluation) and initiation of side effects. When a call to a library I/O function returns or an access to a volatile object is evaluated the side effect is considered complete, even though some external actions implied by the call (such as the I/O itself) or by the volatile access may not have completed yet.

论坛徽章:
0
165 [报告]
发表于 2012-05-31 02:41 |只看该作者
本帖最后由 wwwsq 于 2012-05-31 02:42 编辑
幻の上帝 发表于 2012-05-31 02:31
回复 161# wwwsq



这个概念描述的东西本身也不会消失

这点我同意,而且value computation这个概念的明确化确实让标准的描述变得更清晰。

这里的问题就是,value computation何时应该被当作是有特定含义的术语,何时应该从字面进行解读。

在那个帖子里面,你两次纠正了我对value computation的理解。后面那次你的纠正是对的,因为语境是我在和你讨论你贴出来的内容;但是前面那次纠正是不合适的,因为我正在和另外一位同学讨论C99。

当别人在讨论C99的时候,你把C99里面还没定义的value computation当作术语进行要求,是不合适的。而且我们当时用的是中文“求值”,等value computation被翻译成中文的时候,是不是叫“求值”都还没确定呢。

论坛徽章:
0
166 [报告]
发表于 2012-05-31 02:57 |只看该作者
回复 165# wwwsq

我记得你当时没有特别提到C99。
即便C99没有,也可以借用(应该容易理解这和具体语言实现或者旧代码的问题不一样),适用的理由是这里需要的意思其实就是和C11里说的一样。
实际上关键问题是我认为你在那里所说的“求值”(这个词的意思倒是一直没变)并不恰当,而更明确的说法正好在当前正是标准中有也不难找,所以就拿过来用了。

论坛徽章:
0
167 [报告]
发表于 2012-05-31 03:10 |只看该作者
本帖最后由 wwwsq 于 2012-05-31 03:12 编辑
幻の上帝 发表于 2012-05-31 02:57
回复 165# wwwsq

我记得你当时没有特别提到C99。



好吧,语境这个问题是比较复杂。。。。

还是感谢你让我了解了value computation这个术语。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
168 [报告]
发表于 2012-05-31 09:09 |只看该作者
回复 167# wwwsq


    看样,就是要狠一点,不然就会欺软怕硬了…………

论坛徽章:
0
169 [报告]
发表于 2012-05-31 09:25 |只看该作者
starwing83 发表于 2012-05-31 09:09
回复 167# wwwsq



是水平问题,不是软硬问题。在c和c++标准这个领域,要承认幻同学是水平比较高。

当然到了其他领域,幻同学就未必水平高了。比如tcp协议栈的概念和实现,幻同学就未必清楚;架构设计要注意那些问题,幻同学也未必清楚。(我是说未必清楚,也可能幻同学在那些领域也同样是高手)

幻同学的优点是只说他了解的事情,这是很值得学习的。而某昏昏的最大缺点,就是不懂装懂。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
170 [报告]
发表于 2012-05-31 09:48 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP