我正在看一个RPG程序。有一些像这样的子程序:有没有工具哪一个程序可以创建这个程序,可以在单独的过程中使用?
C Eval FinQty# = 0
C Eval OdCom# = OhCom#
C Eval OdOrd# = OhOrd#
C OdKey Setll OeOrd1
C OdKey Reade OeOrd1
C Dow %eof = *off
*
C If OdPrt# = OdAls# and
c %subst(odprt#:1:3) <> 'FRT'
C Eval FinQty# += OdQty#
C Endif
*
C OdKey Reade OeOrd1
C Enddo
*
是的,有工具。我不会使用它们。
可以说,子过程的主要好处是局部变量和参数化接口。没有自动化工具能够梳理出接口,并且找出应该将哪些全局变量作为局部变量是一项艰巨的任务。
对我来说,自动化工具所要做的就是将语法从EXSR转换为CALLP。"子过程"仍然使用全局变量,接口仍然对程序员隐藏。有什么意义?
是
我特别喜欢Linoma的RPG Wizardhttp://www.linomasoftware.com/products/rpgtoolbox/rpgwizard
Arcad有另一个工具,但它有更多的功能,更$$$。http://www.arcadsoftware.com/products/arcad-transformer-ibm-i-refactoring-tools/
注意Linoma会将语法从内部子例程转换为内部过程;但是将程序移到外部将是一个手动过程。
然而我相信Arcard的工具集可以构建一个外部过程