看了几天COBOL,也在仿真器上面编译运行过一些代码。
一些体会,
这确实是给商业用的语言。我想起来POS上的应用开发,实际上也是使用字符串为基础的数字去进行数学运算。这个COBOL的本质是一样的。保存一个数字型数据的根本,就是一个字符串,同样的空间,如果是在结构体中,可以被一个字符串的内容所覆盖。
IF…ELSE…组合的限制很多,就是一个分支你就能用来写一句处理。当然,可以PERFORM来执行一段代码。但必须分段整理好。还是由于没有{}这种符号包括。
88的数据标识很有用。我前两天还在疑惑COBOL这种语言写起大量的数据比较的时候岂不是累死,原来有88这么好用的标识。直接规定了一个变量的适用范围,命中,88就直接判断成功。
循环方面只能说是够用。当然了,有类似于BASIC的写法,TIMES … UNTIL…,或者 FROM… BY … UNTIL.
GO TO能用
没有函数。因此没有返回值。当然了,用变量(只有全局变量)来模拟也是可以的。但是,在COBOL里面就没必要了。都是全局变量,都是过程段。划分好功能和作用域就好了。
DISPLAY的时候,把各个内容顺序排列就好了,不需要额外的连接符,这一点为何后来的语言都不采纳了。非要一个.一个+的。
PERFORM相当于CALL了,只是没有调用栈,没有入参和返回值。只有返回。
更多的利于排版、利于打印的语言设计。
总的来说,就是一门商业语言。银行、商业机构用这个再合适不过了。浮点数什么的绝不会出现。
总的来说,COBOL诞生在高级语言之初,运算指令和基础库函数之间没有分野的。因此,SORT会成为指令,TABLE的INDEX会在TABLE声明时直接映射给变量,在现在看来是方便了使用,但也反映出业务需求推动语言设计的特点。
对于商业业务来说,这是一门优秀的语言,而对于计算机语言来说,则混淆了基础元素和业务之间的界限。一种更佳的演进,就是各种表格软件以及其嵌入语言,比如Excel和VBA。