多个 Cobol 子程序可以在同一个模块中吗
Posted
技术标签:
【中文标题】多个 Cobol 子程序可以在同一个模块中吗【英文标题】:Can multiple Cobol subroutines be in the same module 【发布时间】:2018-02-23 04:35:48 【问题描述】:在 java 中,我可以创建一个具有许多辅助类型方法的实用程序类型类。 Cobol 是一种适用于很多事情的语言,但无法将参数传递给内部段落并不是其中之一。我已经开始在单独的模块中使用一些子例程并调用它们。这导致了 2 个问题:
-
有人知道内部段落调用与“外部”子例程调用的相对性能吗?我确实在我的联动编辑器控制卡中包含了子程序模块。
是否可以使用一个模块包含多个子例程?看起来链接部分排除了这个......但想知道是否有一种方法可以创建一个类似于辅助类(充满辅助方法)的 Cobol 模块。
谢谢,
【问题讨论】:
这一切都取决于你的编译器,即...? 【参考方案1】:对于问题 1,这取决于实现和编译器选项。
对于问题 2,使用 COBOL 85,可以从同一源编译多个程序。例如:
program-id. prog-1.
...
end program prog-1.
program-id. prog-2.
...
end program prog-2.
etc.
每个程序都好像是单独编译的。这些程序共享的任何公共数据或文件都可以通过使用EXTERNAL
子句提供给每个程序。
程序也可以嵌套。例如,
program-id. multi-nested.
...
program-id. prog-1.
....
end program prog-1.
program-id. prog-2.
....
end program prog-2.
end program multi-nested.
这些程序共享的任何公共数据或文件都可以通过使用GLOBAL
子句提供给每个程序。
某些实现允许使用ENTRY
语句。例如,
program-id. multi-entry.
...
linkage section.
...
procedure division [ using ... ].
...
entry "prog-1" using ...
...
entry "prog-2" using ...
...
end program multi-entry.
在此示例中,LINKAGE SECTION
包含所有参数,即使每个入口点可能只使用其中的一部分。
它们的使用方式在很大程度上取决于网站标准。
【讨论】:
以上是关于多个 Cobol 子程序可以在同一个模块中吗的主要内容,如果未能解决你的问题,请参考以下文章