如何定义COBOL的范围?它是静态范围的吗?
答案 0 :(得分:4)
Cobol对变量进行编译时绑定,有时称为静态范围。
在此范围内,Cobol支持程序中的多个范围:
“外部”变量是Fortran或汇编程序常见部分的等价物,它们是真正的全局变量。
在工作存储中声明为全局的“全局程序范围”变量对于在该程序中包含的所有嵌套子程序中声明它们的整个程序是可见的。
在工作存储中声明的“程序范围”变量对于声明它们的整个程序是可见的。
在本地存储中声明的“程序范围”变量对于声明它们的整个程序是可见的,但在每次调用时都会被删除并重新初始化。思考线程范围,sorta。
“嵌套程序范围”Cobol不区分程序和功能/程序,其程序或功能的等同称为程序。程序中可以包含无数个程序,每个程序的变量仅在该单个程序的范围内可见。您可以将其视为功能/程序范围。
许多供应商拥有的OO扩展和2002标准定义了传统的公共/受保护/私有对象范围和方法范围。
“Cobol”和Radar,Laser和Scuba一样古老,我们可以请它停止拼写它吗?
答案 1 :(得分:1)
COBOL程序中的所有变量都是全局范围的。事实上,没有“范围”(在传统的COBOL中,我没有搞乱OO扩展),而只是“模块”或“程序”。
通过链接部分(通常由ref传递)完成模块间通信,并且从被调用模块中可以看到所有变量。
答案 2 :(得分:0)
COBOL使用静态(词法)范围(如C,C ++,Java和Pascal)。动态范围在编程领域并不常见。我认为某些版本的Lisp和SNOBOL使用了动态范围。
如果您有兴趣了解编程语言的范围,请查看this document