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