免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 93955 | 回复: 95
打印 上一主题 下一主题

特邀专家在线答疑——名不正则言不顺 一网打尽C语言基本概念 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-18 16:13 |显示全部楼层 |倒序浏览
获奖名单已公布,详情请看:http://bbs88.chinaunix.net/thread-3560759-1-1.html

不了解一门语言的基本概念,恐怕很难说是真正地掌握了这门语言。
    这会使得对语言的学习和讨论长期处于低水平的、在黑暗中徘徊的状态。例如某些论坛长期存在的月经讨论“i++ + i++ + i++”的结果问题。事实上,只要对C语言的undefined behavior概念稍有了解,甚至根本都不会产生这样的毫无意义问题。
    自从国内开始使用C语言起,C语言的基本概念,从来就没有被全面、认真、彻底地思考、讨论过。C99标准出现后,新的概念大量出现,这种众说纷纭的现象更加严重。很多名词的翻译至今没有共识,例如VLA。不幸的是,这种现象已经持续了十多年。
    目前国内比较全面介绍C语言概念的文献有:GB/T 15272《程序设计语言C》;《C语言参考手册》(徐波 译);《C语言参考手册》(邱仲潘等 译);客观地说,这些书籍中的很多翻译也颇有值得商榷之处。
    为此,本论坛特邀请《狂人C:程序员入门必备》一书作者键盘农夫等几位资深网友与大家共同讨论这些问题。鉴于问题的范围很大,本次讨论话题主要围绕C99标准第3节《3. Terms, definitions, and symbols》中涉及到的概念展开,但决不仅限于此,任何C语言的概念都可以讨论。
    讨论方式:
    1、就C语言的各种基本概念的内涵发表见解
    2、就C语言的各种基本概念的译法发表见解
    3、对C语言的各种基本概念的已有的翻译进行评论
   邀请专家:
    1, CU社区C/C++版块资深版主cugb_cat
    2, CU社区C/C++版块资深版主lenky0401
    3,《狂人C:程序员入门必备》一书作者KBTiller

    讨论有奖:
    对于积极讨论,提出有价值的问题或积极参与解答的网友我们会有以下奖励:
    1,CU社区定制高档衬衫5件
    2,对积极参与者奖励U积分20分。
欢迎广大网友积极参与这个活动,如果您有任何与讨论主题有关的疑问,您可以尽情的提问,我们的嘉宾会给您一个满意的答案!

论坛徽章:
0
2 [报告]
发表于 2011-04-19 15:13 |显示全部楼层
就是LZ啊


再请教LZ一个问题,请问你对国内大学生(包括毕业的)大骂老谭的书这个问题怎 ...
starzhestarzhe 发表于 2011-04-19 14:09



    这个恐怕很难一概而论。要看骂的是什么?是否实事求是,是否有道理

论坛徽章:
0
3 [报告]
发表于 2011-04-19 19:40 |显示全部楼层
回复 23# captivated

您的建议很好。照办!

论坛徽章:
0
4 [报告]
发表于 2011-04-19 19:50 |显示全部楼层
抛砖引玉
3.1
1 access
< execution-time action > to read or modify the value of an object
2 NOTE 1 Where only one of these two actions is meant, ‘‘read’’ or ‘‘modify’’ is used.
3 NOTE 2 "Modify’’ includes the case where the new value being stored is the same as the previous value.
4 NOTE 3 Expressions that are not evaluated do not access objects.

访问(access)
【<执行时动作> 读或写某一数据对象的值】
注1:只意味着“读”或“写”动作之一
注2:“写”包括存储与原值相同的情形
注3:不求值的表达式不访问数据对象

C89:无此概念
相关概念:reference , designate
=================================
翻的不好,欢迎大家拍砖!

论坛徽章:
0
5 [报告]
发表于 2011-04-19 20:00 |显示全部楼层
再射一楼。
C对类型的定义:数据的类型。
ADT对类型的定义:数据,及其之上所允许的操作。
captivated 发表于 2011-04-19 19:45


这个不敢苟同
我认为C的数据类型就是 一组数值 + 对这组数值的运算
如果认识不到这个高度
C的数据类型是绝对理解不了的

论坛徽章:
0
6 [报告]
发表于 2011-04-19 20:02 |显示全部楼层
很可惜。我认为一个人应该有开放的心态。多接受一些新的概念和观点,拿来主义,对你并没有坏处。
captivated 发表于 2011-04-19 19:45


这个你说的很对
但是就讨论具体问题而言,我觉得越窄越好

论坛徽章:
0
7 [报告]
发表于 2011-04-20 15:18 |显示全部楼层
本帖最后由 KBTiller 于 2011-04-20 15:32 编辑
我前面说的for(int i = 0,,)歪楼了吗,不是讨论C99来着??
...
txdgtwpv 发表于 2011-04-20 09:04


没有歪楼啊
我觉得你的这个话题很不错
我个人觉得
for ( int i=0; ;  )
是一个很好的特性,是比C89进步的地方,否则在“{”开头定义一堆循环变量很烦躁的,也容易出错

论坛徽章:
0
8 [报告]
发表于 2011-04-20 15:31 |显示全部楼层
C99里有不少借鉴C++的东西,数据类型方面基本上没有变化。我想问问lz,你对摒弃基本数据类型,把神马都封装起来,提供“好”的接口怎马看txdgtwpv 发表于 2011-04-20 09:04


  我不喜欢“把神马都封装起来”,我喜欢C那样的直白,能够看到底。
  像java那样表面不要指针而把指针变相地包装起来,我一直不喜欢。总有些不放心的感觉

  但是C99借鉴C++的东西我觉得有,但不是很多,感觉借鉴FORTRAN的更多些。以前人们评价C不太适合科学计算,现在这句话似乎应该改改了

论坛徽章:
0
9 [报告]
发表于 2011-04-20 15:38 |显示全部楼层
看来我还不具有资格在这讨论,2分坐看别人讨论
chinesedragon 发表于 2011-04-20 09:56



    谦虚了,怎么会没资格呢

    reference , designate  这两个词我就感觉翻译不好,可否发表点高见

论坛徽章:
0
10 [报告]
发表于 2011-04-20 15:39 |显示全部楼层
基本概念就那些吧,实际还得看编译器和其它环境,适合编译器比较重要。
ecjtubaowp 发表于 2011-04-20 10:33



    也不是,基本概念一直在变化中,C99增加了不少新概念
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP