程序設(shè)計(jì)語(yǔ)言和編程環(huán)境-北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所課件_第1頁(yè)
程序設(shè)計(jì)語(yǔ)言和編程環(huán)境-北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所課件_第2頁(yè)
程序設(shè)計(jì)語(yǔ)言和編程環(huán)境-北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所課件_第3頁(yè)
程序設(shè)計(jì)語(yǔ)言和編程環(huán)境-北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所課件_第4頁(yè)
程序設(shè)計(jì)語(yǔ)言和編程環(huán)境-北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所課件_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第五講程序設(shè)計(jì)語(yǔ)言和編程環(huán)境北京大學(xué)

信息科學(xué)技術(shù)學(xué)院2023年9月30日第五講程序設(shè)計(jì)語(yǔ)言和編程環(huán)境2023年8月7日2023/9/30北京大學(xué)2主要內(nèi)容程序設(shè)計(jì)語(yǔ)言概述機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言及其程序的執(zhí)行若干典型的高級(jí)語(yǔ)言介紹VC6.0編程環(huán)境2023/8/7北京大學(xué)2主要內(nèi)容程序設(shè)計(jì)語(yǔ)言概述2023/9/30北京大學(xué)31、程序設(shè)計(jì)語(yǔ)言概述計(jì)算機(jī)硬件組成2023/8/7北京大學(xué)31、程序設(shè)計(jì)語(yǔ)言概述計(jì)算機(jī)硬件組成2023/9/30北京大學(xué)4程序是由若干條指令的順序排列組成,是為信息處理任務(wù)而預(yù)先編制的工作執(zhí)行方案。1、程序設(shè)計(jì)語(yǔ)言概述計(jì)算機(jī)指令的執(zhí)行及程序2023/8/7北京大學(xué)4程序是由若干條指令的順序排列組成,2023/9/30北京大學(xué)51、程序設(shè)計(jì)語(yǔ)言概述程序設(shè)計(jì)語(yǔ)言軟件的基本組成部分是完成其功能的程序。程序描述了計(jì)算機(jī)處理數(shù)據(jù)、解決問(wèn)題的過(guò)程,這是程序的實(shí)質(zhì)。程序的描述形式卻可以是多種多樣的,可以用不同的方式表述,這就是程序設(shè)計(jì)語(yǔ)言。程序設(shè)計(jì)語(yǔ)言(也被稱為“編程語(yǔ)言”,ProgrammingLanguage)是人們描述(編制)程序所使用的規(guī)范和方法(語(yǔ)言)。機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言2023/8/7北京大學(xué)51、程序設(shè)計(jì)語(yǔ)言概述程序設(shè)計(jì)語(yǔ)言2023/9/30北京大學(xué)62、機(jī)器語(yǔ)言機(jī)器指令采用二進(jìn)制代碼形式,它們符合具體計(jì)算機(jī)的指令系統(tǒng),可以由計(jì)算機(jī)直接執(zhí)行。因此機(jī)器指令實(shí)際上也是一種可以在程序設(shè)計(jì)中使用的語(yǔ)言,被稱為“機(jī)器語(yǔ)言”。每一條機(jī)器指令包括兩個(gè)主要方面:操作(指出計(jì)算機(jī)應(yīng)做什么)被操作的對(duì)象(指出處理的數(shù)據(jù)或它的地址)下面給出了幾條以二進(jìn)制形式描述的Intel80386指令以及對(duì)它們的文字解釋。2023/8/7北京大學(xué)62、機(jī)器語(yǔ)言機(jī)器指令采用二進(jìn)制代碼2023/9/30北京大學(xué)72、機(jī)器語(yǔ)言01000000把一個(gè)寄存器(EAX)的值加1

100010110000010100000000011110011000111110101101從某個(gè)內(nèi)存單元取出數(shù)據(jù),裝入EAX寄存器2023/8/7北京大學(xué)72、機(jī)器語(yǔ)言010000002023/9/30北京大學(xué)82、機(jī)器語(yǔ)言從直接閱讀的角度看,二進(jìn)制代碼簡(jiǎn)直是密碼,難以理解和使用。因此也必然造成程序不易修改,無(wú)法由一種計(jì)算機(jī)環(huán)境移植到其他環(huán)境上。101010111010010101000100010110011001111010111101100110110100010100100000111110011010011101101101101000111000010110000001011111011000110110101101010011111010010101001010011110111001101110100111……用機(jī)器語(yǔ)言編程,不僅指令操作需要用規(guī)定的二進(jìn)制代碼描述,程序里的數(shù)據(jù)也要程序設(shè)計(jì)者自己安排存儲(chǔ)位置。這使程序設(shè)計(jì)工作更加煩雜和容易出錯(cuò)。要檢查和發(fā)現(xiàn)程序中的錯(cuò)誤也是極端困難的。這一系列因素使得用程序開(kāi)發(fā)工作的效率非常低,據(jù)統(tǒng)計(jì),一個(gè)人一天平均只能夠?qū)懗鰩讞l有效指令。

