学习COBOL无需访问大型机

时间:2010-12-13 20:26:10

标签: windows cobol

我是计算机科学专业的研究生。我的部门使用Java教授大部分课程(虽然我确实参加了一门关于系统架构的课程,该课程使用C来演示处理器调度,内存管理等......但我离题了。)

我想了解有关COBOL的更多信息,但我无法访问大型机系统。任何人都可以推荐一个适用于Windows的免费 COBOL编译器,这样我就可以通过一些基本的COBOL教程了吗?

免责声明:是的,我已经用Google搜索过,所以希望有经验的人提供更多信息。

谢谢!

6 个答案:

答案 0 :(得分:22)

其他海报提出了Tiny COBOL,但也看了OpenCOBOL。 OpenCOBOL 是C的交叉编译器,并且具有相当活跃的开发社区。

COBOL不是一门难学的语言。除非你想要进入大型机商店, 花费大量时间学习COBOL可能没有太多的职业回报。

正如belisarius指出的那样,语言并不像需要学习的环境那么多。 通过类比,也没有太多关于C语言的知识。然而, 只知道C不会让你走得太远 - 你需要与之合作 随附的巨大标准库。 COBOL与此类似 尊重。不同之处在于COBOL没有大型标准库,它是软件包的一部分 通常包括:CICS,DB / 2,MQ系列和一系列其他库服务(IBM环境中的LE服务)。

COBOL可以在大型机环境之外找到,但可以在大型机上找到 是它的“真正的家”。作为概括,“大型机”意味着运行Z / OS的IBM大型机 (许多人可能会对此声明不以为然)。本出版物:Introduction to the Mainframe - z/OS 是一个了解IBM大型机环境的好地方。

我发现COBOL的特征是:

  • COBOL是一种程序性语言。一些供应商已经添加了OO扩展 新的COBOL语言标准包括OO扩展,但这主要是装饰。 COBOL从根本上说是一种程序性语言。

  • 数据声明。 PICTURE/USAGE事情有点令人费解。数据声明相结合 带有表示的内部数据表示(二进制,压缩十进制,浮点,字符等) (位数,前导零,符号等)成一个声明。

  • REDEFINES用于提供相同底层内存的不同视图。

  • 分层数据声明。使用级别编号定义数据层次结构。 1级定义了顶部 层次结构和不断增加的数字定义较低等级66(与RENAMES一起),77,88具有特殊含义。

  • 控制流程。许多程序员(甚至是一些资深的COBOL程序员)查看SECTION/PARAGRAPH 以类似于过程调用的方式。它们完全不同。 SECTION/PARAGRAPH做 不遵循正常的面向堆栈的调用/返回语义。 COBOL使用独特的机制进行管理 从PERFORMed部分/段落返回。

  • 具有大量全局变量的整体程序。找到COBOL源文件并不罕见 用几百个全局变量运行成千行。 COBOL不一定要用这种方式编写 - 我相信这是一个可以追溯到时代的遗产 程序调用被认为是昂贵的,但PERFORMingSECTION/PARAGRAPH非常有效。习惯 似乎已经陷入困境,新的COBOL程序也往往被写成单片怪物。

  • 字符串处理噩梦。 COBOL可以很好地进行财务计算。它没有 字符串处理非常好。字符串处理动词INSPECTSTRINGUNSTRING都可以 一些有趣的事情,但也变得非常恶化。

  • 需要了解
  • COPY/REPLACINGREPLACE编译器指令。他们表现得有点 与大多数其他语言中的文件包含不同。大多数商店仅将COPY用于普通记录或 数据声明,其他人也将它们用于通用程序代码(使用REPLACING和/ REPLACE)。

考虑到C的工作知识,你应该能够毫不费力地接受COBOL。

答案 1 :(得分:7)

我不会解决您的具体问题,因为很多年前我停止了作为大型机系统程序员的工作(以及大型机一般......包括COBOL)。不过,我想强调两点:

  1. COBOL是一种易于学习的语言。一开始你会觉得语法令人生畏。许多“分歧”,“部分”,“段落”......只是试图理解它们存在的原因。没有人写这些标签。 COBOL使用和重新定义数据结构的方式可能是最有趣的概念,试着很好地理解它。

  2. 这是关键点。我说“COBOL很容易”。现在是坏消息:成为一个公平的大型机COBOL程序员很容易。但这与COBOL无关,而是环境。大型机很大,那里有很多“生态系统”。您有DB2,CICS,一些JCL和VSAM作为最低限度,可能还有十几个,具体取决于您的安装。打印机,磁带和其他专业和难以管理的硬件。他们每个人都需要几年的时间来驯服,这才是一个优秀的大型机程序员的真正价值所在。 Microfocus有一个昂贵的编译器/环境产品,能够模拟其中的一些功能,但我认为它现在已经不在市场上了。
    无论如何,具有这些功能的灵巧通常是“在商店”获得的,并且很难(相信我)从书本或课件中获取。

  3. 也就是说,在学习和驯服COBOL之后,不要期望获得大型机工作(除了超级初级工作)。这只是第一步。

    HTH!

答案 2 :(得分:1)

曾经有一家名为“The Kompany”的公司的Cobol-to-C编译器和Eclipse IDE。该产品被称为“Kobol”。它可以让你使用基于eclipse的环境编写Cobol,这个环境类似于你用于大型机的环境(Rational Developer for Z)。他们有免费的演示版和廉价的学生版IIRC。

你会发现Cobol易于学习,易于编写并且很难用脚射击自己。这是金融机构非常受欢迎的原因之一。

我认为您将Cobol添加到工具箱中非常棒。

答案 3 :(得分:0)

你试过TinyCobol吗?我认为我曾经使用它一次也不错。

前段时间,MicroFocus有他们的IDE +编译器(Net Express)的免费版本,但他们不再提供它。我很确定我在这里有一个安装程序某处的副本,但我不确定如果他们不再提供该产品,那么安装它仍然是合法的。我今晚可以看一下(它会出现在我的另一台计算机上,目前是无头和无效的),看看我想出了什么。

答案 4 :(得分:0)

尝试OpenCOBOL http://www.opencobol.org/,它是免费的,它可以在Windows和Linux上运行,并且正在积极开发中。

答案 5 :(得分:0)

微焦点现在提供免费的个人版Visual COBOL用于非商业用途。此COBOL可与Microsoft Visual Studio一起用作.Net语言或Eclipse。它甚至还带有精简版的Visual Studio,因此您无需购买。您可以从https://www.microfocus.com/product-downloads/vcpe/vcpe22/index.aspx

下载

www.opencobol.org/上的开源OpenCOBOL现在已更改其名称和位置。现在称为GNU Cobol,可以在sourceforge.net/projects/open-cobol/找到。这是一个出色的COBOL,它实现了ANS 85和ISO 2002 COBOL标准的重要部分。

GNU COBOL网站还提供了一个链接到Gary Cutler的OpenCOBOL 1.1程序员指南,这是一个很好的语言参考。如果您正在寻找学习材料,可以在www.csis.ul.ie/cobol/course上试用我的COBOL教程

还有一个非常有用的在线版本的COBOL使用OpenCOBOL编译器。它可以在http://www.compileonline.com/compile_cobol_online.php找到 查看他们过长的“Hello world”计划。在ISO 2002 COBOL中,不需要IDENTIFICATION DIVISION,并且由于程序在到达文本末尾时停止,因此也不需要STOP RUN。实际上只需要下面显示的三条线。亲自尝试一下。

PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
   DISPLAY 'Hello, world'.