非標準邏輯中的自動演繹

[拼音]:COBOL yuyan

[英文]: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語言的主要特點是:

(1)面向檔案。COBOL語言是一種典型的按檔案系統方式進行資料處理的語言。檔案(如檔案、帳冊等)是事務資料處理的基礎。COBOL程式將處理物件按一定方式組織成檔案,記錄在計算機的外部裝置上。它通過對資料層次結構的描述,說明同一檔案中資料項之間的聯絡,因而可在資料的任一層次進行檢索和處理。

(2)接近英語自然語言。COBOL語言中大量採用普通英語詞彙和句型,如描述性子句接近英語主表結構,操作性語句接近英語的祈使句。例如,把A和B兩個資料項的內容相加,就寫成ADD A TOB。因此COBOL程式看起來很像一篇用英語寫的文章,學過英語的人很容易看懂。

(3)通用性強。在COBOL程式中資料、執行環境和處理過程是分別單獨描述的。它通過定義記憶名,使處理過程的描述中不直接涉及使用的外部裝置的名字。因此,只要對裝置描述和記憶名定義作少量的修改,即可將一個COBOL程式移植到另一臺計算機上執行。

(4)功能模組化。在標準COBOL文字中實現功能模組化,它對每一種功能模組的特性、語義及限制作了嚴格的規定。編譯系統的設計者可根據需要和系統規模選用全部或部分功能模組。模組本身又進一步分為一級和二級,高一級模組包含了低一級模組的全部功能。選用模組的多少並不影響語言的基本結構。ISO COBOL-72只有8個功能模組,ISO COBOL-78則擴充到12個功能模組(見表)。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-PRICEACCEPT(接收)、MULTIPLY(乘)、DISPLAY(顯示)是三個英語動詞。QUANTITY(數量)、PRICE(單價)、TOTAL-PRICE(總價)是變數的名稱,代表被處理的物件。BY(被......)、GIVING(給出)是輔助用的保留字,說明被處理物件之間的關係。上述程式的意義為:從終端上接受操作員用鍵盤輸入的商品數量值,然後將數量乘以單價得出總價,最後在顯示螢幕上顯示總價。