2023/8/7北京大學(xué)82、機(jī)器語(yǔ)言從直接閱讀的角度看,2023/9/30北京大學(xué)93、匯編語(yǔ)言從人的思維方式而言,更適合于用概念描述事物,對(duì)于煩瑣冗長(zhǎng)的數(shù)字編碼,由于它們不能與概念和概念之間的語(yǔ)義聯(lián)系產(chǎn)生任何提示作用,則顯然對(duì)設(shè)計(jì)思維沒(méi)有任何幫助作用,純粹是一種累贅。人們顯然更希望用有幫助記憶作用的符號(hào)來(lái)書寫程序,例如用“ADD”表示“加法”操作,用“JMP”表示“控制性轉(zhuǎn)移”等。操作的對(duì)象(數(shù)據(jù)或數(shù)據(jù)的地址)最好也能用符號(hào)形式表示,例如用X、Y代表兩個(gè)存儲(chǔ)數(shù)據(jù)的容器。顯然這樣做比直接采用二進(jìn)碼方便得多。這就是“匯編程序設(shè)計(jì)語(yǔ)言”的基本想法。2023/8/7北京大學(xué)93、匯編語(yǔ)言從人的思維方式而言,更2023/9/30北京大學(xué)103、匯編語(yǔ)言匯編語(yǔ)言提供一組具有幫助記憶作用的“匯編指令”,每條匯編指令都和一條機(jī)器指令相對(duì)應(yīng),只是指令碼和操作數(shù)都采用符號(hào)形式?!?/p>

…PUSHECXMOVERROR,0MOVECX,EAXCMPECX,0JMPFAILCALLFACT…

…2023/8/7北京大學(xué)103、匯編語(yǔ)言匯編語(yǔ)言提供一組具有2023/9/30北京大學(xué)113、匯編語(yǔ)言對(duì)于這種匯編語(yǔ)言形式寫出的程序,計(jì)算機(jī)是不能直接執(zhí)行的,必須在交給計(jì)算機(jī)執(zhí)行之前先把它翻譯成二進(jìn)制的機(jī)器語(yǔ)言指令程序。把匯編語(yǔ)言程序翻譯到機(jī)器語(yǔ)言的工作比較機(jī)械,可以用計(jì)算機(jī)來(lái)完成這個(gè)翻譯工作?!皡R編器”(Assembler)軟件就是具有這種功能的軟件,它能把用匯編語(yǔ)言書寫的程序翻譯成機(jī)器語(yǔ)言程序。

2023/8/7北京大學(xué)113、匯編語(yǔ)言對(duì)于這種匯編語(yǔ)言形式2023/9/30北京大學(xué)123、匯編語(yǔ)言在這里,我們又看到了“程序”和“數(shù)據(jù)”兩個(gè)概念的相對(duì)性:對(duì)匯編器而言,它的輸入“數(shù)據(jù)”是匯編語(yǔ)言程序,這種程序當(dāng)作數(shù)據(jù)(是一系列的字符行)被加工處理。匯編器產(chǎn)生的結(jié)果是機(jī)器代碼程序(具有二進(jìn)符號(hào)串的形式),同時(shí)它也是即將在計(jì)算機(jī)上運(yùn)行的真正的程序。2023/8/7北京大學(xué)123、匯編語(yǔ)言在這里,我們又看到了2023/9/30北京大學(xué)133、匯編語(yǔ)言從程序開(kāi)發(fā)的角度來(lái)看,匯編語(yǔ)言與機(jī)器語(yǔ)言類似,仍然有許多缺點(diǎn):匯編語(yǔ)言的描述機(jī)制層次太低,其基本描述單位仍然是指令,這種方式與人們描述計(jì)算過(guò)程的需要之間差距太大。匯編語(yǔ)言與計(jì)算機(jī)硬件的具體結(jié)構(gòu)、指令系統(tǒng)聯(lián)系過(guò)于緊密,這種情況造成的后果是在一種計(jì)算機(jī)上開(kāi)發(fā)的程序極難搬到另一種不同結(jié)構(gòu)的計(jì)算機(jī)上使用。如果想這樣做,不僅工作量將非常大(與重寫差不多),而且很容易引出程序錯(cuò)誤,修改也非常困難。2023/8/7北京大學(xué)133、匯編語(yǔ)言從程序開(kāi)發(fā)的角度來(lái)看2023/9/30北京大學(xué)143、匯編語(yǔ)言樣例程序1計(jì)算表達(dá)式:135+22-1常用寄存器AX,BX,CX等可以用來(lái)保存中間結(jié)果;計(jì)算過(guò)程:MOVAX,135MOVBX,22ADDAX,BXSUBAX,1HLT2023/8/7北京大學(xué)143、匯編語(yǔ)言樣例程序12023/9/30北京大學(xué)153、匯編語(yǔ)言樣例程序2計(jì)算從1累加到100得到的和AX保存累加和,BX存放被加數(shù),每加完一次增加1。通過(guò)一個(gè)循環(huán)來(lái)完成累加工作。計(jì)算過(guò)程:MOVAX,1MOVBX,2calc:CMPBX,101JEstopADDAX,BXINCBXJMPcalcstop:HLT2023/8/7北京大學(xué)153、匯編語(yǔ)言樣例程序22023/9/30北京大學(xué)163、匯編語(yǔ)言樣例程序3求一組數(shù)33,15,21,7,9,23,4,76,87,45中的最大值.總的思想是用一個(gè)存儲(chǔ)單元保存到目前為止的最大值,將10個(gè)數(shù)逐一取出與最大值比較,如果該數(shù)比當(dāng)前最大值更大,則將更新當(dāng)前最大值.2023/8/7北京大學(xué)163、匯編語(yǔ)言樣例程序32023/9/30北京大學(xué)173、匯編語(yǔ)言數(shù)組變量DATA存儲(chǔ)給定的十個(gè)整數(shù);BX記錄當(dāng)前計(jì)算的是第幾個(gè)數(shù),0-9;CX記錄數(shù)組中當(dāng)前沒(méi)有被計(jì)算過(guò)的數(shù),初值為10,每計(jì)算一個(gè)數(shù),它的值減1,當(dāng)它為0時(shí),停止計(jì)算(循環(huán)計(jì)數(shù));AX是16位寄存器,可以分成兩個(gè)8位寄存器AH和AL使用,每次總是將一個(gè)數(shù)復(fù)制到AL中去.2023/8/7北京大學(xué)173、匯編語(yǔ)言數(shù)組變量DATA存儲(chǔ)2023/9/30北京大學(xué)183、匯編語(yǔ)言MOVAL,0MOVBX,0MOVCX,10next:CMPDATA[BX],ALJLunchangedMOVAL,DATA[BX]unchanged:INCBXLOOPnext//CX減1HLTDATADB33,15,21,7,9,23,4,76,87,452023/8/7北京大學(xué)183、匯編語(yǔ)言MOVAL,02023/9/30北京大學(xué)194、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)言在對(duì)計(jì)算過(guò)程的描述方面,完全脫離了簡(jiǎn)單的指令方式,采用類似于數(shù)學(xué)公式的書寫方式描述由一些數(shù)據(jù)計(jì)算出結(jié)果的過(guò)程,用一些更高級(jí)程序流程描述結(jié)構(gòu)取代簡(jiǎn)單的跳轉(zhuǎn)指令方式,以更好地滿足書寫程序的需要。在高級(jí)程序語(yǔ)言中也使用“變量”這個(gè)概念,在這里“變量”代表一種容器,用于存放程序中處理的數(shù)據(jù)。變量對(duì)應(yīng)著存儲(chǔ)器的若干字節(jié)(存儲(chǔ)單元),但它們?cè)诖鎯?chǔ)器中的具體位置并不需要編程人員關(guān)心,這樣就大大減輕了編程人員的負(fù)擔(dān)。2023/8/7北京大學(xué)194、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)2023/9/30北京大學(xué)204、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)言中的變量采用字符串形式的名字,如x、len、Max、Number等。一方面名字可以幫助人們掌握變量所代表的信息含義,在程序里只要用變量的名字就可以讀寫訪問(wèn)它的存儲(chǔ)單元里的數(shù)據(jù)。定義確定了變量的大小。xlenMaxNumber2023/8/7北京大學(xué)204、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)2023/9/30北京大學(xué)214、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)言中用于描述計(jì)算的結(jié)構(gòu)采用類似于數(shù)學(xué)中代數(shù)運(yùn)算公式的形式,這種結(jié)構(gòu)被稱為“表達(dá)式”。程序中基本的動(dòng)作單位被稱為“語(yǔ)句”,不同的語(yǔ)句實(shí)現(xiàn)不同的功能。高級(jí)語(yǔ)言里最基本語(yǔ)句就是“賦值語(yǔ)句”(AssignmentStatement),這種語(yǔ)句描述把通過(guò)計(jì)算得到的結(jié)果(值)賦給變量的動(dòng)作。舉例說(shuō):X=100; Y=2*SIN(1.047);Z=X*Y;2023/8/7北京大學(xué)214、高級(jí)語(yǔ)言及其程序的執(zhí)行高級(jí)語(yǔ)2023/9/30北京大學(xué)224、高級(jí)語(yǔ)言及其程序的執(zhí)行用高級(jí)語(yǔ)言書寫的程序不可能直接在計(jì)算機(jī)上執(zhí)行,與匯編語(yǔ)言程序一樣,需要將它轉(zhuǎn)換成機(jī)器語(yǔ)言指令程序。在計(jì)算機(jī)上將高級(jí)語(yǔ)言書寫的程序轉(zhuǎn)換成機(jī)器語(yǔ)言指令程序,有兩種基本方法:編譯(Compilation)方式解釋(Interpretation)方式2023/8/7北京大學(xué)224、高級(jí)語(yǔ)言及其程序的執(zhí)行用高級(jí)2023/9/30北京大學(xué)234、高級(jí)語(yǔ)言及其程序的執(zhí)行編譯方式是設(shè)法把高級(jí)語(yǔ)言程序(也稱為“源程序”)翻譯轉(zhuǎn)換成為可以由計(jì)算機(jī)直接執(zhí)行的機(jī)器語(yǔ)言指令程序,經(jīng)連接裝配后轉(zhuǎn)變?yōu)椤翱蓤?zhí)行程序”(ExecutableProgram)。人們實(shí)現(xiàn)了高級(jí)語(yǔ)言“編譯器”(Compiler)完成這種翻譯工作。編譯器把高級(jí)語(yǔ)言程序看成是符合一定語(yǔ)法結(jié)構(gòu)的符號(hào)串,對(duì)它進(jìn)行加工變換。2023/8/7北京大學(xué)234、高級(jí)語(yǔ)言及其程序的執(zhí)行編譯方2023/9/30北京大學(xué)24

