【问题标题】:COBOL Compiler and debugging in a real environment真实环境中的 COBOL 编译器和调试
【发布时间】:2011-12-09 09:01:55
【问题描述】:

我喜欢接触 COBOL 语言的编译和调试。对于一个尽可能接近现实生活的工作环境,有哪些组件和独立性?

在 Win32 环境下是否可行?还是现代英特尔架构?如果有,有没有 需要特定的启动、操作系统或硬件,还有什么?

我看到了 IBM z/OS,它看起来不像是针对面向全面商业环境的未来的“孩子”的东西。它似乎也适用于 z/ 架构处理器,没有什么可以像 SCALA、Ruby、Haskell 等那样“带回家并开始”。

我在 Google 的大部分时间都在关注 OpenCOBOL、MX Cobol 以及一些 更多的兄弟姐妹。我没有尝试过这些,也不确定它们是否会应用我搜索的内容。

当我阅读这些内容时,查看用户评论的问题,阅读环境常见问题解答,这些软件包看起来像是某种沙盒,可以制作 COBOL,但有一点“额外”。甚至还有用于开发环境的 COBOL 和 GUI 的 VS .NET 实现!这就是我不标记 OpenCobol 和 NetCobol 的原因。

我进一步寻找一个简单的"hello world", "array[0..10]", "obj = new objectY" "y | y == false"(语言介绍当然以语法开头)。目的是接触有目的的常见业务任务。 IE。读取/读取数据文件,创建和使用针对 MSSQL 的连接,从正在执行的软件或脚本中获取输入等等。

【问题讨论】:

    标签: cobol


    【解决方案1】:

    OpenCOBOL 可能是作为入门或爱好学习的最佳选择。它是 FOSS 并且得到了相当好的支持。拿一本红皮书或在线教程去看看吧。

    其他一切都会让你花钱。富士通 COBOL 可能是 x86 处理器上最常用的 COBOL,至少以我的经验来看,但它并不便宜。

    您说得对,z/OS 实施并不容易。它通常在大型机上运行。但是,COBOL 也最常出现在同一环境中。那里有 z/OS 模拟器,但我认为它们不合法。 IBM 对版权非常严格。

    【讨论】:

      【解决方案2】:

      嗯,一些简单的示例:

      “你好世界”

      Display "Hello World"
      

      "array[0..10]"(假设为 int)

      01 My-Array-Area.
        02 My-Array occurs 11 pic s9(8) binary.
      

      “obj - new objectY”(假设 obj 被声明为对象引用)

      Invoke objectY new returning obj
      

      “x | y == false”(“y”一个关系条件必须与“y”一个变量命名不同,除非你做了组限定,所以我把一个改为x)

      if (x or (y = false))
        ...do stuff...
      else
        ...do other stuff...
      end-if
      

      【讨论】:

      • 使用 Cobol 创建一个“Hello World”程序需要更多的代码 :-)
      • @LucM - 呃,不,这就是创建 cobol 程序所需的全部内容。不过,它确实需要一个句号。
      • 不需要IDENTIFICATION DIVISION., ENVIRONMENT DIVISION., CONFIGURATION SECTION., WORKING-STORAGE SECTION., PROCEDURE DIVISION. ?
      【解决方案3】:

      我们公司已经在 Cobol 发展了超过 25 年。我们仍然每天都在编写新代码。我们的系统包含大约 400 万行模块化 Cobol 代码,并被新西兰和澳大利亚的许多组织使用。

      我们开始使用 Ryan-McFarlane (RM) Cobol,但大约 20 年前改用 AcuCorp 的 AcuCobol。几年前它们被 Micro-Focus 收购,但 AcuCobol 的东西仍然作为“扩展”存在。这是一个真正现代的 Cobol,可以与 Java 互操作,做客户端-服务器,多线程,可以提供 Web 服务等等,而且它也非常独立于平台。您可以在任何当前的 Windows 版本、数十种 Unix 风格(包括许多版本的 Linux)以及旧的大型机平台上使用这个 Cobol。它也是“一次编译,到处运行”范式的一个很好的例子,因为我们只在一台机器上编译我们的程序,但是软件在许多不同的平台(Linux、Solaris、AIX、HP/UX、等等)

      我相信您可以下载扩展编译器/运行时的 30 天评估版。

      顺便说一句,除了作为一个满意的客户之外,我与 Micro-Focus 没有任何关系。

      【讨论】:

      • 谢谢。有道理。当时间再次合适时,我会检查那个替代方案。顺便说一句,作为学习,您建议针对哪种类型的应用程序?每种语言通常都有一个特定的任务,使事情成功更简单。
      • 在我看来,最好的办法是学习 Java。现在有很多东西都是基于 Java 的(比如 Android),学习它真的不会出错。它可能不是所有任务的最佳语言,但了解 Java 及其原理将帮助您使用大多数现代语言。我还建议您熟悉 Maven 作为项目管理工具。现在似乎所有的大项目都用 Maven 来管理。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多