簡介
COBOL語言,是一種面向過程的高級程式設計語言,主要用於數據處理,是目前國際上套用最廣泛的一種高級語言。
COBOL是英文Common Business-Oriented Language的縮寫,原意是面向商業的通用語言。它採用 300多個英語單詞作為保留字,以一種接近於英語書面語言的形式來描述數據特性和數據處理過程,因而便於理解和學習。COBOL語言是專門為企業管理而設計的高級語言,可用於
統計報表、財務會計、計畫編制、
作業調度、情報檢索和
人事管理等方面。
發展
50年代中期電子計算機開始用於商業和企業的
事務處理,而事務處理與科學計算不同,數據繁多而運算簡單,它只需要一定的運算能力,但對數據結構的描述和大批量數據的分析處理方面則要求有很強的功能。
1956年在美國富蘭克林學會召開的高級語言學術討論會上提出FLOWMATIC語言,並在UNIVAC Ⅰ型計算機上實現。這是第一個面向數據處理的語言,它為
COBOL的誕生創造了良好的條件。
1959年5月
美國國防部召開專門會議,討論建立通用
商業語言的要求和可能性,確定了這種語言的基本設計思想和應具有的特點。會後成立數據系統語言委員會(
CODASYL),其中有一個短期工作委員會專門負責COBOL語言的開發。
1959年9月提出初稿,1960年4月正式公布第一個COBOL文本,稱為COBOL-60。經過進一步擴充和完善,又出現了COBOL-61和擴展COBOL-61。
1965年出現COBOL-65。1968年被美國國家標準化協會(
ANSI)批准為標準文本,即ANSICOBOL X3.23-1968,簡稱COBOL-68。
1972年
國際標準化組織 (ISO)把此文本推薦為國際標準,即ISO COBOL-72,並被美國、英國、法國、日本和蘇聯等21個會員國所承認。
1974年美國國家標準化協會對COBOL-68作了修改補充,公布了新文本ANSI COBOLX3.23-1974。
1978年被國際標準化組織推薦為國際標準文本,即ISO COBOL-78。現在計算機製造商均以ISO COBOL-72或ISO COBOL-78作為設計軟體的依據,幾乎在所有的大、中、
小型計算機上都配有COBOL語言,微型計算機則採用
COBOL的一個子集。中國引進COBOL語言後還增加了漢字處理功能。
特點
COBOL語言的主要特點是:
程式結構圖為COBOL源程式的邏輯結構圖。每個 COBOL語言程式都是按部、節、段和體幾個層次構成的。每個程式由標識部、設備部、數據部、過程部等四個部組成。
標識部提供標識該程式的信息,如程式名、日期、程式設計師的姓名等。
設備部又稱環境部,它提供有關該程式運行環境即計算機主機和
外部設備方面的信息。它是程式中唯一描述計算機硬體的部分。COBOL程式規定把這一部分單獨分出來,藉以提高程式的通用性,把一個COBOL程式從一台計算機移到另一台不同的計算機去時只須修改這一部分內容便可執行。
數據部描述作為處理對象的數據檔案、記錄、
數據項的結構和特性。例子下面是一個記錄描述的例子:
01RECORD-1
02NAMEPICTUREISX(20)
02SEX PICTUREISA
02BIRTHDAY
03YEAR-BPICTUREIS9999
03MONTH-B PICTUREIS99
03DAY-B PICTUREIS99
這一記錄由三項組成:NAME(姓名)是不超過20個字元的字元串,由X(20)說明;SEX(性別)是一個字母,由A說明,程式中可用M表示男性而用F表示女性;BIRTHDAY(出生日期)是一組合項,由3個表示年、月、日的更基本的項組成。各
數據項的層次結構由層號表示,例中的01,02,03就是表示數據項在記錄中的層次。這種表示方法很便於程式設計師描述管理、財會等領域中常見的有結構的數據。
過程部描述數據處理的步驟。數據從外部傳入計算機主存儲器稱為輸入;從主存儲器將數據傳出稱為輸出;數據在主存儲器內從一個存儲區傳到另一個存儲區稱為傳送;對數據進行加、減、乘、除運算稱算術運算。這些都是數據處理的基本操作,程式由一系列描述基本操作的語句組成。如果程式執行中需要根據某個條件是否滿足來決定它的後繼處理步驟,稱為轉移控制,由控制語句來描述。每個
COBOL語句包含一個英語動詞,用以指明該語句操作的性質。動詞後面隨有若干操作對象的信息和描述操作的補充信息。下面是一段COBOL過程部的程式:
ACCEPTQUANTITY
MULTIPLYQUANTITYBYPRICEGIVING
TOTAL-PRICE
DISPLAYTOTAL-PRICE
ACCEPT(接收)、MULTIPLY(乘)、DISPLAY(顯示)是三個英語動詞。QUANTITY(數量)、PRICE(單價)、TOTAL-PRICE(總價)是變數的名稱,代表被處理的對象。BY(被......)、GIVING(給出)是輔助用的保留字,說明被處理對象之間的關係。上述程式的意義為:從終端上接受操作員用鍵盤輸入的商品數量值,然後將數量乘以單價得出總價,最後在顯示螢幕上顯示總價。
組成
標識部(IDENTIFICATIONDIVISION):用於標識程式名。
環境部(ENVIRONMENTDIVISION):用於說明程式運行的環境。
數據部(DATADIVISION):用於說明程式中涉及的所有數據。
過程部(PROCEDUREDIVISION):是程式的核心部分,它決定計算機應進行什麼操作。
字元集
數字0—9,字母A—Z,a—z,專用字元:+-*/=,.;’()<>$及空格。屬於系統字元集而不屬於COBOL字元集的字元只能出現在
COBOL程式中的字元串里。
常量
COBOL常量分為數值常量(如100,-29),非數值常量(如’ABC’)和表意常量(如ZERO,SPACE,HIGH-VALUE,LOW-VALUE,QUOTE,ALL常量)。
書寫格式
第1至6列為”標號區”。第7列為”續行標誌區”
第8至此11列,稱為”A區”。程式中有些內容如部頭,節頭,段頭,層號01,層號77及檔案描述符FD等應從A區開始寫。
第12至此72列,稱為”B區”。寫程式中的正文部分。如過程部中的句子只能從B區開始寫。
第73至80列,稱為”注釋區”。
數據特點
層次的概念:數據間存在的從屬關係。
檔案的概念:多個記錄可以組成一個檔案。
記錄的概念:具有一定層次關係的一組
數據項的最大集合,它是記憶體中具有獨立邏輯含義的最大存取項,具有最高層次。