編譯器對(duì)源程序的加工一般分為兩個(gè)階段:源程序首先被翻譯成機(jī)器語(yǔ)言,這種翻譯結(jié)果稱為“目標(biāo)碼”(objectcode),目標(biāo)碼構(gòu)成的程序片段稱為目標(biāo)模塊。第二步,這些目標(biāo)模塊被與其他一些基本模塊(通用目標(biāo)程序模塊,由編譯軟件或其他人提供)連接在一起,最終形成“可執(zhí)行程序”(executableprogram),這樣的程序就可以在計(jì)算機(jī)上實(shí)際運(yùn)行了。第一個(gè)加工步驟稱為“編譯”(compiling),第二個(gè)步驟稱為“連接”(linking)。4、高級(jí)語(yǔ)言及其程序的執(zhí)行2023/8/7北京大學(xué)24編譯器對(duì)源程序的加工2023/9/30北京大學(xué)25可執(zhí)行的機(jī)器語(yǔ)言指令4、高級(jí)語(yǔ)言及其程序的執(zhí)行解釋(Interpretation)方式由一種稱為“解釋器”(Interpreter)軟件實(shí)現(xiàn)。解釋器在工作方式上與編譯器不同,它不事先對(duì)源程序進(jìn)行翻譯,而是在執(zhí)行時(shí)即時(shí)對(duì)源程序的語(yǔ)句進(jìn)行分析和解釋,實(shí)現(xiàn)源程序所描述的功能。2023/8/7北京大學(xué)25可執(zhí)行的機(jī)器語(yǔ)言指令4、高級(jí)語(yǔ)言2023/9/30北京大學(xué)265、若干典型的高級(jí)語(yǔ)言的介紹第一個(gè)高級(jí)程序語(yǔ)言是FORTRAN語(yǔ)言,它是由美國(guó)IBM公司的科技人員在五十年代開(kāi)發(fā)出來(lái)的。高級(jí)語(yǔ)言的開(kāi)發(fā)成功是軟件技術(shù)發(fā)展的一個(gè)重要里程碑。從那以后,人們?cè)O(shè)計(jì)并實(shí)現(xiàn)了許多高級(jí)程序語(yǔ)言。高級(jí)語(yǔ)言不但是程序開(kāi)發(fā)的工具,也成為一種在人與人之間,在不同的計(jì)算機(jī)之間交流的工具。為了保證語(yǔ)言的通用性,國(guó)際標(biāo)準(zhǔn)化組織動(dòng)用很多人力物力,對(duì)應(yīng)用較廣泛的一些語(yǔ)言提出了標(biāo)準(zhǔn)語(yǔ)言文本。這些工作進(jìn)一步打通了交流渠道,推動(dòng)了計(jì)算機(jī)應(yīng)用的發(fā)展。FORTRAN、PASCAL、C/C++COBOL、BASIC、ADA、JAVA2023/8/7北京大學(xué)265、若干典型的高級(jí)語(yǔ)言的介紹第一2023/9/30北京大學(xué)275.1、FORTRANFORTRAN的名字是由英文FORmularTRANslation縮寫而成,意思是“公式翻譯”。在五十年代初期人們考慮的主要是如何有效地把數(shù)學(xué)公式描述的計(jì)算過(guò)程翻譯成計(jì)算機(jī)程序,設(shè)計(jì)FORTRAN語(yǔ)言的主要目的是為了描述科學(xué)計(jì)算的算法。FORTRAN語(yǔ)言大約在1954年設(shè)計(jì),它的編譯器在1957年完成。后來(lái)這個(gè)語(yǔ)言還有很大的發(fā)展,成為在科學(xué)計(jì)算(數(shù)值計(jì)算)方面最主要的編程語(yǔ)言。2023/8/7北京大學(xué)275.1、FORTRANFORTR2023/9/30北京大學(xué)285.1、FORTRAN程序樣例FUNCTIONFUNC1(N)ISUM=0DO10I=1,NISUM=ISUM+I*I10CONTINUEFUNC1=ISUMRETURNEND求1~N的平方和2023/8/7北京大學(xué)285.1、FORTRAN程序樣例2023/9/30北京大學(xué)295.2、PASCALPascal語(yǔ)言是由著名瑞士計(jì)算機(jī)科學(xué)家N.Wirth(1984年圖靈獎(jiǎng)得主)設(shè)計(jì)的一種語(yǔ)言,1968年提出后被全世界廣泛接受,成為一種對(duì)計(jì)算機(jī)科學(xué)技術(shù)發(fā)展有巨大影響的語(yǔ)言。這個(gè)語(yǔ)言的名字是為了紀(jì)念歷史上著名的數(shù)學(xué)家和計(jì)算學(xué)科的先驅(qū)BlaisePascal(帕斯卡)。Pascal語(yǔ)言把許多好的東西結(jié)合在一個(gè)很簡(jiǎn)練的語(yǔ)言里,被計(jì)算機(jī)教育界廣泛采用。從七十年代末往后的很長(zhǎng)一段時(shí)間里,Pascal成為世界范圍的計(jì)算機(jī)專業(yè)教學(xué)語(yǔ)言,多數(shù)教科書用Pascal給出程序例子,描述計(jì)算的算法。2023/8/7北京大學(xué)295.2、PASCALPascal2023/9/30北京大學(xué)305.2、PASCAL程序樣例functionfunc1(N:integer):integer;varSUM,I:integer;beginSUM=0;forI:=1toNdoSUM:=SUM+I*I;FUNC1:=SUM;end求1~N的平方和2023/8/7北京大學(xué)305.2、PASCAL程序樣例f2023/9/30北京大學(xué)315.3、C語(yǔ)言C是由美國(guó)貝爾實(shí)驗(yàn)室的DennisRetchie在1972年設(shè)計(jì)開(kāi)發(fā)的,開(kāi)發(fā)目的是想成為一種編制“系統(tǒng)程序”的工具語(yǔ)言。Retchie等人首先用自己發(fā)明的C語(yǔ)言編寫了UNIX操作系統(tǒng)。以后C語(yǔ)言逐步發(fā)展成為開(kāi)發(fā)系統(tǒng)軟件的主要語(yǔ)言。許多常見(jiàn)的軟件系統(tǒng),例如,在中國(guó)使用很廣泛的計(jì)算機(jī)輔助設(shè)計(jì)軟件AUTOCAD,數(shù)學(xué)軟件系統(tǒng)Mathematica等,以及許多語(yǔ)言編譯系統(tǒng)本身,其軟件系統(tǒng)的全部或者部分程序就是用C語(yǔ)言開(kāi)發(fā)的。C語(yǔ)言已成為最重要的軟件系統(tǒng)開(kāi)發(fā)語(yǔ)言,由此可見(jiàn)C語(yǔ)言在計(jì)算機(jī)領(lǐng)域地位之重要。2023/8/7北京大學(xué)315.3、C語(yǔ)言C是由美國(guó)貝爾實(shí)2023/9/30北京大學(xué)325.3、C語(yǔ)言樣例程序intmain(){intn;inti,sum=0;scanf(“%d”,&n);for(i=1;i<=n;i++)sum+=i*i;returnsum;}求1~N的平方和2023/8/7北京大學(xué)325.3、C語(yǔ)言樣例程序int2023/9/30北京大學(xué)335.4、C++語(yǔ)言C++是在C語(yǔ)言基礎(chǔ)上發(fā)展出的一種“面向?qū)ο蟆闭Z(yǔ)言。它是由BjarneStroustrup在美國(guó)貝爾實(shí)驗(yàn)室開(kāi)發(fā)的(1983)。C++是C語(yǔ)言的一個(gè)擴(kuò)充,它一方面修正了C的一些弱點(diǎn)和不足,使用起來(lái)更方便可靠;另一方面,也是更重要的,這種語(yǔ)言以支持“面向?qū)ο蟆保∣bject-Oreinted,簡(jiǎn)稱為OO)的程序設(shè)計(jì)方法為基本目標(biāo),提供了一套支持面向?qū)ο蟪绦蛟O(shè)計(jì)的機(jī)制,如“類”(class)、“對(duì)象”(object)等等。面向?qū)ο蟮姆椒ū徽J(rèn)為是開(kāi)發(fā)復(fù)雜軟件系統(tǒng)的一種有效途徑,OO程序設(shè)計(jì)語(yǔ)言也已經(jīng)被廣泛接受。C++是目前使用最廣泛的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。

