COBOL 開發介紹 Fedora Linux33


儘管 COBOL 的受歡迎程度下降,但它仍在許多主要組織中繼續增強重要的業務運營。隨著對這些應用程序的更新、升級和故障排除需求的增加,對具有 COBOL 開發知識的人員的需求也在增加。

Fedora 33 是​​一個很棒的 COBOL 開發平台。
本文詳細介紹瞭如何安裝和配置工具以及如何編譯和運行您的 COBOL 程序。

工具安裝和配置

GnuCOBOL 是由志願者開發人員維護的免費、開放和最新的編譯器。要安裝,請打開終端並運行以下命令:

# sudo dnf -y install gnucobol 

完成後,運行以下命令以驗證 GnuCOBOL 是否已準備好工作。

# cobc -v

顯示版本信息和構建日期。 如果您收到錯誤“無輸入文件”,請不要擔心。下一步是使用 Vim 文本編輯器創建 COBOL 程序文件。

Fedora 帶有 Vim 的最小版本,但如果有完整版本可以提供的一些附加功能,例如突出顯示 COBOL 語法,那就太好了。運行以下命令安裝 Vim-enhanced,它會覆蓋 Vim-minimal。

# sudo dnf -y install vim-enhanced

創建、編譯和運行 COBOL 程序

此時,您已準備好編寫 COBOL 程序。此示例使用用戶名 fedorauser 進行設置,並在您的主目錄中創建一個文件夾來存儲您的 COBOL 程序。我稱之為我的 COBOL 代碼。

# mkdir /home/fedorauser/cobolcode
# cd /home/fedorauser/cobolcode

您現在可以創建並打開一個新文件並導入您的 COBOL 源程序。這稱為 helloworld.cbl。

# vim helloworld.cbl

現在 Vim 將打開一個空白文件供您編輯。這是一個簡單的程序,它只向終端打印一條消息。

按“i”鍵在vim中啟用插入模式,然後輸入以下文本: 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

該程序接受一個數字輸入並根據該數字產生一個斐波那契輸出。

進一步的研究

互聯網上有很多資源,但很多知識只存在於傳統印刷品中。訪問二手書店和公共圖書館時,請注意老式 COBOL 指南。您可以以最低的價格找到瀕臨滅絕的手冊的副本。

另請注意,當您安裝 GnuCOBOL 時,系統上已經安裝了有用的文檔。您可以使用以下終端命令訪問它們:

# info gnucobol
# man cobc
# cobc -h



Source link