[shlug] [OT]吐槽一下“什么是C语言”

45 views
Skip to first unread message

孑影

unread,
May 12, 2012, 2:11:12 AM5/12/12
to sh...@googlegroups.com
今天看了一评论,什么是C语言,什么是C

欢迎,大家吐槽,灌水,,,

孑影

unread,
May 12, 2012, 2:13:15 AM5/12/12
to sh...@googlegroups.com
2年多的C unix 方向

觉得C 是一种工具,给程序员表达、思考的工具,

顺便mark 一下看10年后是什么样的感悟



Lu Yiguang

unread,
May 12, 2012, 2:15:43 AM5/12/12
to sh...@googlegroups.com
我会说C是“凑合着能用”么(奸笑)。。

孑影

unread,
May 12, 2012, 2:18:49 AM5/12/12
to sh...@googlegroups.com
看上去你平常不是主要用c开发的

Lu Yiguang

unread,
May 12, 2012, 2:24:40 AM5/12/12
to sh...@googlegroups.com
没没没。。我歪楼了亲。。

ning zhou

unread,
May 12, 2012, 2:36:56 AM5/12/12
to sh...@googlegroups.com
C永远都不会退出历史舞台。
--
Best Regards.
Zhou Ning 周宁

Lu Yiguang

unread,
May 12, 2012, 2:59:16 AM5/12/12
to sh...@googlegroups.com
矮油喂。。我都说了我猥琐的歪楼了。。

Honglei Cong

unread,
May 12, 2012, 3:04:52 AM5/12/12
to sh...@googlegroups.com
C语言一个很大的优势就是比其他语言更接近机器语言

2012/5/12 Lu Yiguang <lorenzo.d...@gmail.com>:

小花喵

unread,
May 12, 2012, 3:06:18 AM5/12/12
to sh...@googlegroups.com
+1

~盛开如夏莲,美丽动人~
~شکوفه مانند لوتوس تابستان، زیبا~
Me.Sina 
小花(Jyu..)谨上

Jack Li

unread,
May 12, 2012, 3:16:28 AM5/12/12
to sh...@googlegroups.com
不用方向的人有不同的感受吧
对我来说就是大学里学编程写Fibonacci函数用的语言,哈哈哈



2012/5/12 小花喵 <she....@gmail.com>

Lu Yiguang

unread,
May 12, 2012, 3:18:23 AM5/12/12
to sh...@googlegroups.com
完了完了。。我完全被误解了。。我当时是想开玩笑说C不是“can do”么。。

myself

unread,
May 12, 2012, 5:12:00 AM5/12/12
to sh...@googlegroups.com
B之后就是C,记得看过起名C语言的由来。
B是指什么语言,忘了。

Gao Ya'nan

unread,
May 12, 2012, 7:03:25 AM5/12/12
to sh...@googlegroups.com
C 语言是啥就难解释了,我说一下我对 C 的感觉吧。

C 语言和汇编一样不会再流行,但是总是不可或缺。

C 语言的优势在于“精细控制”,尤其和底层硬件打交道的时候,这是其他语言无法比拟的。

孑影

unread,
May 12, 2012, 7:59:39 AM5/12/12
to sh...@googlegroups.com
流行,是什么情况呢?所谓流行就是注定会过时的,

但是C给人的感觉,不是那种感觉
C确实可以做到精细的粒度控制,但是C并不局限于底层和硬件打交道,,,

ning zhou

unread,
May 12, 2012, 8:30:17 AM5/12/12
to sh...@googlegroups.com
如果你做dsp开发的话,c是绝对的统治者。

在 2012年5月12日 下午7:03,Gao Ya'nan <abutt...@gmail.com>写道:

Serenade

unread,
May 12, 2012, 8:32:16 AM5/12/12
to sh...@googlegroups.com
因为某些原因,我写了几个月汇编;然后,把汇编的东西往C迁移的时候觉得C真好。
不同于C++,就是觉得C能很自然地顺着思路写,生成的可执行文件短小精悍。
感觉,有点像用java的时候- -;

--
Thanx & Regards,
小溪同学

林孟潇

unread,
May 12, 2012, 2:36:30 AM5/12/12
to sh...@googlegroups.com
哈哈真心是吐槽
由于我用的语言除了Pascal(已经有两年没碰过这古老的东西了)和Python,都是C语言的后裔,我觉得C语言是我所见过的编程语言中最为丰富、优美的,尽管有一些约束,但她给了程序员最大的自由和运行效率,这是其他编程语言无法企及的。
C语言应该是最具生命力的编程语言吧,无论CPU发展到多快,系统程序也只能用C这样的高运行效率语言来写,因为用户的需求也是伴随着CPU运算加快而提升的。

在 2012年5月12日 下午2:24,Lu Yiguang <lorenzo.d...@gmail.com>写道:

孑影

unread,
May 12, 2012, 9:20:51 AM5/12/12
to sh...@googlegroups.com
需求那块的想法,不谋而合,,,

Chunis Deng

unread,
May 12, 2012, 9:46:28 AM5/12/12
to sh...@googlegroups.com
不知道什么才算流行? 在今年5月的编程语言排行榜上,C现在排在第一位..
  http://www.cnbeta.com/articles/186516.htm


在 2012年5月12日 下午7:03,Gao Ya'nan <abutt...@gmail.com>写道:

姚 飞

unread,
May 12, 2012, 10:09:38 AM5/12/12
to sh...@googlegroups.com
C语言是标准的美国人实用主义的产物,比起Pascal为代表的欧洲学术产物,过分信任程序员,认为他们知道自己在干什么,所以没啥特别的规定与限制。

容易学,容易出成果,也容易制造混乱。

严格地说,如果没有Pascal的训练基础,初学者不应该碰C语言。

林孟潇

unread,
May 12, 2012, 10:18:05 AM5/12/12
to sh...@googlegroups.com
>>>严格地说,如果没有Pascal的训练基础,初学者不应该碰C语言。
其实我觉得不一定必须经过Pascal的训练(我的确是用了3年Pascal才开始学习C语言的),不过严谨正确而安全的编程规范才是写C语言程序必须具备的前提。现在来看,可能先学Python/Java,再学习php/C++,最后考虑开始用C语言才是正道

shaoguang guo

unread,
May 12, 2012, 11:14:12 AM5/12/12
to sh...@googlegroups.com

c是一个很靠谱的驱动语言,不靠谱的高级语言,中级语言,不可或缺。

在 2012-5-12 下午2:11,"孑影" <yhsp...@gmail.com>写道:

姚 飞

unread,
May 12, 2012, 11:36:46 AM5/12/12
to sh...@googlegroups.com

使用C语言编程时需遵守但不限于以下要求:

a)   注意区分 ==  =,与常数比较时使用 “数值 == 变量”的形式;

b)   尽可能减少使用指针数据类型,使用前必须检查其是否在合理范围;

c)   尽可能减少使用全局变量作为模块间通讯手段;

d)   不可随意安排return语句;

e)   检查函数的返回值;

f)   头文件中不允许包含对象或函数的定义。

g)   访问数组前必须检查下标范围;

h)   if 语句后的语句块,循环语句的循环体,必须有花括号包围;

i)   ++--运算符不得和其他运算符混合使用;

j)   逻辑运算符&&||的右操作数不得带有副作用,所谓带有副作用,就是指执行某条语句时会改变运行环境,如执行 x=i++之后,i 的值会发生变化;

k)   慎用基于动态内存分配的算法;

l)   只允许用数组索引做指针运算;

m)   表达式的值必须在任何求值顺序下保持一致,使用括号保证运算顺序;

n)   不得使用逗号表达式;

o)   所有非空的 switch 子句都应该以 break 语句结束;

