首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

COBOL 入門指南:從環境建置到經典範例程式

     編輯:程式設計綜合問答

COBOL 現況與學習動機

COBOL (Common Business-Oriented Language) 仍廣泛運作於銀行核心帳務、保險理賠、政府稅務等關鍵系統。學習 COBOL 不僅為維護舊系統,更能理解「記錄導向」、「固定格式」、「十進制算術」等商業計算基因。

開發環境快速建置

平台編譯器/IDE安裝方式
WindowsGnuCOBOL (OpenCOBOL)choco install gnucobol 或 官網下載 安裝包
LinuxGnuCOBOLsudo apt-get install open-cobol / yum install gnucobol
macOSGnuCOBOLbrew install gnucobol
雲端/瀏覽器JDoodle, Replit, Tutorialspoint Online Compiler零安裝,適合嘗試片段
企業級IBM Enterprise COBOL, Micro Focus Visual COBOL需授權,支援 CICS/DB2/IMS 整合

Hello World 經典結構

       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-MESSAGE PIC X(20) VALUE 'HELLO, COBOL WORLD!'.
       PROCEDURE DIVISION.
           DISPLAY WS-MESSAGE.
           STOP RUN.

關鍵點: 固定欄位格式 (1-6 行號, 7 指示符, 8-11 A區, 12-72 B區),大寫關鍵字,句點結尾。

核心語法速查

  • 資料定義: 01 WS-NUM PIC 9(5)V99 VALUE 123.45. (隱含小數點 V,定點數運算無浮點誤差)
  • 條件判斷: IF WS-AGE GREATER THAN 18 THEN ... ELSE ... END-IF.
  • 迴圈: PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 10 ... END-PERFORM.
  • 檔案處理: SELECT IN-FILE ASSIGN TO "DATA.DAT" ORGANIZATION IS LINE SEQUENTIAL. → OPEN INPUT IN-FILE. READ IN-FILE INTO WS-RECORD AT END SET EOF-TRUE TO TRUE. CLOSE IN-FILE.
  • 子程式: CALL 'SUBPROG' USING WS-PARAM. (動態連結)

實戰練習專案建議

  1. 薪資計算批次: 讀取員工主檔 → 依職等/工時計算薪資 → 寫入薪資明細檔 → 列印報表。
  2. 交易日終結算: 讀取交易流水 → 更新帳戶餘額 (ISAM/VSAM 索引檔) → 產生對帳報表。
  3. 畫面互動 (CICS/ISPF): 使用 BMS 映射定義畫面,RECEIVE MAP/SEND MAP 處理終端機互動。

學習資源推薦

  • 教學網站:Tutorialspoint COBOL、IBM COBOL for z/OS 文檔
  • 書籍:《COBOL for the 21st Century》(Stern/Stark),《Murach's Mainframe COBOL》
  • 原答案提供的百度文庫連結時效性不穩,建議優先參考官方文檔與開源編譯器範例。

給新手的避坑指南

  • 編譯錯誤多為欄位對齊問題: 使用支援 COBOL 的編輯器 (VS Code + Cobol Plugin, Notepad++ 語法高亮) 確保 A/B 區正確。
  • 數值運算精度: 永遠使用 PIC 9(n)V9(m) 定點數,嚴禁用浮點數 處理金額。
  • 檔案狀態碼: 每次 READ/WRITE/OPEN/CLOSE 後檢查 FILE STATUS (00 成功, 10 結束, 22 重複鍵, 30 永久錯誤...)。

COBOL 雖古老,但其「自文件化」、「強類型商業數據」、「批次處理極致可靠」的設計哲學,至今仍是微服務、領域驅動設計的靈感來源之一。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved