cobol源程序的格式如下:
每行開頭有6個字符的序號區??梢暂斎?00010,000020等表示行,也可以不輸。
序號區后面是一個字符(第7位)的指示符區,如第一行所示??梢杂?和/表示注釋,_表示續行,D表示調試。
指示符區后面是4個字符(8~11位)的A區??梢苑湃氩浚潱螛祟},段名,層指示符和層號01與77,
關鍵字DECLARATIVES和END DECLARATIVES,程序結束標題。
A區后面(12位以后)是語句體,稱為B區。過程部的語句必須從B區開始。B區寬度通常為72或80個字符。
本例是70個字符。
空行的每個區都是空格
標識部(2~4行),PROGRAM-ID段包含程序名,是每個程序都必須的。AUTHOR等其他段是可有可無的。
環境部(5~15行),提供與程序外部有關的項目,具體地說,就是列出程序所用的文件。如果不需要可以省略。
環境部有配置節(6~10行)和輸入輸出節(11~15行)。
第7行表示編譯程序的計算機。如果指定WITH DEBUGGING MODE就編譯調試行。
第8行表示程序運行的計算機。
第9,10行包含一組指定輸出樣式。這里是標準輸出,可以自定義。
輸入輸出節只用于文件。
第13到15行表示如果程序使用文件,則這個段對每個文件包含一個項目。
文件控制項目的格式取決于文 件的描述類型。
數據部(16~22行),提供程序變量的存放位置,對不同的數據類型分成不同的節:文件數據(File Section)、
靜態數據(Working-Storage Section)、參數(Linkage Section)、通信(Communication Section)、
報表(Report Section)。
文件節(18~21行),每個文件描述中包含文件所含紀錄的定義,文件節中的數據或從文件讀取,
或由寫文件的程序產生。
第22行表示工作存儲節,這節包含程序所需的臨時結果和初始化靜態數據的數據。
參數(Linkage Section)包含調用程序傳遞的數據(其他語言中稱為參數)。
通信(Communication Section),處理COBOL程序和通信設備之間的消息。
報表(Report Section),報表節實現COBOL報告編寫工具系統所需的數據。
第20,21行的PIC是PICTURE的縮寫,表示定義數據格式。
X(12)表示12個字符的字符串,9(09)表示9位的整數。
可以將基本項目組成層次結構,稱為組數據項或組。
COBOL程序中的數據項的定義從層號開始,01層是最高層,49層是最低層。
77層項目用于某個組的數據項,如程序中的臨時變量。
66層是為特殊描述符項目保留的,可以更名現有的數據項或組,或以原定義未允許的方式組合。
88層是對特殊數據項目條件名保留的
如:
03 STATE PIC XX.
88 NEW-ENGLAND VALUES ARE "1","2","3","4","5".
IF NEW-ENGLAND ... then do something
過程部(23~30行),包含構成程序的過程性語句。
帶DECLARATIVES的過程部。有些程序用特殊的USE語句表示遇到特殊條件時要執行的過程,
如發生I/O錯誤時。
USE語句組合在一起,放在過程部開頭,由關鍵字DECLARATIVES和END DECLARATIVES限定。
第24行相當于定義了一個名字叫ACAB030100-PROC()的函數。
第25,29行定義了標志,可以用GO TO 語句跳轉到這個地方,執行下面的語句。
第26行在屏幕上打印,相當于printf("ACAB030100-START");
第27行是調用ACAB030100-PROC()函數。
cobol程序的要求:必須以英文句號.結束部標題、節標題、段名、項目和語句。
句號為小數點時,兩邊都要有數字。