p)   switch 的最后一个子句必须是 default 子句。如果 default 中没有包含任何语句, 那么应该有注释来说明为什么没有进行任何操作;

q)   不允许使用 goto 语句和continue 语句;

r)   循环体中最多只能出现一个 break 语句用于结束循环;

s)   函数只能有一个出口,这个出口必须在函数末尾;

t)   函数不得调用本身,无论是直接的调用,还是间接的调用。



在 2012-5-12,下午2:11,孑影 <yhsp...@gmail.com> 写道:

david pu

unread,
May 12, 2012, 11:52:17 AM5/12/12
to sh...@googlegroups.com

好多都是错的,至少我看来是这样....

姚 飞

unread,
May 12, 2012, 12:26:24 PM5/12/12
to sh...@googlegroups.com
那说明你已经在错误的道路上走得太远了。

这都是很基本很普通的要求了,特别是针对嵌入式和高可靠高安全性设计而言。

孑影

unread,
May 12, 2012, 9:28:49 PM5/12/12
to sh...@googlegroups.com
指针的使用是不可避免的,
全局变量的使用是必须要控制的
动态内存的申请也不可能杜绝的,不过动态内存换成,内存池来集中管理,是个无奈的方案

Jeova Sanctus Unus

unread,
May 12, 2012, 9:51:56 PM5/12/12
to sh...@googlegroups.com
如果直接使用common lisp的话,很多要求直接可以忽略了。
我只是个cl初学者,所以可能理解有错误,请指正.

a)   注意区分 ==  和 =,与常数比较时使用 “数值 == 变量”的形式

cl不存在 == 和 = 混用的问题,cl里面,赋值是setf,判断相等是=.

b)   尽可能减少使用指针数据类型,使用前必须检查其是否在合理范围;

cl没有指针数据类型,使用前,编译器都会帮你判断是否在合理范围.

c)   尽可能减少使用全局变量作为模块间通讯手段;

cl算是函数编程语言,本身就不鼓励使用全局变量。

g)   访问数组前必须检查下标范围;

cl的编译器会帮你检查

i)   ++或--运算符不得和其他运算符混合使用;

cl好像没有 后自增的,只有前自增,虽然可以自己写个宏出来,实现后自增功能。

m)   表达式的值必须在任何求值顺序下保持一致,使用括号保证运算顺序;

如果一个cl的表达式是这样自的(a b c d)那么作为参数的b c d,计算顺序一定是先b,再c,最后d.

o)   所有非空的 switch 子句都应该以 break 语句结束;

cl的switch都自带了break;当然可以自己写个宏来实现像c一样的switch.

ybzhao

unread,
May 12, 2012, 10:10:20 PM5/12/12
to sh...@googlegroups.com
它能达到接近汇编的性能吗?

在 12-5-13,Jeova Sanctus Unus<jeova.san...@gmail.com> 写道:

--
从我的移动设备发送

z7z8th

大熊

unread,
May 12, 2012, 10:14:54 PM5/12/12
to sh...@googlegroups.com


在 2012年5月12日 下午3:04,Honglei Cong <congh...@gmail.com>写道:
C语言一个很大的优势就是比其他语言更接近机器语言



当年我是c和pascal几乎同时开始学,后来选了pascal,再又delphi,不过现在吃饭还是用了c/c++。在我看来c和pascal没什么差别,支持的语言特性几乎一样, 但系统底层使用的都是c决定了如今活下来的是c。(不知除了delphi,还有人用其它pascal比如freepascal开发?)



--
立志在女儿把我搞崩溃前把她养大
看着女儿一天天长大,可惜我还是菜鸟

Jeova Sanctus Unus

unread,
May 12, 2012, 10:16:42 PM5/12/12
to sh...@googlegroups.com
你还是用汇编吧,
这里有个比较c/c++,lisp,java的
www.flownet.com/gat/papers/lisp-java.pdf

姚飞

unread,
May 12, 2012, 10:41:57 PM5/12/12
to sh...@googlegroups.com
捣乱,大家在说C,你扯什么common lisp

别人说前门楼子,你说XX头子

姚飞
--------------------------------
上海卫星工程研究所

Jeova Sanctus Unus

unread,
May 12, 2012, 11:08:05 PM5/12/12
to sh...@googlegroups.com
嗯。。忘记看标题了。。。。不好意思

david pu

unread,
May 12, 2012, 11:18:08 PM5/12/12
to sh...@googlegroups.com
2012/5/12 姚 飞 <yaof...@gmail.com>:

> 使用C语言编程时需遵守但不限于以下要求:
>
> a) 注意区分 == 和 =,与常数比较时使用 "数值 == 变量"的形式;
"数值 == 变量" 这个写法只是个人习惯的问题,防止类似if( a = 1)之类的错误。但是其实现在的编译器都能抓到这种低级错误,给你个warning。
只要养成-Wall,-Werror, 再用-Wno-error关你确实不需要warning as error的就没必要这个奇怪的写法。
>
> b) 尽可能减少使用指针数据类型,使用前必须检查其是否在合理范围;
这个应该是无法避免的。

>
> c) 尽可能减少使用全局变量作为模块间通讯手段;
>
> d) 不可随意安排return语句;
>
> e) 检查函数的返回值;
>
> f) 头文件中不允许包含对象或函数的定义。
同意,但是inline的除外。

>
> g) 访问数组前必须检查下标范围;
>
> h) if 语句后的语句块,循环语句的循环体,必须有花括号包围;
如果只有1行,按照linux kernel的coding style,不要这个括号。
>
> i) ++或--运算符不得和其他运算符混合使用;
val = *ptr++的写法还是很常见地。

>
> j) 逻辑运算符&&或||的右操作数不得带有副作用,所谓带有副作用,就是指执行某条语句时会改变运行环境,如执行 x=i++之后,i 的值会发生变化;
>
> k) 慎用基于动态内存分配的算法;
没有malloc和kmalloc/kzmalloc,你让人怎么干活。
>
> l) 只允许用数组索引做指针运算;
指针运算(+/-)除了void指针都是合法的。

>
> m) 表达式的值必须在任何求值顺序下保持一致,使用括号保证运算顺序;
>
> n) 不得使用逗号表达式;
>
> o) 所有非空的 switch 子句都应该以 break 语句结束;
>
> p) switch 的最后一个子句必须是 default 子句。如果 default 中没有包含任何语句,
> 那么应该有注释来说明为什么没有进行任何操作;
>
> q) 不允许使用 goto 语句和continue 语句;
goto 用于出错处理是很常见的。特别是linux kernel代码里。
循环里面跳过特定的值不用continue??

>
> r) 循环体中最多只能出现一个 break 语句用于结束循环;
>
> s) 函数只能有一个出口,这个出口必须在函数末尾;
参见q)
>
> t) 函数不得调用本身,无论是直接的调用,还是间接的调用。
有种东西叫递归。。

>
>
>
> 在 2012-5-12,下午2:11,孑影 <yhsp...@gmail.com> 写道:
>
> 今天看了一评论,什么是C语言,什么是C
>
> 欢迎,大家吐槽,灌水,,,
>
>

--
() ASCII Ribbon Campaign
/\ Keep it simple!

姚 飞

unread,
May 12, 2012, 11:53:34 PM5/12/12
to sh...@googlegroups.com
苍白无力的辩驳,说明你不具备编写高可靠高安全性软件的资质,哈哈。估计也没亲自做过单元测试。

= *ptr++ 的用法确实很常见,在这方面出事情更常见。

养成 数值==变量 的习惯要比看warning的习惯要简单一些。

david pu

unread,
May 13, 2012, 12:54:48 AM5/13/12
to sh...@googlegroups.com
写了8年的c代码,其中6年都是公司里的商业项目,没法想象不看warning也能写出搞可靠性高安全性的代码。
事实上,treat warning as error是基本的要求。
关于coding style,写linux kernel代码就遵守kernel的coding style,其它项目会有各自的coding
style要求,但是还没有一个会限制:
1.不能使用递归.
2.不能使用类似*ptr++的style

2012/5/13 姚 飞 <yaof...@gmail.com>:

ybzhao

unread,
May 13, 2012, 1:05:06 AM5/13/12
to sh...@googlegroups.com
卫星研究所的要求想必严一点是正常的

在 12-5-13,david pu<pulq...@gmail.com> 写道:

--
从我的移动设备发送

z7z8th

机械唯物主义 : linjunhalida

unread,
May 13, 2012, 1:37:43 AM5/13/12
to sh...@googlegroups.com
比一般人手写汇编要快。

2012/5/13 ybzhao <ybzha...@gmail.com>:
> 它能达到接近汇编的性能吗?

--
GuruDigger- We help internet products find technical partners who
share the same dream!

- http://gurudigger.com

姚 飞

unread,
May 13, 2012, 2:37:18 AM5/13/12
to sh...@googlegroups.com
怪不得,怕的就是你这种自以为是刚刚入门的熟手,哈哈。

推荐你学习一下MISRA C语言设计规范,不一定全都遵守,但希望会有一点帮助。

liyaoshi

unread,
May 13, 2012, 2:45:53 AM5/13/12
to sh...@googlegroups.com
gnu的代码好多warning的其实

但是大家多是假装没事,

UBUNTU的人手也不一定那么多吧,改写现有的代码。。。

特别是当ARM eabi规范改动了的时候。。。

Typhoon.Free.Wolf at gmail.com

unread,
May 13, 2012, 4:10:20 AM5/13/12
to sh...@googlegroups.com
我见不得我编写的代码里有 warning 。除非这个 warning 是技术上无法避免的(比如用支持范型的高版本编译器位不支持范型的地板本运行环境编译程序,这个冒 warning 是没办法的)。

david pu

unread,
May 13, 2012, 5:47:15 AM5/13/12
to sh...@googlegroups.com
2012/5/13 姚 飞 <yaof...@gmail.com>:
> 怪不得,怕的就是你这种自以为是刚刚入门的熟手,哈哈。
我不知道哪里让你觉得我自以为是了,请帮忙指出呵呵,这不是我的本意。我只是在讨论一个C的coding style的问题而已。
BTW,我除了你倚老卖老似的一句"苍白无力的辩驳,说明你不具备编写高可靠高安全性软件的资质,哈哈。估计也没亲自做过单元测试。",
其实还没有看到多少有信息量的回复。

Liu Cheng

unread,
May 13, 2012, 6:27:58 AM5/13/12
to sh...@googlegroups.com
我支持你,主要的几点我和你看法一样,剩下的都是coding的规范各按各的一点问题都没有。
最搞笑的就是递归,我看到过各种各样的C项目,都递归用的好好的,难道他们写个快速排序还要自己维护个栈,都不考虑下代码的复杂性的么

2012/5/13 david pu <pulq...@gmail.com>:

Lu Yiguang

unread,
May 13, 2012, 6:42:19 AM5/13/12
to sh...@googlegroups.com
只是平心而论,嵌入式开发的确要少用递归,如果递归层数太深对于嵌入式设备而言资源占用是多那么一点。。

但我始终认为,在递归层数不是很深而且对于算法效率提升很大的情况下,是可以用递归的。

dunrong huang

unread,
May 13, 2012, 6:51:04 AM5/13/12
to sh...@googlegroups.com
做过几年嵌入式开发, 真心觉得嵌入式领域写代码比其他领域要求的高, 内存访问, 数组定义, 线程堆栈大小,
递归等等, 要求不是一般的严格. 甚至之前写代码都要定义一个 #ifdef LOW_MEMOEY 之类的宏
--
linuxer and emacser and pythoner living in beijing
blog: http://mathslinux.org
twitter: https://twitter.com/mathslinux
google+: https://plus.google.com/118129852578326338750

