本文介绍在Fedora Linux 33系统上进行COBOL开发的入门知识内容,将详细介绍如何安装GnuCOBOL和配置工具,以及编译和运行COBOL程序。
前言 当前尽管其流行度有所下降,但COBOL仍在许多主要组织中为关键业务运营提供支持,随着对这些应用程序进行更新、升级和故障排除的需求不断增长,对具有COBOL开发知识的人的需求也可能会增加。 另外,要提的是,Fedora 33是COBOL开发的绝佳平台。
安装GnuCOBOL和配置工具 GnuCOBOL是由志愿者开发人员维护的免费开放的现代编译器。要安装,请打开终端并执行以下命令: # sudo dnf -y install gnucobol 完成后,执行以下命令以验证GnuCOBOL已准备就绪: # cobc -v 您应该看到版本信息和构建日期。如果您看到错误“no input files”,请不要担心。在以下步骤中,我们将使用Vim文本编辑器创建一个COBOL程序文件。 Fedora操作系统附带了最低版本的Vim,但最好具有完整版本可以提供的一些额外功能(例如COBOL语法高亮显示)。运行以下命令以安装Vim-enhanced,它将覆盖Vim-minimal: # sudo dnf -y install vim-enhanced 参考:玩转Linux必备的Vim技能,一文读懂Vim的安装和配置,学习之法。
编写、编译和执行COBOL程序 至此,您可以编写一个COBOL程序了。对于此示例,我使用用户名fedorauser进行设置,并将在主目录下创建一个文件夹来存储我的COBOL程序。我的是cobolcode,如下: # mkdir /home/fedorauser/cobolcode # cd /home/fedorauser/cobolcode 现在,我们可以创建并打开一个新文件,以输入我们的COBOL源程序。我将其称为helloworld.cbl: # vim helloworld.cbl 现在,您应该已经在Vim中打开了空白文件,可以进行编辑了。这将是一个简单的程序,除了向我们的终端打印一条消息外,什么也不做。 通过按“i”键在vim中启用“插入(insert)”模式,然后键入以下文本。Vim将协助您放置代码段。这可能非常有帮助,因为COBOL文件中的每个字符空间都有一个用途(这是开发人员将完成并输入计算机的物理卡的数字表示): IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. *simple helloworld program. PROCEDURE DIVISION. DISPLAY '##################################'. DISPLAY '#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#'. DISPLAY '#!!!!!!!!!!FEDORA RULES!!!!!!!!!!#'. DISPLAY '#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#'. DISPLAY '##################################'. STOP RUN. 如下截图:
现在,您可以按“ESC”键退出插入模式,然后按“:x”保存并关闭文件。 通过键入以下内容来编译程序: # cobc -x helloworld.cbl 它应该快速完成,返回状态为0。键入“ls”以查看当前目录的内容。您应该看到原始的helloworld.cbl文件,以及一个名为helloworld的新文件。 执行COBOL程序: # ./helloworld 如果您看到文本输出没有错误,则说明您已成功编译并执行了该程序!如下图:
现在,我们已经具备了编写,编译和运行COBOL程序的基础,下面让我们尝试执行一些更有趣的事情。 根据您的输入,以下程序将生成斐波那契数列。使用Vim创建一个名为fib.cbl的文件,然后输入以下文本: ****************************************************** * Author: Bryan Flood * Date: 25/10/2018 * Purpose: Compute Fibonacci Numbers * Tectonics: cobc ****************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. FIB. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 N0 BINARY-C-LONG VALUE 0. 01 N1 BINARY-C-LONG VALUE 1. 01 SWAP BINARY-C-LONG VALUE 1. 01 RESULT PIC Z(20)9. 01 I BINARY-C-LONG VALUE 0. 01 I-MAX BINARY-C-LONG VALUE 0. 01 LARGEST-N BINARY-C-LONG VALUE 92. PROCEDURE DIVISION. *> THIS IS WHERE THE LABELS GET CALLED PERFORM MAIN PERFORM ENDFIB GOBACK. *> THIS ACCEPTS INPUT AND DETERMINES THE OUTPUT USING A EVAL STMT MAIN. DISPLAY "ENTER N TO GENERATE THE FIBONACCI SEQUENCE" ACCEPT I-MAX. EVALUATE TRUE WHEN I-MAX > LARGEST-N PERFORM INVALIDN WHEN I-MAX > 2 PERFORM CASEGREATERTHAN2 WHEN I-MAX = 2 PERFORM CASE2 WHEN I-MAX = 1 PERFORM CASE1 WHEN I-MAX = 0 PERFORM CASE0 WHEN OTHER PERFORM INVALIDN END-EVALUATE. STOP RUN. *> THE CASE FOR WHEN N = 0 CASE0. MOVE N0 TO RESULT. DISPLAY RESULT. *> THE CASE FOR WHEN N = 1 CASE1. PERFORM CASE0 MOVE N1 TO RESULT. DISPLAY RESULT. *> THE CASE FOR WHEN N = 2 CASE2. PERFORM CASE1 MOVE N1 TO RESULT. DISPLAY RESULT. *> THE CASE FOR WHEN N > 2 CASEGREATERTHAN2. PERFORM CASE1 PERFORM VARYING I FROM 1 BY 1 UNTIL I = I-MAX ADD N0 TO N1 GIVING SWAP MOVE N1 TO N0 MOVE SWAP TO N1 MOVE SWAP TO RESULT DISPLAY RESULT END-PERFORM. *> PROVIDE ERROR FOR INVALID INPUT INVALIDN. DISPLAY 'INVALID N VALUE. THE PROGRAM WILL NOW END'. *> END THE PROGRAM WITH A MESSAGE ENDFIB. DISPLAY "THE PROGRAM HAS COMPLETED AND WILL NOW END". END PROGRAM FIB. 如下截图:
和以前一样,按“ESC”键退出插入模式,然后按“:x”保存并关闭文件。 编译程序: # cobc -x fib.cbl 现在执行程序: # ./fib 该程序将要求您输入数字,然后根据该数字生成斐波那契输出。如下图:
关于安装GnuCOBOL时系统上可用的文档 在您安装GnuCOBOL时,Fedora Linux 33系统上已经安装了有用的文档。您可以使用以下终端命令访问它们: # info gnucobol # man cobc # cobc -h 注:当前互联网上有大量资源可供查阅,但是大量的知识仅存在于旧版的书中。在访问书店和公共图书馆时,请留意老式的COBOL指南,这对您学习和掌握COBOL开发非常有用。
相关主题 |