2023/8/7北京大學(xué)335.4、C++語(yǔ)言C++是在2023/9/30北京大學(xué)345.5、COBOLCOBOL(COmmonBusinessOrientedLanguage,通用事務(wù)處理語(yǔ)言)語(yǔ)言是在美國(guó)國(guó)防部推動(dòng)下,由政府機(jī)構(gòu)和工業(yè)界聯(lián)合開(kāi)發(fā)的一種語(yǔ)言,1960年正式推出。它的主要設(shè)計(jì)目標(biāo)是用于編制商業(yè)企業(yè)管理信息系統(tǒng)的處理程序和各種軟件。COBOL語(yǔ)言采用一種類似英語(yǔ)的形式,對(duì)使用英語(yǔ)的人而言它的可讀性較強(qiáng),但這也帶來(lái)程序羅嗦冗長(zhǎng)的缺點(diǎn)。數(shù)據(jù)記錄(DATARECORD)的概念是在COBOL語(yǔ)言中第一次引入的。COBOL語(yǔ)言曾經(jīng)使用非常廣泛,七十年代曾有人統(tǒng)計(jì)過(guò),當(dāng)時(shí)程序語(yǔ)言使用的情況是:將近一半的程序(以字符數(shù)計(jì)算)是用COBOL語(yǔ)言書寫的。但目前的情況是COBOL語(yǔ)言已經(jīng)走向衰敗。