孑影

unread,
May 13, 2012, 7:13:08 AM5/13/12
to sh...@googlegroups.com
你说的那些问题,只是不同公司不同的要求而已,开发的时候,大的项目都有统一code style,
像val=*pstr++

这种分隔的若是普通的一行代码做两件事情,一般在代码走查的时候会被,标记,

除非 pstr++ 后面是逗号,否则一般一条正常的语句是允许做两件事情的,

而且,这种语句不设计到性能问题,而且这种语句是有歧义的语句,大型的项目里面,真心,能少用则不用,不然哭死维护的人员,

然后goto语句 也没有限制死不能用,但是限制了跳转的方向。

递归 效率低,存在安全隐患,但是,非常事情非常手段,非常编程,老蒋说的,一定要用的地方还是得用的,

warning 的地方必须要有注释,

孑影

unread,
May 13, 2012, 7:26:05 AM5/13/12
to sh...@googlegroups.com
还有,就是 那些著名的项目代码并不一定写的很好,写的很好的项目并不一定很著名

但是写好没一行代码是每个程序员的责任,

举个例子来说,

某一个项目我用
#define KSTRCMP(a,b)  (*(a)==*(b) && (strcmp((a),(b))==0)

替换了 strcmp

结果那个项目投产,出现bug

然后发现大概对应到源码中是这行附近,但是维护人员表示看不懂,就说是这行代码隐藏bug

所以兄弟我悲剧了,心惊胆战的测试了好几组数据,发现在测试环境没有问题,小半天时间人都憔悴了几圈,

当时无比的郁闷,

最后问题,定位到了,原来是投产的时候打包错了版本,

可见,良好的编码,可以甚很多事情,其实某些时候,除了不可预计的循环里面需要注意效率问题外,其他地方,代码能写明显,就明显点,毕竟看代码的人技术水平不一定比你高,看不懂你的代码不会说你技术牛,有可能反咬你都不一定,

Long Bai

unread,
May 13, 2012, 9:11:35 AM5/13/12
to sh...@googlegroups.com
不同级别的嵌入式有不同的要求,MISRA C今年应该有一版更新,期待一些不同的变化

使用者多的应该水准会高些,看了使用人少的exosip,随便看看几行就有bug,

递归不是不可以,但输入参数一定在自己的可控范围内。但这个要求和扩展性还是有一定矛盾,性能上可能会差一些,尽量不用递归吧。

姚 飞

unread,
May 13, 2012, 10:26:37 AM5/13/12
to sh...@googlegroups.com
哈哈,俺一向倚老卖老,你慢慢习惯就好。

liyaoshi

unread,
May 13, 2012, 9:44:13 PM5/13/12
to sh...@googlegroups.com
药肥他们想的是,宁可错杀一千,不可放过一个,卫星到了天上,就不好拿下来重新刷机了

ubuntu的人想的是,要最大兼容性,不要影响别人


我说的没错吧?

其实我想的是,多快好省,快点出工,快点赚钱

在 2012年5月13日 下午10:26,姚 飞 <yaof...@gmail.com> 写道:

liyaoshi

unread,
May 13, 2012, 9:46:43 PM5/13/12
to sh...@googlegroups.com
QNX的很多BSP相关代码,直接hard code

你不能说人家这个风格有多好,人家跟你说我一个机器4秒钟进OPENGL界面,你咋说?

ning zhou

unread,
May 13, 2012, 9:49:45 PM5/13/12
to sh...@googlegroups.com
 和需求,应用场景什么的有关啦。
--
Best Regards.
Zhou Ning 周宁

liyaoshi

