我有一项将COBOL代码转换为.NET的任务。有可用的转换器吗?我试图在高级别了解COBOL代码。我无法理解COBOL代码。有流程图生成器吗?我感谢任何帮助。
谢谢..
答案 0 :(得分:10)
将软件系统从一种语言或操作环境迁移到另一种语言或操作环境始终是一项挑战。这是 需要考虑的一些事项:
已经有成功的项目将COBOL直接迁移到Java中。见naca。 但是,最终结果只是其母亲(或其他COBOL程序员)喜欢的东西,see this discussion
一般情况下,我会怀疑任何产品或工具声称转换您的COBOL遗产 除了另一个版本的COBOL(例如COBOL.net)之外的任何系统。为此你还是 最终得到的本质上是一个COBOL系统。如果这种方法可以接受那么你 可能想要从Micro Focus审核这个white paper。
恕我直言,您更换COBOL的最佳选择是重新设计您的系统。如果你找到了 从你所在的地方到你想去的地方的银弹 - 写一本书,成为 一位顾问,赚了数百万美元。
很抱歉提供了这样一个否定的答案,但是如果您正在处理任何事情 但是一个微不足道的遗留系统,这个问题将是微不足道的解决方案。
注意:不要打扰现有系统的流程图。尝试处理过程输入/输出和程序以编程数据转换和流程。您需要在此处了解业务功能,而不是具体的实现。
答案 1 :(得分:7)
Micro Focus和富士通都拥有可与.NET配合使用的COBOL产品。 Micro Focus允许您下载产品试用版,而Fujitsu NetCOBOL网站上有许多文章和案例研究。
富士通 http://www.netcobol.com/products/Fujitsu-NetCOBOL-for-.NET/overview
答案 2 :(得分:3)
[注意:我为Micro Focus工作]
您好
实际上,在.NET框架上提供COBOL应用程序非常简单(与之前的一个响应中的声明相反)。富士通和Micro Focus都有COBOL编译器,可以创建ILASM代码以便在CLR中执行。
Micro Focus Visual COBOL(http://www.microfocus.com/visualcobol)使传统的程序化COBOL部署为托管代码变得特别容易,完全支持COBOL数据类型,文件系统等。它还包括一个更新的OO COBOL语法,它可以带走很多冗长的&语法的复杂性很容易编写基于C#示例的COBOL代码。它独特的方法还可以轻松使用所有Visual Studio工具,如IntelliSense。
最初提出的问题是“转换”,我强烈建议不要在使用.NET环境之前将源代码转换为其他语言的任何方法。所涉及的努力程度和风险极不可能值得任何累积的利益。相反,将代码保留在COBOL中会维护现有的工作代码,并允许将来可以选择部署到其他平台上。例如,如何拥有一组源代码并可以选择在不改变源代码行的情况下将.NET作为本机语言部署到Java环境中?
我建议您从上面的链接获取Visual COBOL的试用版,并了解如何在.NET中使用现有代码而不进行任何更改。
答案 3 :(得分:2)
这不是一件容易的事。 COBOL有关于数据类型的基本思想,这些数据类型不能很好地映射到面向对象的.NET框架(例如,在COBOL中,所有数据类型都以固定大小的缓冲区表示),特别是组和数组工作的方式不映射很好的.NET类。
我相信有些COBOL编译器可以实际编译.NET字节码,但是它们有自己的运行时库来管理所有这些。可能值得查看其中一个编译器并将遗留代码留在COBOL中。
除此之外,可能无法进行逐行翻译。查看更高级别的代码并一次翻译代码块(例如,在程序级别或甚至更高级别)。
答案 4 :(得分:1)
如何将COBOL转换为现代可扩展环境(如.NET或Java)有很多机制。
第一个是迁移到新环境,通过一些小的修改保存现有的COBOL代码(NET Microfocus COBOL);
第二个是通过模拟COBOL语句和结构迁移到新平台。当有一些额外的.NET / Java库来模拟某些特定的COBOL逻辑时: ACCEPT转到NETLibrary.Accept等。
当您迁移到具有新环境所有好处的“纯”NET / Java代码时,第三种方法是最有价值的方法。它可以在未来轻松维护和开发。
然而,这种方法需要独特的专业知识和工具包,在这种情况下,全球市场上只有少数参与者可以帮助您。 如果我们谈论的是自动迁移,那么玩家的数量会大大减少,不幸的是,你需要为特定的技术和工具付费(比如我们的)。
然而,将资金投入到现代环境中的未来增长中比将资金用于旧技术的“模拟”更好。
答案 5 :(得分:0)
翻译不是一件容易的事。除了Micro Focus和Fujitsu,还有Raincode提供了Cobol的免费版本,可以很好地与Visual Studio集成。