首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移COBOL代码

迁移COBOL代码
EN

Stack Overflow用户
提问于 2010-08-30 09:31:27
回答 6查看 4.2K关注 0票数 5

我有一个任务是把COBOL代码转换成.NET,有没有可用的转换器?我正在尝试理解高级的COBOL代码。我在理解COBOL代码时遇到了麻烦。有没有流程图生成器?我很感谢你的帮助。

谢谢。。

EN

回答 6

Stack Overflow用户

发布于 2010-08-30 23:12:30

将软件系统从一种语言或操作环境迁移到另一种语言或操作环境总是一个挑战。下面是一些需要考虑的事情:

由于长期存在快速修复和解决问题的历史,

  • 遗留代码的结构往往很差。
  • 转换代码会导致进一步的“去结构化”,以补偿源和目标实现平台之间的不匹配。当你从一个结构很差的基础(遗留系统)开始时,最终的结果可能是遗留体系结构和/或业务流程的完全过时,以至于它远比无用更糟糕,实际上可能是COBOL代码的misleading.
  • Complexity几乎总是被低估。
  • 许多“特性”将被公布到转换后的系统中,这些“特性”最初是为了补偿那些“不能同时完成”的事情(由于内存较小,计算机速度较慢等原因)。其中许多现在可能不是问题,而且您真的不想要它们。
  • 没有明显或直接的方法可以将遗留的流程驱动系统重构为等效的面向对象系统(至少不是以有意义的方式)。

已经有一些成功的项目将COBOL直接迁移到Java中。参见naca。然而,的最终结果只是它的母亲(或其他COBOL程序员)可能喜欢的东西,see this discussion

一般来说,我对任何声称要将您的COBOL遗留系统转换为COBOL的另一个版本(例如COBOL.net)的产品或工具都持怀疑态度。为此,您最终得到的仍然是本质上是COBOL系统的系统。如果这种方法是可以接受的,那么您可能希望从Micro Focus查看此white paper

我的天,你取代COBOL的最好办法就是重新设计你的系统。如果你找到了从你所在的地方到你想去的地方的灵丹妙药--写一本书,成为一名顾问,然后赚到数百万美元。

很抱歉提供了这样一个否定的答案,但如果您使用的不是微不足道的遗留系统,那么这个问题将不会是微不足道的。

注意:不需要费心绘制现有系统的流程图。尝试处理流程输入/输出,并对数据转换和流程进行编程。您需要了解这里的业务功能,而不是它的具体实现。

票数 10
EN

Stack Overflow用户

发布于 2010-08-30 20:48:44

Micro Focus和Fujitsu都有支持.NET的COBOL产品。Micro Focus允许您下载产品试用版,而Fujitsu NetCOBOL站点有许多文章和案例研究。

微焦点http://www.microfocus.com/products/micro-focus-developer/micro-focus-cobol/windows-and-net/micro-focus-visual-cobol.aspx

富士通http://www.netcobol.com/products/Fujitsu-NetCOBOL-for-.NET/overview

票数 7
EN

Stack Overflow用户

发布于 2010-09-06 23:23:54

注:我在Micro Focus工作

实际上,让COBOL应用程序在.NET框架上可用是非常简单的(与早期响应中的声明相反)。Fujitsu和Micro Focus都有COBOL编译器,可以创建在CLR中执行的ILASM代码。

Micro Focus Visual COBOL (http://www.microfocus.com/visualcobol)使得部署传统的、过程化的COBOL作为托管代码变得特别容易,完全支持COBOL数据类型、文件系统等。它还包括更新的OOCOBOL语法,消除了大量的冗长和复杂的语法,使得基于C#示例编写COBOL代码变得非常容易。它独特的方法也使得使用所有的Visual Studio工具都很容易,比如IntelliSense。

最初的问题提到了“转换”,我强烈建议不要采用任何需要将源代码转换为其他语言才能在.NET环境中使用的方法。所涉及的工作量和风险极不可能值得获得任何收益。相反,保留在COBOL中的代码将维护现有的工作代码,并允许将来部署到其他平台上。例如,如果只有一组源代码,并且可以选择在不更改一行源代码的情况下将其作为本地语言部署到.NET和环境中,会怎么样?

我建议您从上面的链接获取Visual COBOL的试用版,看看如何在不做任何更改的情况下使用.NET中的现有代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3597331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档