unread,
May 13, 2012, 10:09:18 PM5/13/12
to sh...@googlegroups.com
你们说微软的代码风格好不好?人家跟你说他们卖出去超过50亿套软件

这种玩意多是瘌痢头儿子,一百样才是自噶的好

Conner Mo

unread,
May 14, 2012, 12:38:20 AM5/14/12
to sh...@googlegroups.com
大家可以去看看《C++语言的设计和演化》,C++语言的发明者写的,比较文艺的。

2012/5/14 liyaoshi <liya...@gmail.com>:

Xunzhen Quan

unread,
May 14, 2012, 12:52:01 AM5/14/12
to sh...@googlegroups.com
这里说的是C不是C++呢

2012/5/14 Conner Mo <conn...@gmail.com>

吴朱华

unread,
May 14, 2012, 1:45:01 AM5/14/12
to sh...@googlegroups.com
连COBOL都还没淘汰点,C还早了
--
Cheers!
人云科技 PeopleYun.com
只有掌握和控制最核心的云计算技术,才能在这场巨大的浪潮中处于主导!!!

孑影

unread,
May 17, 2012, 11:15:49 AM5/17/12
to sh...@googlegroups.com
呵呵,感情你老大是高 COBOL的吗?

厉害啊,

在 2012年5月14日 下午1:45,吴朱华 <ike...@gmail.com>写道:
连COBOL都还没淘汰点,C还早了

在 2012年5月14日 下午12:52,Xunzhen Quan <quanx...@gmail.com>写道:

这里说的是C不是C++呢


2012/5/14 Conner Mo <conn...@gmail.com呵呵>

姚 飞

unread,
May 17, 2012, 12:25:04 PM5/17/12
to sh...@googlegroups.com
25年前见过COBOL的书,没见活人用过。真啰嗦的语言啊。

杨毅涛

unread,
May 17, 2012, 12:42:32 PM5/17/12
to sh...@googlegroups.com
COBOL看介绍说的不错哦。没有玩过,呵呵。

liyaoshi

unread,
May 17, 2012, 8:59:39 PM5/17/12
to sh...@googlegroups.com
银行里面有人用,没人敢升级系统

在 2012年5月18日 上午12:25,姚 飞 <yaof...@gmail.com> 写道:

chengdong diao

unread,
May 17, 2012, 9:48:46 PM5/17/12
to sh...@googlegroups.com
是啊,这谁敢升级银行系统啊。万一数据范围不对,那岂不惨啦。

姚 飞

unread,
May 17, 2012, 10:35:04 PM5/17/12
to sh...@googlegroups.com
COBOL程序由4部(DIVISION)组成:IDENTIFICATION DIVISION.(标识部)、ENVIRONMENT DIVISION.(环境部)、DATA DIVISION.(数据部)、 PROCEDURE DIVISION.(过程部),而每个部又由若干节 (SECTION)组成。
前3个DIVISION都是注释,却又必须,只到第4个DIVISION“PROCEDURE DIVISION”才真正涉及程序代码,这样的繁琐规定使得COBOL被批评为开场白像老太太裹脚布。但是,基于这样的4个DIVISION的明确记述等的严格形式,COBOL也被公认是可读性强的语言。另外,COBOL的保留字数量庞大,字数过长的保留字太多是COBOL的特征之一。


在 2012-5-17,下午11:15,孑影 <yhsp...@gmail.com> 写道:

YF Lau

unread,
May 17, 2012, 11:21:32 PM5/17/12
to sh...@googlegroups.com
鄙人有幸接触过Cobol写的系统。 Cobol对非编程人员可读性的确还不错, 但是其他方面真的是一言难尽啊

2012/5/18 姚 飞 <yaof...@gmail.com>



--
Best regards to you and your family

孑影

unread,
May 21, 2012, 11:12:49 AM5/21/12
to sh...@googlegroups.com
^_^
Reply all
Reply to author
Forward
0 new messages