版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
COBOL程序設(shè)計COBOL程序設(shè)計課程簡介授課時間:16學(xué)時上機時間:16學(xué)時教材:COBOL語言(上下冊)修訂本 譚浩強清華大學(xué),1994課程簡介授課時間:16學(xué)時主機(大型機)系統(tǒng)主機系統(tǒng)——Mainframe:大型機(mainframe)這個詞,最初是指裝在非常大的帶框鐵盒子里的大型計算機系統(tǒng),以用來同小一些的迷你機和微型機有所區(qū)別。大多數(shù)時候它卻是指system/360開始的一系列的IBM計算機。這個詞也可以用來指由其他廠商,如Amdahl,HitachiDataSystems(HDS)制造的兼容的系統(tǒng)。IBM大型機目前多直接稱為主機主機(大型機)系統(tǒng)主機系統(tǒng)——Mainframe:主機系統(tǒng)得以長盛不衰的主要原因RAS,I/O處理能力以及ISARAS(Reliability,Availability,Serviceability高可靠性、高可用性、高服務(wù)性)是一個IBM常用來描繪它的大型機的詞。目前型號為Z900的大型機的I/O吞吐能力是最低每秒24GB(這是字節(jié)數(shù),不是“位”數(shù)。)ISA(IBMSystemArchitecture)雖然IBM大型機的整體指令集有了顯著改進,IBM保持了驚人的對應(yīng)用程序的向后兼容。許多最為顯著的構(gòu)架上的變化已經(jīng)影響了一些只能直接被操作系統(tǒng)調(diào)用,而不能被應(yīng)用程序調(diào)用的設(shè)備(如I/O子系統(tǒng))。IBM已經(jīng)花費了巨大的努力來保證它的客戶們不必重寫或重編譯他們的程序來在新系統(tǒng)上運行。這樣,客戶要采用新的硬件就更為容易,客戶只需要拔下舊系統(tǒng),換上新系統(tǒng),而不需要做額外的軟件測試工作。主機系統(tǒng)得以長盛不衰的主要原因RAS,I/O處理能力以及I大型機的編程語言——COBOL大型機技術(shù)上有很多領(lǐng)先的地方,積累了很多行業(yè)應(yīng)用,一大堆非關(guān)系(關(guān)系)數(shù)據(jù)庫/Cobol程序之類,這些東東沒法移植,成為大型機可以吃的老本、繼續(xù)輝煌的資本。
IBM的大型機概念強調(diào)的是IO和RAS,追求的是穩(wěn)定、可靠,主要用于商業(yè)管理系統(tǒng);典型編程語言是Cobol。大型機的編程語言——COBOL大型機技術(shù)上有很多領(lǐng)先的地方,第一章COBOL語言概述第一章COBOL語言概述1.1COBOL發(fā)展概況COBOL是一個高級程序設(shè)計語言,1960由CODASYL委員會(ConferenceonDataSystemsLanguages)提出。以后,新的COBOL標(biāo)準(zhǔn)由美國國家標(biāo)準(zhǔn)組織(ANSI)負(fù)責(zé)ANSI推出的3個COBOL標(biāo)準(zhǔn):1968,1974和1985.目前,關(guān)于面向?qū)ο蟮腃OBOL標(biāo)準(zhǔn)正在制定.COBOL是如下單詞的簡寫(COmmonBusinessOrientedLanguage).COBOL設(shè)計來主要是進行事務(wù)處理,多應(yīng)用于商業(yè)領(lǐng)域,典型的諸如文件導(dǎo)向的應(yīng)用。而不是設(shè)計來進行系統(tǒng)編程。一般來說,沒人用COBOL來寫操作系統(tǒng)或者編譯器.1.1COBOL發(fā)展概況COBOL是一個高級程序設(shè)計語言,COBOL——商業(yè)計算首選語言。40年里,它曾經(jīng)的對手:PLI,Algol60,Algol68,Pascal,Modula,Ada,C,C++目前的強大對手:JAVA、C#為代表的新一代語言COBOL——商業(yè)計算首選語言。Gartnergroup的關(guān)于COBOL優(yōu)勢的調(diào)查報告:在1997年他們估計全世界有3千億行的計算機代碼正在使用。其中80%的是COBOL程序,而其他程序總計只占20%。在1999年,他們報告說,超過50%的關(guān)鍵事務(wù)應(yīng)用程序仍然會用COBOL語言編寫,他們最近估計表明在2004-2005年度所有新程序(50億行)的15%將用COBOL開發(fā),同時,80%的部署在計算機里面的程序?qū)ㄒ郧斑z留的COBOL程序。該集團估計,在2002年全世界有大約200萬COBOL程序員,而JAVA和C++程序員各自只有100萬這個數(shù)字正以每年5%的速度遞減。未來10年,Cobol程序員數(shù)目將很快走下坡路,隨著二戰(zhàn)生育高峰人群的退休,人口補充嚴(yán)重不足。Gartnergroup的關(guān)于COBOL優(yōu)勢的調(diào)查報告:2007年,MicroFocus對客戶的調(diào)查顯示,75%的CIO(ChiefInformationOfficer)聲稱他們在未5年需要更多Cobol程序員,73%的CIO發(fā)現(xiàn)要找到一個訓(xùn)練有素的Cobol程序員越來越難。MicroFocus也指出,不管你信不信,每個美國人每天至少都會有13次接觸到COBOL,而且就在看似最平凡的打電話、刷信用卡、通信聯(lián)絡(luò)等日常生活中。當(dāng)然這很大程度上都是在COBOL雄厚的商業(yè)領(lǐng)域基礎(chǔ)慣性,因為銀行和網(wǎng)絡(luò)運營商的內(nèi)部系統(tǒng)很早就在使用COBOL,而且運行良好,沒必要也不方便更換。2007年,MicroFocus對客戶的調(diào)查顯示,75%根據(jù)英國倫敦國際調(diào)研公司Datamonitor的報告,目前全球仍有多達2000億行COBOL語言代碼正在執(zhí)行,而且每年都會增加50億行,全球75%的商業(yè)數(shù)據(jù)和90%的金融交易都由COBOL處理,全球500強企業(yè)中有492家(包括全部前100強)都使用了COBOL,目前在COBOL方面的投資已經(jīng)超過2萬億美元,150-200萬名開發(fā)人員還在使用這種這種已經(jīng)走過了半個世紀(jì)的編程語言。有人預(yù)測說,即使到了2050年,很多現(xiàn)在廣泛使用的編程語言都將消失得無影無蹤,但COBOL很可能依然會在服役。根據(jù)英國倫敦國際調(diào)研公司Datamonitor的報告,目前全IT服務(wù)公司MurphyInternational的NateMurphy說,我們對Cobol程序員和使用Cobol的公司做了調(diào)查,發(fā)現(xiàn)目前Cobol就業(yè)市場包含以下兩種類型:第一,在舊的Cobol代碼和新程序之間充當(dāng)橋梁,這種工作要求人們懂Cobol,懂那些老Cobol程序員所依賴的商業(yè)邏輯,同時懂新的編程語言,如Java。第二是維護舊的Cobol代碼,并編寫新的Cobol代碼。IT服務(wù)公司MurphyInternational的是不是很神奇?
——神奇的COBOL你是不是對上面的材料感到很驚奇?古老的COBOL在流行的JAVA、C++、VB、C#一點都不落下風(fēng)到底是什么原因呢?軟件的兩種類型——“垂直”軟件(定制軟件)“水平”軟件(通用軟件)是不是很神奇?
——神奇的COBOL你是不是對上面的材“垂直”軟件——價值上百萬美金的程序被開發(fā)、或者根據(jù)某些特別公司的需要被裁剪、或者按照特殊事務(wù)規(guī)則進行調(diào)整。但是,卻只有很少的拷貝被使用。一個例子:美國國防部的MRPII系統(tǒng),該系統(tǒng)管理著550,000種零件和部件,儲備價值高達280億美金。該系統(tǒng)運行在Amdahl主機系統(tǒng)上,部署在全美國不同的地方,由4百萬行COBOL程序構(gòu)成“垂直”軟件——價值上百萬美金的程序被開發(fā)、或者根據(jù)某些特別“水平”軟件——像微軟的Office一樣,功能可能也很強大,代碼也很多,但是會有很多個拷貝。因此,每個拷貝的成本并不高。此種軟件競爭激烈,一般用C++、JAVA等新語言進行開發(fā),軟件利潤很高而且更新很快“水平”軟件——像微軟的Office一樣,功能可能也很強大,“垂直”軟件一般說來利潤并不高,每個拷貝的成本卻很高。因此,替換成本很高,因此這種軟件生命周期一般都很長。例如對MRPII的用其他語言改寫的估價為1億美金。因此,對現(xiàn)有COBOL程序的維護需要大量COBOL程序員“垂直”軟件一般說來利潤并不高,每個拷貝的成本卻很高。因此,1.2COBOL語言的特點最適于事務(wù)處理(商業(yè)計算)領(lǐng)域事務(wù)處理的特點是:算術(shù)計算量少而邏輯處理多;輸入輸出量大;數(shù)據(jù)間存在著一定的邏輯關(guān)系(數(shù)據(jù)項間有清晰的層次關(guān)系),大量的分類排序,數(shù)據(jù)結(jié)果將用于報表打印,對打印報表要求較高、多樣化等等。
COBOL所處理的問題具有數(shù)據(jù)繁多而運算簡單的持點。1.2COBOL語言的特點最適于事務(wù)處理(商業(yè)計算)領(lǐng)域COBOL比較接近于自然語言(英語)。COBOL程序看起來很像一篇用英語寫的文章。例如:ADDATOB來表示A+B=>B(A加B,結(jié)果故在B中)MOVECTOD表示將變量C的值傳送到變量D中COBOL大量采用普通英語詞匯和句型,學(xué)過英語的人看程序感到通俗易懂。COBOL比較接近于自然語言(英語)。通用性強由于COBOL語言的標(biāo)準(zhǔn)化程度較高。不同廠家生產(chǎn)的計算機系統(tǒng)所提供的COBOL,是COBOL標(biāo)準(zhǔn)的全集或一個子集。一個計算機上的COBOL程序向另一計算機系統(tǒng)上移植,是比較容易實現(xiàn)的。目前主機系統(tǒng)上面的COBOL可移植更好通用性強COBOL的結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。每個程序分為四大部分(稱為部,division),每個部下面又分為若干節(jié)(section),節(jié)下面又分為若干段(paragraph)。每一部分都有固定的程式。這個特點使初學(xué)者比較容易通過摹仿別人程序中的有關(guān)部分,從而較快地寫出自己的程序。COBOL的結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。COBOL的缺點是比較繁瑣。程序無論大小簡繁,一律都要寫齊四大部分,對每個部進行必要的定義和說明。因此源程序顯得比較冗長。關(guān)鍵字高達300多個,很難記憶。而且很多關(guān)鍵字并不“關(guān)鍵”,可以省略。不過請記?。篊OBOL——世界上(曾經(jīng))使用最多的一種計算機語言COBOL的缺點是比較繁瑣。1.3最簡單的COBOL程序000100IDENTIFICATIONDIVISION.000200PROGRAM-ID.EXAM1A1.000300ENVIRONMENTDIVISION.000400DATADIVISION.000500PROCEDUREDIVISION.000600S.000700DISPLAY'THISISACOBOLPROGRAM.'.000800STOPRUN.1.3最簡單的COBOL程序000100IDENTIFICOBOL程序設(shè)計解析課件COBOL程序設(shè)計解析課件1.4COBOL程序的結(jié)構(gòu)部
IDENTIFICATIONDIVISION.(標(biāo)識部)主要用來指定源程序名字。也可以寫入其它用作備忘的某些信息(如日期、作者等)。ENVIRONMENTDIVISION.(環(huán)境部)指出程序中用到的數(shù)據(jù)文件名與計算機系統(tǒng)的設(shè)備的對應(yīng)關(guān)系,即把某一文件名與一外部設(shè)備聯(lián)系起來。此外還指定目標(biāo)程序中使列的專門控制方法及程序所用內(nèi)存區(qū)的大小等DATADIVISION.(數(shù)據(jù)部)程序中所用到的全部數(shù)據(jù)(包括輸入輸出的數(shù)據(jù)和中間數(shù)據(jù))都應(yīng)在數(shù)據(jù)中說明它們的類型和所占內(nèi)存的情況。PROCEDUREDIVISION.(過程都)用來給出程序要執(zhí)行的指令,使計算機產(chǎn)生相應(yīng)的操作。例如進行運算或其它處理。1.4COBOL程序的結(jié)構(gòu)部節(jié)和段除標(biāo)識部以外,在每一個部的“部頭”的下面,可以有若干個節(jié)(SECTION),每一個節(jié)以“節(jié)頭”作標(biāo)識。每一節(jié)下面又可包括若干段(PARAGRAPH)。每一個段都有自己的名字(即段名)。在標(biāo)識部下面不設(shè)節(jié).直接設(shè)段節(jié)和段COBOL程序設(shè)計解析課件句子、語句和子句在過程部中,每一段由若干個句子(Sentence)組成。一個句子是以句號加一個以上的空格束結(jié)束的。句子又由語句(Statement)組成。一個句子可以只由一個語句組成,一個語句加一個句點后跟一個(多個)空格就成為一個句子。在一個語句中又可以包含若干個子句(clause).每一于句也有一個動詞,它指定某一方面特定的功能。句子、語句和子句過程部中程序的結(jié)構(gòu):部(Division)-部可以包含若干節(jié)節(jié)(Section)-節(jié)可以包含若干段段(Paragraph)-段可以包含若干句子句子(Sentence)-句子可以包含若干語句語句(Statement)-指定計算機完成一定的操作子句(Clause)-指定完成某一方面的特定功能過程部中程序的結(jié)構(gòu):描述體在數(shù)據(jù)部中有若干節(jié),每個節(jié)中有若干個描述體(Descriptionentry),亦譯作描述款目或描述款),每個描述體義由若干個子句構(gòu)成。描述體COBOL程序設(shè)計解析課件1.5COBOL源程序書寫格式自由格式和固定格式voidmain(void){inta,b,c;a=10;b=20;c=a+b;}COBOL則不同,必須嚴(yán)格按照規(guī)定的格式書寫。1.5COBOL源程序書寫格式自由格式和固定格式ANSI源程序書寫格式見圖ANSI源程序書寫格式見圖1.1—6列,為“標(biāo)號區(qū)”??梢蕴顚?個數(shù)字。標(biāo)號由程序編寫者自定,標(biāo)號應(yīng)按由小到大的順序,但不一定連續(xù)。標(biāo)號區(qū)內(nèi)可以寫標(biāo)號也可以不寫標(biāo)號(標(biāo)號區(qū)空白)。標(biāo)號對源程序的執(zhí)行結(jié)果沒有任何影響。在程序編譯時是按程序書寫的順訊進行的,而不是按標(biāo)號大小順序進行的。
2.第7列,是“續(xù)行標(biāo)志區(qū)”。如果在第7列上寫上連接符“-”,則表示本行是緊接在上一行的后面。如果在第7列寫“*”,則表示此行是注解行,即此行可由程序員任意寫上自己所需的內(nèi)容,以對程序(或程序的一部分)作說明。它對程序的執(zhí)行不起任何影響1.1—6列,為“標(biāo)號區(qū)”??梢蕴顚?個數(shù)字。標(biāo)號由程序編3.第8-11列,稱為“A區(qū)”,第8列稱“A區(qū)邊界”。COBOL規(guī)定,程序中有些內(nèi)容,例如部頭、節(jié)頭、段頭、層號01,層號77以及文件描述符FD等應(yīng)從A區(qū)開始書寫
4.12-72列,稱“B區(qū)”。寫程序中的正文部分,例如過程部中的句子只能從B區(qū)開始,而不能寫到A區(qū)去。
5.73-80列.為“注釋區(qū)”。程序員如想對源程序的某些行作些簡單說明,可寫在這8列中,因此寫源程廳時注意個應(yīng)超過第72列,超過的部分在編譯時將被舍棄。3.第8-11列,稱為“A區(qū)”,第8列稱“A區(qū)邊界”。C寫程序的注意事項:每個字符占一格。較早的COBOL版本規(guī)定所有源代碼字母都應(yīng)大寫,但現(xiàn)在使用的COBOL編譯系統(tǒng)允許使用大寫或小寫字母,二者等價。不過習(xí)慣都用大寫字母,主機系統(tǒng)一般都用大寫字母。相鄰的兩個字(如COBOL的保留字或用戶自己定義的名字)之間必須留一個以上的空格。運算符(如加、減、乘、除、乘方)和等號左右兩邊必須各留一個空格。在過程部中左括號的左側(cè)和右括號的右側(cè)要留一空格,而內(nèi)側(cè)不必留空格。逗號、句號、分號的左邊不能留空格,而右邊應(yīng)有空格。一個空格和多個空格作用相同寫程序的注意事項:COBOL程序設(shè)計解析課件1.6COBOL字符和COBOL字COBOL字符系統(tǒng)字符集指的是在輸入輸出操作中允許出現(xiàn)的字符的集合。
COBOL字符集指的是COBOL程序中允許出現(xiàn)的字符(用引號括起來的字符串戶的字符除外)。1.6COBOL字符和COBOL字COBOL字符COBOL字符集:數(shù)字:0~9大寫字母:A~B小寫字母:a~b專用字符:+加號-減號或連接號*乘號或星號/除號=等號,逗號.句號或小數(shù)點;分號‘引號(有的用”)(左括號)右括號<小于號>大于號空格
$美元號COBOL字符集:數(shù)字:0~9+加號COBOL字COBOL字是出COBOL字符組成COBOL字不允許超過30個字符保留字用戶字COBOL字COBOL字是出COBOL字符組成1.7數(shù)據(jù)名數(shù)據(jù)名的概念:數(shù)據(jù)名(Dataname)可以認(rèn)為是由程序設(shè)計者定義的某一片內(nèi)存區(qū)的符號地址,即用一個符號代表一個地址。數(shù)據(jù)名相當(dāng)于其它語言中的變量名,它代表一個具體的數(shù)據(jù)項。COBOL中指的數(shù)據(jù)是廣義的,即下僅指數(shù)值,也可以是字符。1.7數(shù)據(jù)名數(shù)據(jù)名的概念:COBOL程序設(shè)計解析課件數(shù)據(jù)名的定名規(guī)則每個數(shù)據(jù)名的長度為1~30個字符之間。只能由字母、數(shù)字和連接符“-”組成,而且其中至少應(yīng)有一個字母。連字符只能出現(xiàn)在數(shù)據(jù)名的中間,不能出現(xiàn)在數(shù)據(jù)名的兩端(最前或最后)。如:ABC,RATEOF-PAY.3DG4,A1-2-3,1234ABC.WANG-LI都是合法的數(shù)據(jù)名。而:123、JOKN.HENRY,WANG-,-ABC,‘ATEJ’,ABC*DEF,1999-9-9都是不合法的數(shù)據(jù)名。數(shù)據(jù)名的定名規(guī)則數(shù)據(jù)名中不能出現(xiàn)空格不應(yīng)該選擇COBOL的保留字作為用戶定義的數(shù)據(jù)名(300多個保留字,當(dāng)心!)數(shù)據(jù)名最好采用有意義的英文名或者拼音等數(shù)據(jù)名中不能出現(xiàn)空格1.8常量常量——常數(shù)1、數(shù)值常量(Numericalliteral)數(shù)值常量即數(shù)學(xué)上的常數(shù)。如+12300、451.67、-51.635
數(shù)值常量是由正負(fù)號、小數(shù)點、數(shù)字0-9所組成的字符序列注意:小數(shù)點不能多于一個,而且不能出現(xiàn)在常數(shù)的最右邊數(shù)值常量長度不能超過18位數(shù)字。至少要有一個數(shù)字,不能有多于一個符號。數(shù)字之間不能有空格,空格是分界符。1.8常量常量——常數(shù)2非數(shù)值常量(Nonnumericalliteral)用引號括起來的字符串:‘ABCD’、“$123,456.789”、“我是電子科大軟件學(xué)院的學(xué)生”如果想把引號也包括在非數(shù)值常量中,例如想顯示出‘ABCD’六個字符組成的字符串,按以下方式進行:DISPLAYQUOTE“ABCD”QUOTE注意QUOTE只能在這種情況下使用,不能代替一般意義的引號。非數(shù)值常量有120個字符的限制,但不同系統(tǒng)有不同規(guī)定。2非數(shù)值常量(Nonnumericalliteral)3、表意常量(FigurativeConstant)3、表意常量(FigurativeConstant)COBOL程序設(shè)計解析課件1.9COBOL所處理的數(shù)據(jù)的特點1、層次的概念1.9COBOL所處理的數(shù)據(jù)的特點1、層次的概念COBOL程序設(shè)計解析課件01GZTJ02ZGM02SR04JBGZ04FJGZ04YBBZ02KC04BSJ04FZF04SDF04TEF02SFGZ
為了反映某數(shù)據(jù)在一個層次結(jié)構(gòu)中的層次,我們引進層次的概念,層號用二位整數(shù)來表示。用不同的層號表示它們之間的從屬關(guān)系。初等項組合項01GZTJ為了反映某數(shù)據(jù)在一個層次結(jié)構(gòu)中的層次,我們引2、記錄和文件記錄(record)是具有一定層次關(guān)系的一組數(shù)據(jù)項的最大集合。是內(nèi)存中具有獨卞邏輯含義的最大可存取項,具有最高的層次,即層號為01。多個記錄可以組成一個文件(file)多個記錄可以保存在數(shù)據(jù)庫的表中2、記錄和文件COBOL程序設(shè)計解析課件作業(yè)1、COBOL是一種高級程序設(shè)計語言,首先是由__________委員會在1960年提出,是_____的高級程序設(shè)計語言之一。自從COBOL語言誕生其開發(fā)新的COBOL標(biāo)準(zhǔn)的職責(zé)由美國國家標(biāo)準(zhǔn)學(xué)會(ANSI)承擔(dān)2、在過去的近50年里,____________成了事務(wù)處理領(lǐng)域的具有統(tǒng)治地位的程序設(shè)計語言。3、在互聯(lián)網(wǎng)上用GOOGLE搜索COBOL,然后再用百度搜索,閱讀相關(guān)網(wǎng)頁4、請談一下您對COBOL這種古老的成功語言的看法5、簡述COBOL編制的應(yīng)用系統(tǒng)的特點6、簡述COBOL語言成功的一些特點7、第七列位于什么區(qū)?8-11列是什么區(qū)?12-72列是什么區(qū)?8、簡述四大部及其作用?9、嘗試舉出幾個正確的COBOL字10、常量分幾類,判斷下面的常量是否合法,并指出其類別:3.14,-234,345.,$77,“234.56”,“你好”,ABC,SPACE,ZEROES,QUOTE11、嘗試設(shè)計一個COBOL程序,讓其輸出顯示一個“HELLOWORLD!”作業(yè)1、COBOL是一種高級程序設(shè)計語言,首先是由_____COBOL程序設(shè)計COBOL程序設(shè)計課程簡介授課時間:16學(xué)時上機時間:16學(xué)時教材:COBOL語言(上下冊)修訂本 譚浩強清華大學(xué),1994課程簡介授課時間:16學(xué)時主機(大型機)系統(tǒng)主機系統(tǒng)——Mainframe:大型機(mainframe)這個詞,最初是指裝在非常大的帶框鐵盒子里的大型計算機系統(tǒng),以用來同小一些的迷你機和微型機有所區(qū)別。大多數(shù)時候它卻是指system/360開始的一系列的IBM計算機。這個詞也可以用來指由其他廠商,如Amdahl,HitachiDataSystems(HDS)制造的兼容的系統(tǒng)。IBM大型機目前多直接稱為主機主機(大型機)系統(tǒng)主機系統(tǒng)——Mainframe:主機系統(tǒng)得以長盛不衰的主要原因RAS,I/O處理能力以及ISARAS(Reliability,Availability,Serviceability高可靠性、高可用性、高服務(wù)性)是一個IBM常用來描繪它的大型機的詞。目前型號為Z900的大型機的I/O吞吐能力是最低每秒24GB(這是字節(jié)數(shù),不是“位”數(shù)。)ISA(IBMSystemArchitecture)雖然IBM大型機的整體指令集有了顯著改進,IBM保持了驚人的對應(yīng)用程序的向后兼容。許多最為顯著的構(gòu)架上的變化已經(jīng)影響了一些只能直接被操作系統(tǒng)調(diào)用,而不能被應(yīng)用程序調(diào)用的設(shè)備(如I/O子系統(tǒng))。IBM已經(jīng)花費了巨大的努力來保證它的客戶們不必重寫或重編譯他們的程序來在新系統(tǒng)上運行。這樣,客戶要采用新的硬件就更為容易,客戶只需要拔下舊系統(tǒng),換上新系統(tǒng),而不需要做額外的軟件測試工作。主機系統(tǒng)得以長盛不衰的主要原因RAS,I/O處理能力以及I大型機的編程語言——COBOL大型機技術(shù)上有很多領(lǐng)先的地方,積累了很多行業(yè)應(yīng)用,一大堆非關(guān)系(關(guān)系)數(shù)據(jù)庫/Cobol程序之類,這些東東沒法移植,成為大型機可以吃的老本、繼續(xù)輝煌的資本。
IBM的大型機概念強調(diào)的是IO和RAS,追求的是穩(wěn)定、可靠,主要用于商業(yè)管理系統(tǒng);典型編程語言是Cobol。大型機的編程語言——COBOL大型機技術(shù)上有很多領(lǐng)先的地方,第一章COBOL語言概述第一章COBOL語言概述1.1COBOL發(fā)展概況COBOL是一個高級程序設(shè)計語言,1960由CODASYL委員會(ConferenceonDataSystemsLanguages)提出。以后,新的COBOL標(biāo)準(zhǔn)由美國國家標(biāo)準(zhǔn)組織(ANSI)負(fù)責(zé)ANSI推出的3個COBOL標(biāo)準(zhǔn):1968,1974和1985.目前,關(guān)于面向?qū)ο蟮腃OBOL標(biāo)準(zhǔn)正在制定.COBOL是如下單詞的簡寫(COmmonBusinessOrientedLanguage).COBOL設(shè)計來主要是進行事務(wù)處理,多應(yīng)用于商業(yè)領(lǐng)域,典型的諸如文件導(dǎo)向的應(yīng)用。而不是設(shè)計來進行系統(tǒng)編程。一般來說,沒人用COBOL來寫操作系統(tǒng)或者編譯器.1.1COBOL發(fā)展概況COBOL是一個高級程序設(shè)計語言,COBOL——商業(yè)計算首選語言。40年里,它曾經(jīng)的對手:PLI,Algol60,Algol68,Pascal,Modula,Ada,C,C++目前的強大對手:JAVA、C#為代表的新一代語言COBOL——商業(yè)計算首選語言。Gartnergroup的關(guān)于COBOL優(yōu)勢的調(diào)查報告:在1997年他們估計全世界有3千億行的計算機代碼正在使用。其中80%的是COBOL程序,而其他程序總計只占20%。在1999年,他們報告說,超過50%的關(guān)鍵事務(wù)應(yīng)用程序仍然會用COBOL語言編寫,他們最近估計表明在2004-2005年度所有新程序(50億行)的15%將用COBOL開發(fā),同時,80%的部署在計算機里面的程序?qū)ㄒ郧斑z留的COBOL程序。該集團估計,在2002年全世界有大約200萬COBOL程序員,而JAVA和C++程序員各自只有100萬這個數(shù)字正以每年5%的速度遞減。未來10年,Cobol程序員數(shù)目將很快走下坡路,隨著二戰(zhàn)生育高峰人群的退休,人口補充嚴(yán)重不足。Gartnergroup的關(guān)于COBOL優(yōu)勢的調(diào)查報告:2007年,MicroFocus對客戶的調(diào)查顯示,75%的CIO(ChiefInformationOfficer)聲稱他們在未5年需要更多Cobol程序員,73%的CIO發(fā)現(xiàn)要找到一個訓(xùn)練有素的Cobol程序員越來越難。MicroFocus也指出,不管你信不信,每個美國人每天至少都會有13次接觸到COBOL,而且就在看似最平凡的打電話、刷信用卡、通信聯(lián)絡(luò)等日常生活中。當(dāng)然這很大程度上都是在COBOL雄厚的商業(yè)領(lǐng)域基礎(chǔ)慣性,因為銀行和網(wǎng)絡(luò)運營商的內(nèi)部系統(tǒng)很早就在使用COBOL,而且運行良好,沒必要也不方便更換。2007年,MicroFocus對客戶的調(diào)查顯示,75%根據(jù)英國倫敦國際調(diào)研公司Datamonitor的報告,目前全球仍有多達2000億行COBOL語言代碼正在執(zhí)行,而且每年都會增加50億行,全球75%的商業(yè)數(shù)據(jù)和90%的金融交易都由COBOL處理,全球500強企業(yè)中有492家(包括全部前100強)都使用了COBOL,目前在COBOL方面的投資已經(jīng)超過2萬億美元,150-200萬名開發(fā)人員還在使用這種這種已經(jīng)走過了半個世紀(jì)的編程語言。有人預(yù)測說,即使到了2050年,很多現(xiàn)在廣泛使用的編程語言都將消失得無影無蹤,但COBOL很可能依然會在服役。根據(jù)英國倫敦國際調(diào)研公司Datamonitor的報告,目前全IT服務(wù)公司MurphyInternational的NateMurphy說,我們對Cobol程序員和使用Cobol的公司做了調(diào)查,發(fā)現(xiàn)目前Cobol就業(yè)市場包含以下兩種類型:第一,在舊的Cobol代碼和新程序之間充當(dāng)橋梁,這種工作要求人們懂Cobol,懂那些老Cobol程序員所依賴的商業(yè)邏輯,同時懂新的編程語言,如Java。第二是維護舊的Cobol代碼,并編寫新的Cobol代碼。IT服務(wù)公司MurphyInternational的是不是很神奇?
——神奇的COBOL你是不是對上面的材料感到很驚奇?古老的COBOL在流行的JAVA、C++、VB、C#一點都不落下風(fēng)到底是什么原因呢?軟件的兩種類型——“垂直”軟件(定制軟件)“水平”軟件(通用軟件)是不是很神奇?
——神奇的COBOL你是不是對上面的材“垂直”軟件——價值上百萬美金的程序被開發(fā)、或者根據(jù)某些特別公司的需要被裁剪、或者按照特殊事務(wù)規(guī)則進行調(diào)整。但是,卻只有很少的拷貝被使用。一個例子:美國國防部的MRPII系統(tǒng),該系統(tǒng)管理著550,000種零件和部件,儲備價值高達280億美金。該系統(tǒng)運行在Amdahl主機系統(tǒng)上,部署在全美國不同的地方,由4百萬行COBOL程序構(gòu)成“垂直”軟件——價值上百萬美金的程序被開發(fā)、或者根據(jù)某些特別“水平”軟件——像微軟的Office一樣,功能可能也很強大,代碼也很多,但是會有很多個拷貝。因此,每個拷貝的成本并不高。此種軟件競爭激烈,一般用C++、JAVA等新語言進行開發(fā),軟件利潤很高而且更新很快“水平”軟件——像微軟的Office一樣,功能可能也很強大,“垂直”軟件一般說來利潤并不高,每個拷貝的成本卻很高。因此,替換成本很高,因此這種軟件生命周期一般都很長。例如對MRPII的用其他語言改寫的估價為1億美金。因此,對現(xiàn)有COBOL程序的維護需要大量COBOL程序員“垂直”軟件一般說來利潤并不高,每個拷貝的成本卻很高。因此,1.2COBOL語言的特點最適于事務(wù)處理(商業(yè)計算)領(lǐng)域事務(wù)處理的特點是:算術(shù)計算量少而邏輯處理多;輸入輸出量大;數(shù)據(jù)間存在著一定的邏輯關(guān)系(數(shù)據(jù)項間有清晰的層次關(guān)系),大量的分類排序,數(shù)據(jù)結(jié)果將用于報表打印,對打印報表要求較高、多樣化等等。
COBOL所處理的問題具有數(shù)據(jù)繁多而運算簡單的持點。1.2COBOL語言的特點最適于事務(wù)處理(商業(yè)計算)領(lǐng)域COBOL比較接近于自然語言(英語)。COBOL程序看起來很像一篇用英語寫的文章。例如:ADDATOB來表示A+B=>B(A加B,結(jié)果故在B中)MOVECTOD表示將變量C的值傳送到變量D中COBOL大量采用普通英語詞匯和句型,學(xué)過英語的人看程序感到通俗易懂。COBOL比較接近于自然語言(英語)。通用性強由于COBOL語言的標(biāo)準(zhǔn)化程度較高。不同廠家生產(chǎn)的計算機系統(tǒng)所提供的COBOL,是COBOL標(biāo)準(zhǔn)的全集或一個子集。一個計算機上的COBOL程序向另一計算機系統(tǒng)上移植,是比較容易實現(xiàn)的。目前主機系統(tǒng)上面的COBOL可移植更好通用性強COBOL的結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。每個程序分為四大部分(稱為部,division),每個部下面又分為若干節(jié)(section),節(jié)下面又分為若干段(paragraph)。每一部分都有固定的程式。這個特點使初學(xué)者比較容易通過摹仿別人程序中的有關(guān)部分,從而較快地寫出自己的程序。COBOL的結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。COBOL的缺點是比較繁瑣。程序無論大小簡繁,一律都要寫齊四大部分,對每個部進行必要的定義和說明。因此源程序顯得比較冗長。關(guān)鍵字高達300多個,很難記憶。而且很多關(guān)鍵字并不“關(guān)鍵”,可以省略。不過請記?。篊OBOL——世界上(曾經(jīng))使用最多的一種計算機語言COBOL的缺點是比較繁瑣。1.3最簡單的COBOL程序000100IDENTIFICATIONDIVISION.000200PROGRAM-ID.EXAM1A1.000300ENVIRONMENTDIVISION.000400DATADIVISION.000500PROCEDUREDIVISION.000600S.000700DISPLAY'THISISACOBOLPROGRAM.'.000800STOPRUN.1.3最簡單的COBOL程序000100IDENTIFICOBOL程序設(shè)計解析課件COBOL程序設(shè)計解析課件1.4COBOL程序的結(jié)構(gòu)部
IDENTIFICATIONDIVISION.(標(biāo)識部)主要用來指定源程序名字。也可以寫入其它用作備忘的某些信息(如日期、作者等)。ENVIRONMENTDIVISION.(環(huán)境部)指出程序中用到的數(shù)據(jù)文件名與計算機系統(tǒng)的設(shè)備的對應(yīng)關(guān)系,即把某一文件名與一外部設(shè)備聯(lián)系起來。此外還指定目標(biāo)程序中使列的專門控制方法及程序所用內(nèi)存區(qū)的大小等DATADIVISION.(數(shù)據(jù)部)程序中所用到的全部數(shù)據(jù)(包括輸入輸出的數(shù)據(jù)和中間數(shù)據(jù))都應(yīng)在數(shù)據(jù)中說明它們的類型和所占內(nèi)存的情況。PROCEDUREDIVISION.(過程都)用來給出程序要執(zhí)行的指令,使計算機產(chǎn)生相應(yīng)的操作。例如進行運算或其它處理。1.4COBOL程序的結(jié)構(gòu)部節(jié)和段除標(biāo)識部以外,在每一個部的“部頭”的下面,可以有若干個節(jié)(SECTION),每一個節(jié)以“節(jié)頭”作標(biāo)識。每一節(jié)下面又可包括若干段(PARAGRAPH)。每一個段都有自己的名字(即段名)。在標(biāo)識部下面不設(shè)節(jié).直接設(shè)段節(jié)和段COBOL程序設(shè)計解析課件句子、語句和子句在過程部中,每一段由若干個句子(Sentence)組成。一個句子是以句號加一個以上的空格束結(jié)束的。句子又由語句(Statement)組成。一個句子可以只由一個語句組成,一個語句加一個句點后跟一個(多個)空格就成為一個句子。在一個語句中又可以包含若干個子句(clause).每一于句也有一個動詞,它指定某一方面特定的功能。句子、語句和子句過程部中程序的結(jié)構(gòu):部(Division)-部可以包含若干節(jié)節(jié)(Section)-節(jié)可以包含若干段段(Paragraph)-段可以包含若干句子句子(Sentence)-句子可以包含若干語句語句(Statement)-指定計算機完成一定的操作子句(Clause)-指定完成某一方面的特定功能過程部中程序的結(jié)構(gòu):描述體在數(shù)據(jù)部中有若干節(jié),每個節(jié)中有若干個描述體(Descriptionentry),亦譯作描述款目或描述款),每個描述體義由若干個子句構(gòu)成。描述體COBOL程序設(shè)計解析課件1.5COBOL源程序書寫格式自由格式和固定格式voidmain(void){inta,b,c;a=10;b=20;c=a+b;}COBOL則不同,必須嚴(yán)格按照規(guī)定的格式書寫。1.5COBOL源程序書寫格式自由格式和固定格式ANSI源程序書寫格式見圖ANSI源程序書寫格式見圖1.1—6列,為“標(biāo)號區(qū)”??梢蕴顚?個數(shù)字。標(biāo)號由程序編寫者自定,標(biāo)號應(yīng)按由小到大的順序,但不一定連續(xù)。標(biāo)號區(qū)內(nèi)可以寫標(biāo)號也可以不寫標(biāo)號(標(biāo)號區(qū)空白)。標(biāo)號對源程序的執(zhí)行結(jié)果沒有任何影響。在程序編譯時是按程序書寫的順訊進行的,而不是按標(biāo)號大小順序進行的。
2.第7列,是“續(xù)行標(biāo)志區(qū)”。如果在第7列上寫上連接符“-”,則表示本行是緊接在上一行的后面。如果在第7列寫“*”,則表示此行是注解行,即此行可由程序員任意寫上自己所需的內(nèi)容,以對程序(或程序的一部分)作說明。它對程序的執(zhí)行不起任何影響1.1—6列,為“標(biāo)號區(qū)”??梢蕴顚?個數(shù)字。標(biāo)號由程序編3.第8-11列,稱為“A區(qū)”,第8列稱“A區(qū)邊界”。COBOL規(guī)定,程序中有些內(nèi)容,例如部頭、節(jié)頭、段頭、層號01,層號77以及文件描述符FD等應(yīng)從A區(qū)開始書寫
4.12-72列,稱“B區(qū)”。寫程序中的正文部分,例如過程部中的句子只能從B區(qū)開始,而不能寫到A區(qū)去。
5.73-80列.為“注釋區(qū)”。程序員如想對源程序的某些行作些簡單說明,可寫在這8列中,因此寫源程廳時注意個應(yīng)超過第72列,超過的部分在編譯時將被舍棄。3.第8-11列,稱為“A區(qū)”,第8列稱“A區(qū)邊界”。C寫程序的注意事項:每個字符占一格。較早的COBOL版本規(guī)定所有源代碼字母都應(yīng)大寫,但現(xiàn)在使用的COBOL編譯系統(tǒng)允許使用大寫或小寫字母,二者等價。不過習(xí)慣都用大寫字母,主機系統(tǒng)一般都用大寫字母。相鄰的兩個字(如COBOL的保留字或用戶自己定義的名字)之間必須留一個以上的空格。運算符(如加、減、乘、除、乘方)和等號左右兩邊必須各留一個空格。在過程部中左括號的左側(cè)和右括號的右側(cè)要留一空格,而內(nèi)側(cè)不必留空格。逗號、句號、分號的左邊不能留空格,而右邊應(yīng)有空格。一個空格和多個空格作用相同寫程序的注意事項:COBOL程序設(shè)計解析課件1.6COBOL字符和COBOL字COBOL字符系統(tǒng)字符集指的是在輸入輸出操作中允許出現(xiàn)的字符的集合。
COBOL字符集指的是COBOL程序中允許出現(xiàn)的字符(用引號括起來的字符串戶的字符除外)。1.6COBOL字符和COBOL字COBOL字符COBOL字符集:數(shù)字:0~9大寫字母:A~B小寫字母:a~b專用字符:+加號-減號或連接號*乘號或星號/除號=等號,逗號.句號或小數(shù)點;分號‘引號(有的用”)(左括號)右括號<小于號>大于號空格
$美元號COBOL字符集:數(shù)字:0~9+加號COBOL字COBOL字是出COBOL字符組成COBOL字不允許超過30個字符保留字用戶字COBOL字COBOL字是出COBOL字符組成1.7數(shù)據(jù)名數(shù)據(jù)名的概念:數(shù)據(jù)名(Dataname)可以認(rèn)為是由程序設(shè)計者定義的某一片內(nèi)存區(qū)的符號地址,即用一個符號代表一個地址。數(shù)據(jù)名相當(dāng)于其它語言中的變量名,它代表一個具體的數(shù)據(jù)項。COBOL中指的數(shù)據(jù)是廣義的,即下僅指數(shù)值,也可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公環(huán)境的舒適度與創(chuàng)意設(shè)計
- 2025中國聯(lián)通青海分公司春季校園招聘35人高頻重點提升(共500題)附帶答案詳解
- 2025中國系統(tǒng)校園招聘技術(shù)類提前批高頻重點提升(共500題)附帶答案詳解
- 2025中國石化中原油田分公司畢業(yè)生招聘182人高頻重點提升(共500題)附帶答案詳解
- 2025中國電信湖北鄂州分公司招聘7人高頻重點提升(共500題)附帶答案詳解
- 2025中國電信北京公司招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國建設(shè)基礎(chǔ)設(shè)施限公司招聘100人高頻重點提升(共500題)附帶答案詳解
- 2025中共海南省委黨校省行政學(xué)院省社會主義學(xué)院公開招聘教研崗位專業(yè)技術(shù)人員16人高頻重點提升(共500題)附帶答案詳解
- 2025下半年貴州六盤水市事業(yè)單位及國企業(yè)招聘應(yīng)征入伍大學(xué)畢業(yè)生136人高頻重點提升(共500題)附帶答案詳解
- 2025下半年湖北廣水市事業(yè)單位招聘98人歷年高頻重點提升(共500題)附帶答案詳解
- 期末檢測試卷(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)青島版
- 2023-2024學(xué)年北京市海淀區(qū)八年級上學(xué)期期末考試物理試卷含詳解
- 備用金管理制度(規(guī)章制度)
- 病區(qū)持續(xù)質(zhì)量改進計劃范文
- 四川省遂寧市城區(qū)遂寧市市城區(qū)初中2024年第一學(xué)期期末教學(xué)水平監(jiān)測七年級歷史試題(無答案)
- 2023年全國職業(yè)院校技能大賽賽項-ZZ019 智能財稅基本技能賽題 - 模塊二-答案
- 建筑垃圾清運投標(biāo)方案(技術(shù)方案)
- 紅色文化知識題【小學(xué)低齡組(408題)】附有答案
- 安防個人工作總結(jié)
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- JTG D50-2017公路瀝青路面設(shè)計規(guī)范
評論
0/150
提交評論