【问题标题】:Have COBOL compiled Program -- Missing Source有 COBOL 编译的程序 -- 缺少源
【发布时间】:2008-12-01 18:00:08
【问题描述】:

我们有一个非常重要的应用程序,但到目前为止还没有源代码。该应用程序是用 COBOL 编写的,编译后的版本在我们的生产系统中并且正在运行。

但是,我们需要迁移到新的服务器和新的 cobol 编译器。我们的印象是,我们需要重新编译代码才能使其在新服务器上工作。运行现有的编译程序会导致运行时内存错误。

我们有一些程序的源代码,但它是旧的。不知道它和编译后的程序有什么区别。

好的,那么问题来了——我们应该怎么做?

时间不站在我们这边,因为我们必须将旧服务器发回以获得功劳。想法,建议,疯狂还是其他? (源代码控制很明显,这不是我能做的,所以保存讲座)

【问题讨论】:

    标签: cobol


    【解决方案1】:

    创建旧服务器的映像。然后将旧服务器作为新服务器上的虚拟机运行。

    但是,我同意更好的选择可能是保留您的生产服务器。

    【讨论】:

    • 这是一个权宜之计,但却是为自己争取时间的好方法。
    • 好主意 - 老板不会这样做,并且不确定 cobol 许可证管理器是否仍将在虚拟机上运行,​​但还是个好主意。
    • 你的老板可能不得不接受,在这种情况下,一个不太完美的解决方案是唯一的解决方案。
    【解决方案2】:

    从短期来看,安排保留旧服务器可能会更便宜。从半长期来看,您需要花时间和预算来重新设计程序,要么重新编写它,要么看看将旧代码改造成程序当前所做的工作需要付出多少努力。

    【讨论】:

    • 你是对的 - 坚持使用旧服务器是最好的选择。我让他们退回到它,而不是使用旧的代码副本。但是,早期估计需要 2 个多月的时间才能将代码副本返工为我们可以在生产中运行的东西。不能在旧服务器上停留那么久(不由我决定)
    【解决方案3】:

    很遗憾。你应该咨询Source Recovery Company

    【讨论】:

    • 这是一个非常有趣的链接。
    【解决方案4】:

    如果你的源代码相对接近编译版本,试试这个:

    • 将新版本反编译成汇编器
    • 将旧源代码编译成汇编器
    • 比较
    • 尽可能将新版本与旧版本的差异整合到旧源代码中
    • 重复

    为了增强这一点,并且可能作为第二步,因为它将使源代码远离新的编译版本,使用输入数据进行测试,然后根据输出尝试逆向工程创建该输出所需的内容.您拥有的测试输入数据越多,它的效果就越好。

    祝你好运!

    【讨论】:

      【解决方案5】:

      (我不是 COBOL 程序员,但是..) 如果您知道编译原始程序的编译器是什么版本,您至少可以编译旧的 cobol 源;如果编译的版本相同,则您知道源实际上是当前版本。

      如果它们不同,您可以尝试(以某种方式)decompile,或至少disassemble,工作编译版本和新编译版本,并使用diff tool 了解有多大差异.

      【讨论】:

      • 我们知道源是不一样的,因为二进制差异显示生产中的编译程序与我们拥有的源副本的编译程序之间的差异。所以我们知道源代码并没有生成在生产环境中运行的编译程序。
      • 但是如果你反汇编你会得到一个(一点点)更具可读性的差异......一些小的陈述可能会产生巨大的二进制差异。
      【解决方案6】:

      疯狂的建议:COBOL DECOMPILER --> SOURCE --> NEW COBOL COMPILER...?

      (编辑:http://juggersoft.com - PAID cobol 反编译器)

      【讨论】:

      • 不疯狂 - 只是找不到。即使是不可读的源代码,因为我们可以将文本与源代码副本进行比较,我们必须尝试了解主要差异。谷歌只是没有找到。
      【解决方案7】:

      如果你有.int(中间)二进制文件,你可以在新服务器上运行,如果没有,你必须重新编译。

      【讨论】:

        【解决方案8】:

        该程序可能由外部资源生成,并且该个人或软件公司或组织可能在其存储库中拥有最新的源代码。如果您最近合并,它可能由您的上级组织持有,或者可能在您组织中的不同或备份计算机安装中。开发者的用户帐户上可能有一份副本,但可能尚未发送到生产或现场站点,或者总部的某个人有一份副本来评估并尝试解决问题。如果给这些人打电话,您可能会成功,或者您可以随时与安装计算机操作员或支持人员交谈,看看他们是否在磁带、CDROM 或其他备份存储上保存了一个。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-17
          相关资源
          最近更新 更多