2023/8/7北京大學(xué)345.5、COBOLCOBOL(C2023/9/30北京大學(xué)355.6、BASICBASIC(Beginner‘sAll-purposeSymbolicInstructionCode,初學(xué)者的通用符號(hào)指令代碼)語(yǔ)言可能仍然是世界上使用人數(shù)最多的語(yǔ)言。這個(gè)語(yǔ)言是由JohnKemeny和ThomasKurtz于1964年開(kāi)發(fā)的,基本上是FORTRAN語(yǔ)言的一個(gè)縮減版本。設(shè)計(jì)者當(dāng)時(shí)希望開(kāi)發(fā)一個(gè)簡(jiǎn)單的交互式語(yǔ)言,用于學(xué)習(xí)程序設(shè)計(jì)。由于語(yǔ)言簡(jiǎn)單,BASIC語(yǔ)言可以在很低檔的微機(jī)上實(shí)現(xiàn),因此得到廣泛普及,流行到世界的每個(gè)角落??梢哉f(shuō),無(wú)論國(guó)內(nèi)還是國(guó)外,BASIC語(yǔ)言對(duì)于計(jì)算機(jī)的普及都發(fā)揮了重要的作用。2023/8/7北京大學(xué)355.6、BASICBASIC(2023/9/30北京大學(xué)365.7、ADAAda這個(gè)名字是紀(jì)念歷史上第一位編程者——Ada夫人(生活在十九世紀(jì)中葉,是著名詩(shī)人拜倫的女兒),她被認(rèn)為是第一個(gè)寫程序的人,她曾經(jīng)為計(jì)算機(jī)先驅(qū)者CharlesBabbage未完成的計(jì)算機(jī)寫程序。Ada語(yǔ)言開(kāi)發(fā)的目的是作為新一代的美國(guó)軍用程序設(shè)計(jì)語(yǔ)言(1983-1995),作為所有與國(guó)防有關(guān)的程序和軟件的統(tǒng)一語(yǔ)言標(biāo)準(zhǔn)。Ada的設(shè)計(jì)目標(biāo)是針對(duì)那些裝備在機(jī)電設(shè)備上和武器裝備里的計(jì)算機(jī)控制、管理軟件系統(tǒng)開(kāi)發(fā)所使用的。這類系統(tǒng)現(xiàn)在被稱為“嵌入式計(jì)算機(jī)系統(tǒng)”,是計(jì)算機(jī)的一個(gè)重要應(yīng)用方面。Ada語(yǔ)言的設(shè)計(jì)也特別注意對(duì)復(fù)雜的大型和巨型軟件系統(tǒng)的支持。Ada語(yǔ)言自1983年作為標(biāo)準(zhǔn)提出后,雖由美國(guó)國(guó)防部大力推行,也受到各國(guó)軍方的重視,但不像預(yù)想的那樣成功,其中一個(gè)原因是它太復(fù)雜。

2023/8/7北京大學(xué)365.7、ADAAda這個(gè)名字是2023/9/30北京大學(xué)375.7、ADA樣例程序FUNCTIONfunc1(n:ININTEGER)RETURNINTEGERISsum:INTEGER=0;i:INTEGER;BEGINFORiIN1..nloopsum:=sum+i*i;endloop;returnsum;END;求1~N的平方和2023/8/7北京大學(xué)375.7、ADA樣例程序FUNC2023/9/30北京大學(xué)385.8、JAVA1991年,SUNMicroSystem公司的JameGosling、BillJoe等人為在電視、控制烤箱等家用消費(fèi)類電子產(chǎn)品上進(jìn)行交互式操作而開(kāi)發(fā)了一個(gè)名為Oak的軟件,1995年正式推出并更名為Java。Writeonce,runeverywhere.目前網(wǎng)絡(luò)程序開(kāi)發(fā)的主要語(yǔ)言特點(diǎn)面向?qū)ο蟊阌诰W(wǎng)絡(luò)開(kāi)發(fā)簡(jiǎn)單易學(xué)2023/8/7北京大學(xué)385.8、JAVA1991年,SU2023/9/30北京大學(xué)395.8、JAVA樣例程序publicintfunc1(intn){intsum=0;inti;for(i=1;i<=n;i++)sum=sum+i*i;returnsum;}求1~N的平方和2023/8/7北京大學(xué)395.8、JAVA樣例程序pub2023/9/30北京大學(xué)40我們這門課程主要介紹C語(yǔ)言。2023/8/7北京大學(xué)40我們這門課程主要介紹C語(yǔ)言。2023/9/30北京大學(xué)416、VC6.0編程環(huán)境基本概念基本功能編程及調(diào)試過(guò)程示例2023/8/7北京大學(xué)416、VC6.0編程環(huán)境基本概念2023/9/30北京大學(xué)42VC++編程環(huán)境-基本概念

Project(工程):VC編程環(huán)境下,編寫程序的工作是以Project為單位。在開(kāi)始一個(gè)新程序時(shí),要先建立一個(gè)Project,之后在程序編寫過(guò)程中所有與這個(gè)程序有關(guān)的文件都會(huì)包含在這個(gè)Project中。編制的程序可以有各種不同類型,編程環(huán)境為每種類型的程序準(zhǔn)備了一個(gè)模版,用來(lái)生成程序的最初框架。在我們這門課程里只介紹編寫Win32ConsoleApplication類型的程序。這類程序的特點(diǎn)是:程序運(yùn)行中會(huì)打開(kāi)一個(gè)類似于DOS操作系統(tǒng)的界面,所有鍵盤輸入都是通過(guò)DOS界面進(jìn)行的,而所有輸出都是輸出到DOS窗口中。2023/8/7北京大學(xué)42VC++編程環(huán)境-基本概念2023/9/30北京大學(xué)43VC++編程環(huán)境-基本概念SourceFile(源程序)源程序是我們用高級(jí)程序設(shè)計(jì)語(yǔ)言書寫的程序。源程序必須經(jīng)過(guò)編譯連接變成可執(zhí)行程序(機(jī)器代碼)才能運(yùn)行。在下面的章節(jié)中,我們主要用介紹C語(yǔ)言編寫源程序。2023/8/7北京大學(xué)43VC++編程環(huán)境-基本概念S2023/9/30北京大學(xué)44VC++編程環(huán)境-基本概念Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過(guò)程稱為編譯。不同的高級(jí)語(yǔ)言有不同的編譯器。2023/8/7北京大學(xué)44VC++編程環(huán)境-基本概念C2023/9/30北京大學(xué)45VC++編程環(huán)境-基本概念Link(連接)各種高級(jí)語(yǔ)言都會(huì)提供一些常用的功能模塊,我們自己編寫的程序里會(huì)調(diào)用這些功能模塊。同時(shí)要把我們寫的程序裝載到內(nèi)存里運(yùn)行,也需要加載一定的與環(huán)境相關(guān)的信息。所以將我們自己寫的程序編譯成機(jī)器代碼后,還需要一個(gè)連接的過(guò)程以生成最后的可執(zhí)行程序。2023/8/7北京大學(xué)45VC++編程環(huán)境-基本概念L2023/9/30北京大學(xué)46VC++編程環(huán)境-基本概念Build(編譯并連接)編譯并連接是把源程序編譯,如果沒(méi)有錯(cuò)誤則連接,否則給出編譯錯(cuò)誤信息。2023/8/7北京大學(xué)46VC++編程環(huán)境-基本概念B2023/9/30北京大學(xué)47VC++編程環(huán)境-基本概念Debug(調(diào)試)當(dāng)程序出錯(cuò)時(shí),可用調(diào)試工具發(fā)現(xiàn)錯(cuò)處的代碼,進(jìn)行改正。所謂調(diào)試是指逐條執(zhí)行或部分執(zhí)行程序代碼,并在執(zhí)行過(guò)程中查看變量的值。當(dāng)發(fā)現(xiàn)變量的值并非如我們預(yù)期或程序的執(zhí)行邏輯并非我們預(yù)期時(shí),就發(fā)現(xiàn)了錯(cuò)誤,可以進(jìn)行有針對(duì)性的改正。2023/8/7北京大學(xué)47VC++編程環(huán)境-基本概念D2023/9/30北京大學(xué)48VC++編程環(huán)境-基本概念Run(運(yùn)行)啟動(dòng)一個(gè)可執(zhí)行程序使其開(kāi)始執(zhí)行稱為運(yùn)行。2023/8/7北京大學(xué)48VC++編程環(huán)境-基本概念R2023/9/30北京大學(xué)49VC++編程環(huán)境–基本功能創(chuàng)建新工程編輯源程序編譯

/連接運(yùn)行調(diào)試2023/8/7北京大學(xué)49VC++編程環(huán)境–基本功能創(chuàng)2023/9/30北京大學(xué)50VC++編程環(huán)境-創(chuàng)建新工程

2023/8/7北京大學(xué)50VC++編程環(huán)境-創(chuàng)建新工程2023/9/30北京大學(xué)51VC++編程環(huán)境-創(chuàng)建新工程

2023/8/7北京大學(xué)51VC++編程環(huán)境-創(chuàng)建新工程2023/9/30北京大學(xué)52VC++編程環(huán)境-創(chuàng)建新工程

2023/8/7北京大學(xué)52VC++編程環(huán)境-創(chuàng)建新工程2023/9/30北京大學(xué)53VC++編程環(huán)境-創(chuàng)建新工程

2023/8/7北京大學(xué)53VC++編

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論