云网牛站
所在位置:首页 > Linux编程 > 在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

2021-02-28 10:16:11作者:陈铜稿源:云网牛站

本文介绍在Fedora Linux 33系统上进行COBOL开发的入门知识内容,将详细介绍如何安装GnuCOBOL和配置工具,以及编译和运行COBOL程序。

 

前言

当前尽管其流行度有所下降,但COBOL仍在许多主要组织中为关键业务运营提供支持,随着对这些应用程序进行更新、升级和故障排除的需求不断增长,对具有COBOL开发知识的人的需求也可能会增加。

另外,要提的是,Fedora 33是COBOL开发的绝佳平台。

在Fedora Linux 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.

如下截图:

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

现在,您可以按“ESC”键退出插入模式,然后按“:x”保存并关闭文件。

通过键入以下内容来编译程序:

# cobc -x helloworld.cbl

它应该快速完成,返回状态为0。键入“ls”以查看当前目录的内容。您应该看到原始的helloworld.cbl文件,以及一个名为helloworld的新文件。

执行COBOL程序:

# ./helloworld

如果您看到文本输出没有错误,则说明您已成功编译并执行了该程序!如下图:

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

现在,我们已经具备了编写,编译和运行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.

如下截图:

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

和以前一样,按“ESC”键退出插入模式,然后按“:x”保存并关闭文件。

编译程序:

# cobc -x fib.cbl

现在执行程序:

# ./fib

该程序将要求您输入数字,然后根据该数字生成斐波那契输出。如下图:

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

 

关于安装GnuCOBOL时系统上可用的文档

在您安装GnuCOBOL时,Fedora Linux 33系统上已经安装了有用的文档。您可以使用以下终端命令访问它们:

# info gnucobol

# man cobc

# cobc -h

注:当前互联网上有大量资源可供查阅,但是大量的知识仅存在于旧版的书中。在访问书店和公共图书馆时,请留意老式的COBOL指南,这对您学习和掌握COBOL开发非常有用。

在Fedora Linux 33上安装和配置工具,及编译和运行COBOL程序

 

相关主题

在Linux系统中配置开发JavaFx程序的基本方法

精选文章
热门文章