免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
21 [报告]
发表于 2011-04-19 16:28 |只看该作者
回复 20# txdgtwpv


    从来没有看过标准长的什么样子...我只是觉得讨论实际的东西太少了.  很少见有什么很有吸引力的讨论贴.. 水贴N多... 以致于现在上上CU就是看看有的新闻了.

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
22 [报告]
发表于 2011-04-19 19:17 |只看该作者
讨论方式:
    1、就C语言的各种基本概念的内涵发表见解
    2、就C语言的各种基本概念的译法发表见解
    3、对C语言的各种基本概念的已有的翻译进行评论

LZ,这个还是太范化了。要是没有引导,此贴绝对是被水的料。

我觉得LZ应该先放一楼作为引导内容。然后开始在这个话题上讨论。觉得该话题讨论已经差不多了,再开一楼作为引导内容,再开始讨论。

比如基本概念的内涵这个,可能有人就开始想到序列点、副作用、未定义行为等等,
但是也不妨有人就开始想到一些具体的问题,比如LS那个for(int i=0; i != 10; i++)之类的。

我认为,怎么也应该是类型、变量、表达式、语句、函数、序列点、副作用这些才算是基本概念吧?

所以可以先来一楼关于类型的...之类的。

类型,看上去确实是比较简单的概念。在C语言中,确实类型也只是作为“数据的类型”而存在。但是ADT对类型的定义却不是如此。C++对类型的理解和内涵就比较接近ADT的概念。简单的说,在ADT的定义中,认为类型不单包含数据的内容,而且包含数据所允许的操作。

当这种概念涉及到范型思想,我们就发现ADT的这种概念/定义的内涵与范型的思想有些不太融洽。因为范型就是“让类型和算法分离”,这可以从某种程度上表达为“令数据和算法分离”,再想想,也许还可能可以表达为“令数据结构和算法分离”--然而数据结构和算法是紧密联系的--这在大多数C程序员的想法中均是如此:比如链表到底算什么--我觉得非要将数据结构和算法清楚明白地分开算的话--链表当然应该算是数据结构--但是排序显然应该归类为算法--当然对数组排序还是对链表排序--不管它们的实现还是对执行环境的要求都是不同的。

啊,--请问可以认为我这样算是在讨论基础概念的内涵了吗?...

......

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
23 [报告]
发表于 2011-04-19 19:18 |只看该作者
回复 1# KBTiller


    我LS有对LZ你的建议

论坛徽章:
0
24 [报告]
发表于 2011-04-19 19:40 |只看该作者
回复 23# captivated

您的建议很好。照办!

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
25 [报告]
发表于 2011-04-19 19:45 |只看该作者
再射一楼。
继续讨论关于“类型”的“内涵”。

C对类型的定义:数据的类型。
ADT对类型的定义:数据,及其之上所允许的操作。
C++对class的定义:数据,以及一组函数。

如果我们把数据看成“单纯的数据”,把函数看作“操作”,显然C++对类型的定义就是跟ADT的定义差不多的概念。

那么ADT的这种定义带来了什么?带来了“数据”以及“其允许的操作”的紧耦合。
如果我们把“算法”考虑成“操作”,那么范型思想带来了什么?范型思想的中心点在于“算法”和数据的分离。
这就是为什么说“范型”和ADT不太融洽的原因。

再考虑到关于“静态类型”和“动态类型”的差别,它们又带来了什么?

从某种程度上来说,C程序员总是有一种观念,就好像认为“计算机世界中万物归结于C”一样。他们骄傲地认为C就是
一切,抱残守缺。其实答案在于,他们并没有用C去设计操作系统内核,并没有用C去写C++编译器。他们并没有用
C去写一个伟大的服务器,或者什么什么的。

很可惜。我认为一个人应该有开放的心态。多接受一些新的概念和观点,拿来主义,对你并没有坏处。

当等到你真正理解了怎么用C去设计一个内核原型,怎么设计和实现一个编译器,真正了解到关于操作系统和计算机
底层运行的概念,那时回头再看一下C,也许你仍然坚持抱残守缺,但是这是另一种意义的抱残守缺了。

论坛徽章:
0
26 [报告]
发表于 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
=================================
翻的不好,欢迎大家拍砖!

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
27 [报告]
发表于 2011-04-19 19:55 |只看该作者
回复 26# KBTiller
呃,LZ抛砖了,楼下的快来砸玉

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


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

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


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

论坛徽章:
0
30 [报告]
发表于 2011-04-19 20:56 |只看该作者
来过了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP