版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五講程序設(shè)計語言和編程環(huán)境北京大學(xué)
信息科學(xué)技術(shù)學(xué)院2023年9月30日第五講程序設(shè)計語言和編程環(huán)境2023年8月7日2023/9/30北京大學(xué)2主要內(nèi)容程序設(shè)計語言概述機(jī)器語言匯編語言高級語言及其程序的執(zhí)行若干典型的高級語言介紹VC6.0編程環(huán)境2023/8/7北京大學(xué)2主要內(nèi)容程序設(shè)計語言概述2023/9/30北京大學(xué)31、程序設(shè)計語言概述計算機(jī)硬件組成2023/8/7北京大學(xué)31、程序設(shè)計語言概述計算機(jī)硬件組成2023/9/30北京大學(xué)4程序是由若干條指令的順序排列組成,是為信息處理任務(wù)而預(yù)先編制的工作執(zhí)行方案。1、程序設(shè)計語言概述計算機(jī)指令的執(zhí)行及程序2023/8/7北京大學(xué)4程序是由若干條指令的順序排列組成,2023/9/30北京大學(xué)51、程序設(shè)計語言概述程序設(shè)計語言軟件的基本組成部分是完成其功能的程序。程序描述了計算機(jī)處理數(shù)據(jù)、解決問題的過程,這是程序的實質(zhì)。程序的描述形式卻可以是多種多樣的,可以用不同的方式表述,這就是程序設(shè)計語言。程序設(shè)計語言(也被稱為“編程語言”,ProgrammingLanguage)是人們描述(編制)程序所使用的規(guī)范和方法(語言)。機(jī)器語言、匯編語言、高級語言2023/8/7北京大學(xué)51、程序設(shè)計語言概述程序設(shè)計語言2023/9/30北京大學(xué)62、機(jī)器語言機(jī)器指令采用二進(jìn)制代碼形式,它們符合具體計算機(jī)的指令系統(tǒng),可以由計算機(jī)直接執(zhí)行。因此機(jī)器指令實際上也是一種可以在程序設(shè)計中使用的語言,被稱為“機(jī)器語言”。每一條機(jī)器指令包括兩個主要方面:操作(指出計算機(jī)應(yīng)做什么)被操作的對象(指出處理的數(shù)據(jù)或它的地址)下面給出了幾條以二進(jìn)制形式描述的Intel80386指令以及對它們的文字解釋。2023/8/7北京大學(xué)62、機(jī)器語言機(jī)器指令采用二進(jìn)制代碼2023/9/30北京大學(xué)72、機(jī)器語言01000000把一個寄存器(EAX)的值加1
100010110000010100000000011110011000111110101101從某個內(nèi)存單元取出數(shù)據(jù),裝入EAX寄存器2023/8/7北京大學(xué)72、機(jī)器語言010000002023/9/30北京大學(xué)82、機(jī)器語言從直接閱讀的角度看,二進(jìn)制代碼簡直是密碼,難以理解和使用。因此也必然造成程序不易修改,無法由一種計算機(jī)環(huán)境移植到其他環(huán)境上。101010111010010101000100010110011001111010111101100110110100010100100000111110011010011101101101101000111000010110000001011111011000110110101101010011111010010101001010011110111001101110100111……用機(jī)器語言編程,不僅指令操作需要用規(guī)定的二進(jìn)制代碼描述,程序里的數(shù)據(jù)也要程序設(shè)計者自己安排存儲位置。這使程序設(shè)計工作更加煩雜和容易出錯。要檢查和發(fā)現(xiàn)程序中的錯誤也是極端困難的。這一系列因素使得用程序開發(fā)工作的效率非常低,據(jù)統(tǒng)計,一個人一天平均只能夠?qū)懗鰩讞l有效指令。
2023/8/7北京大學(xué)82、機(jī)器語言從直接閱讀的角度看,2023/9/30北京大學(xué)93、匯編語言從人的思維方式而言,更適合于用概念描述事物,對于煩瑣冗長的數(shù)字編碼,由于它們不能與概念和概念之間的語義聯(lián)系產(chǎn)生任何提示作用,則顯然對設(shè)計思維沒有任何幫助作用,純粹是一種累贅。人們顯然更希望用有幫助記憶作用的符號來書寫程序,例如用“ADD”表示“加法”操作,用“JMP”表示“控制性轉(zhuǎn)移”等。操作的對象(數(shù)據(jù)或數(shù)據(jù)的地址)最好也能用符號形式表示,例如用X、Y代表兩個存儲數(shù)據(jù)的容器。顯然這樣做比直接采用二進(jìn)碼方便得多。這就是“匯編程序設(shè)計語言”的基本想法。2023/8/7北京大學(xué)93、匯編語言從人的思維方式而言,更2023/9/30北京大學(xué)103、匯編語言匯編語言提供一組具有幫助記憶作用的“匯編指令”,每條匯編指令都和一條機(jī)器指令相對應(yīng),只是指令碼和操作數(shù)都采用符號形式?!?/p>
…PUSHECXMOVERROR,0MOVECX,EAXCMPECX,0JMPFAILCALLFACT…
…2023/8/7北京大學(xué)103、匯編語言匯編語言提供一組具有2023/9/30北京大學(xué)113、匯編語言對于這種匯編語言形式寫出的程序,計算機(jī)是不能直接執(zhí)行的,必須在交給計算機(jī)執(zhí)行之前先把它翻譯成二進(jìn)制的機(jī)器語言指令程序。把匯編語言程序翻譯到機(jī)器語言的工作比較機(jī)械,可以用計算機(jī)來完成這個翻譯工作?!皡R編器”(Assembler)軟件就是具有這種功能的軟件,它能把用匯編語言書寫的程序翻譯成機(jī)器語言程序。
2023/8/7北京大學(xué)113、匯編語言對于這種匯編語言形式2023/9/30北京大學(xué)123、匯編語言在這里,我們又看到了“程序”和“數(shù)據(jù)”兩個概念的相對性:對匯編器而言,它的輸入“數(shù)據(jù)”是匯編語言程序,這種程序當(dāng)作數(shù)據(jù)(是一系列的字符行)被加工處理。匯編器產(chǎn)生的結(jié)果是機(jī)器代碼程序(具有二進(jìn)符號串的形式),同時它也是即將在計算機(jī)上運行的真正的程序。2023/8/7北京大學(xué)123、匯編語言在這里,我們又看到了2023/9/30北京大學(xué)133、匯編語言從程序開發(fā)的角度來看,匯編語言與機(jī)器語言類似,仍然有許多缺點:匯編語言的描述機(jī)制層次太低,其基本描述單位仍然是指令,這種方式與人們描述計算過程的需要之間差距太大。匯編語言與計算機(jī)硬件的具體結(jié)構(gòu)、指令系統(tǒng)聯(lián)系過于緊密,這種情況造成的后果是在一種計算機(jī)上開發(fā)的程序極難搬到另一種不同結(jié)構(gòu)的計算機(jī)上使用。如果想這樣做,不僅工作量將非常大(與重寫差不多),而且很容易引出程序錯誤,修改也非常困難。2023/8/7北京大學(xué)133、匯編語言從程序開發(fā)的角度來看2023/9/30北京大學(xué)143、匯編語言樣例程序1計算表達(dá)式:135+22-1常用寄存器AX,BX,CX等可以用來保存中間結(jié)果;計算過程:MOVAX,135MOVBX,22ADDAX,BXSUBAX,1HLT2023/8/7北京大學(xué)143、匯編語言樣例程序12023/9/30北京大學(xué)153、匯編語言樣例程序2計算從1累加到100得到的和AX保存累加和,BX存放被加數(shù),每加完一次增加1。通過一個循環(huán)來完成累加工作。計算過程:MOVAX,1MOVBX,2calc:CMPBX,101JEstopADDAX,BXINCBXJMPcalcstop:HLT2023/8/7北京大學(xué)153、匯編語言樣例程序22023/9/30北京大學(xué)163、匯編語言樣例程序3求一組數(shù)33,15,21,7,9,23,4,76,87,45中的最大值.總的思想是用一個存儲單元保存到目前為止的最大值,將10個數(shù)逐一取出與最大值比較,如果該數(shù)比當(dāng)前最大值更大,則將更新當(dāng)前最大值.2023/8/7北京大學(xué)163、匯編語言樣例程序32023/9/30北京大學(xué)173、匯編語言數(shù)組變量DATA存儲給定的十個整數(shù);BX記錄當(dāng)前計算的是第幾個數(shù),0-9;CX記錄數(shù)組中當(dāng)前沒有被計算過的數(shù),初值為10,每計算一個數(shù),它的值減1,當(dāng)它為0時,停止計算(循環(huán)計數(shù));AX是16位寄存器,可以分成兩個8位寄存器AH和AL使用,每次總是將一個數(shù)復(fù)制到AL中去.2023/8/7北京大學(xué)173、匯編語言數(shù)組變量DATA存儲2023/9/30北京大學(xué)183、匯編語言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、匯編語言MOVAL,02023/9/30北京大學(xué)194、高級語言及其程序的執(zhí)行高級語言在對計算過程的描述方面,完全脫離了簡單的指令方式,采用類似于數(shù)學(xué)公式的書寫方式描述由一些數(shù)據(jù)計算出結(jié)果的過程,用一些更高級程序流程描述結(jié)構(gòu)取代簡單的跳轉(zhuǎn)指令方式,以更好地滿足書寫程序的需要。在高級程序語言中也使用“變量”這個概念,在這里“變量”代表一種容器,用于存放程序中處理的數(shù)據(jù)。變量對應(yīng)著存儲器的若干字節(jié)(存儲單元),但它們在存儲器中的具體位置并不需要編程人員關(guān)心,這樣就大大減輕了編程人員的負(fù)擔(dān)。2023/8/7北京大學(xué)194、高級語言及其程序的執(zhí)行高級語2023/9/30北京大學(xué)204、高級語言及其程序的執(zhí)行高級語言中的變量采用字符串形式的名字,如x、len、Max、Number等。一方面名字可以幫助人們掌握變量所代表的信息含義,在程序里只要用變量的名字就可以讀寫訪問它的存儲單元里的數(shù)據(jù)。定義確定了變量的大小。xlenMaxNumber2023/8/7北京大學(xué)204、高級語言及其程序的執(zhí)行高級語2023/9/30北京大學(xué)214、高級語言及其程序的執(zhí)行高級語言中用于描述計算的結(jié)構(gòu)采用類似于數(shù)學(xué)中代數(shù)運算公式的形式,這種結(jié)構(gòu)被稱為“表達(dá)式”。程序中基本的動作單位被稱為“語句”,不同的語句實現(xiàn)不同的功能。高級語言里最基本語句就是“賦值語句”(AssignmentStatement),這種語句描述把通過計算得到的結(jié)果(值)賦給變量的動作。舉例說:X=100; Y=2*SIN(1.047);Z=X*Y;2023/8/7北京大學(xué)214、高級語言及其程序的執(zhí)行高級語2023/9/30北京大學(xué)224、高級語言及其程序的執(zhí)行用高級語言書寫的程序不可能直接在計算機(jī)上執(zhí)行,與匯編語言程序一樣,需要將它轉(zhuǎn)換成機(jī)器語言指令程序。在計算機(jī)上將高級語言書寫的程序轉(zhuǎn)換成機(jī)器語言指令程序,有兩種基本方法:編譯(Compilation)方式解釋(Interpretation)方式2023/8/7北京大學(xué)224、高級語言及其程序的執(zhí)行用高級2023/9/30北京大學(xué)234、高級語言及其程序的執(zhí)行編譯方式是設(shè)法把高級語言程序(也稱為“源程序”)翻譯轉(zhuǎn)換成為可以由計算機(jī)直接執(zhí)行的機(jī)器語言指令程序,經(jīng)連接裝配后轉(zhuǎn)變?yōu)椤翱蓤?zhí)行程序”(ExecutableProgram)。人們實現(xiàn)了高級語言“編譯器”(Compiler)完成這種翻譯工作。編譯器把高級語言程序看成是符合一定語法結(jié)構(gòu)的符號串,對它進(jìn)行加工變換。2023/8/7北京大學(xué)234、高級語言及其程序的執(zhí)行編譯方2023/9/30北京大學(xué)24
編譯器對源程序的加工一般分為兩個階段:源程序首先被翻譯成機(jī)器語言,這種翻譯結(jié)果稱為“目標(biāo)碼”(objectcode),目標(biāo)碼構(gòu)成的程序片段稱為目標(biāo)模塊。第二步,這些目標(biāo)模塊被與其他一些基本模塊(通用目標(biāo)程序模塊,由編譯軟件或其他人提供)連接在一起,最終形成“可執(zhí)行程序”(executableprogram),這樣的程序就可以在計算機(jī)上實際運行了。第一個加工步驟稱為“編譯”(compiling),第二個步驟稱為“連接”(linking)。4、高級語言及其程序的執(zhí)行2023/8/7北京大學(xué)24編譯器對源程序的加工2023/9/30北京大學(xué)25可執(zhí)行的機(jī)器語言指令4、高級語言及其程序的執(zhí)行解釋(Interpretation)方式由一種稱為“解釋器”(Interpreter)軟件實現(xiàn)。解釋器在工作方式上與編譯器不同,它不事先對源程序進(jìn)行翻譯,而是在執(zhí)行時即時對源程序的語句進(jìn)行分析和解釋,實現(xiàn)源程序所描述的功能。2023/8/7北京大學(xué)25可執(zhí)行的機(jī)器語言指令4、高級語言2023/9/30北京大學(xué)265、若干典型的高級語言的介紹第一個高級程序語言是FORTRAN語言,它是由美國IBM公司的科技人員在五十年代開發(fā)出來的。高級語言的開發(fā)成功是軟件技術(shù)發(fā)展的一個重要里程碑。從那以后,人們設(shè)計并實現(xiàn)了許多高級程序語言。高級語言不但是程序開發(fā)的工具,也成為一種在人與人之間,在不同的計算機(jī)之間交流的工具。為了保證語言的通用性,國際標(biāo)準(zhǔn)化組織動用很多人力物力,對應(yīng)用較廣泛的一些語言提出了標(biāo)準(zhǔn)語言文本。這些工作進(jìn)一步打通了交流渠道,推動了計算機(jī)應(yīng)用的發(fā)展。FORTRAN、PASCAL、C/C++COBOL、BASIC、ADA、JAVA2023/8/7北京大學(xué)265、若干典型的高級語言的介紹第一2023/9/30北京大學(xué)275.1、FORTRANFORTRAN的名字是由英文FORmularTRANslation縮寫而成,意思是“公式翻譯”。在五十年代初期人們考慮的主要是如何有效地把數(shù)學(xué)公式描述的計算過程翻譯成計算機(jī)程序,設(shè)計FORTRAN語言的主要目的是為了描述科學(xué)計算的算法。FORTRAN語言大約在1954年設(shè)計,它的編譯器在1957年完成。后來這個語言還有很大的發(fā)展,成為在科學(xué)計算(數(shù)值計算)方面最主要的編程語言。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語言是由著名瑞士計算機(jī)科學(xué)家N.Wirth(1984年圖靈獎得主)設(shè)計的一種語言,1968年提出后被全世界廣泛接受,成為一種對計算機(jī)科學(xué)技術(shù)發(fā)展有巨大影響的語言。這個語言的名字是為了紀(jì)念歷史上著名的數(shù)學(xué)家和計算學(xué)科的先驅(qū)BlaisePascal(帕斯卡)。Pascal語言把許多好的東西結(jié)合在一個很簡練的語言里,被計算機(jī)教育界廣泛采用。從七十年代末往后的很長一段時間里,Pascal成為世界范圍的計算機(jī)專業(yè)教學(xué)語言,多數(shù)教科書用Pascal給出程序例子,描述計算的算法。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語言C是由美國貝爾實驗室的DennisRetchie在1972年設(shè)計開發(fā)的,開發(fā)目的是想成為一種編制“系統(tǒng)程序”的工具語言。Retchie等人首先用自己發(fā)明的C語言編寫了UNIX操作系統(tǒng)。以后C語言逐步發(fā)展成為開發(fā)系統(tǒng)軟件的主要語言。許多常見的軟件系統(tǒng),例如,在中國使用很廣泛的計算機(jī)輔助設(shè)計軟件AUTOCAD,數(shù)學(xué)軟件系統(tǒng)Mathematica等,以及許多語言編譯系統(tǒng)本身,其軟件系統(tǒng)的全部或者部分程序就是用C語言開發(fā)的。C語言已成為最重要的軟件系統(tǒng)開發(fā)語言,由此可見C語言在計算機(jī)領(lǐng)域地位之重要。2023/8/7北京大學(xué)315.3、C語言C是由美國貝爾實2023/9/30北京大學(xué)325.3、C語言樣例程序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語言樣例程序int2023/9/30北京大學(xué)335.4、C++語言C++是在C語言基礎(chǔ)上發(fā)展出的一種“面向?qū)ο蟆闭Z言。它是由BjarneStroustrup在美國貝爾實驗室開發(fā)的(1983)。C++是C語言的一個擴(kuò)充,它一方面修正了C的一些弱點和不足,使用起來更方便可靠;另一方面,也是更重要的,這種語言以支持“面向?qū)ο蟆保∣bject-Oreinted,簡稱為OO)的程序設(shè)計方法為基本目標(biāo),提供了一套支持面向?qū)ο蟪绦蛟O(shè)計的機(jī)制,如“類”(class)、“對象”(object)等等。面向?qū)ο蟮姆椒ū徽J(rèn)為是開發(fā)復(fù)雜軟件系統(tǒng)的一種有效途徑,OO程序設(shè)計語言也已經(jīng)被廣泛接受。C++是目前使用最廣泛的一種面向?qū)ο蟮某绦蛟O(shè)計語言。
2023/8/7北京大學(xué)335.4、C++語言C++是在2023/9/30北京大學(xué)345.5、COBOLCOBOL(COmmonBusinessOrientedLanguage,通用事務(wù)處理語言)語言是在美國國防部推動下,由政府機(jī)構(gòu)和工業(yè)界聯(lián)合開發(fā)的一種語言,1960年正式推出。它的主要設(shè)計目標(biāo)是用于編制商業(yè)企業(yè)管理信息系統(tǒng)的處理程序和各種軟件。COBOL語言采用一種類似英語的形式,對使用英語的人而言它的可讀性較強(qiáng),但這也帶來程序羅嗦冗長的缺點。數(shù)據(jù)記錄(DATARECORD)的概念是在COBOL語言中第一次引入的。COBOL語言曾經(jīng)使用非常廣泛,七十年代曾有人統(tǒng)計過,當(dāng)時程序語言使用的情況是:將近一半的程序(以字符數(shù)計算)是用COBOL語言書寫的。但目前的情況是COBOL語言已經(jīng)走向衰敗。
2023/8/7北京大學(xué)345.5、COBOLCOBOL(C2023/9/30北京大學(xué)355.6、BASICBASIC(Beginner‘sAll-purposeSymbolicInstructionCode,初學(xué)者的通用符號指令代碼)語言可能仍然是世界上使用人數(shù)最多的語言。這個語言是由JohnKemeny和ThomasKurtz于1964年開發(fā)的,基本上是FORTRAN語言的一個縮減版本。設(shè)計者當(dāng)時希望開發(fā)一個簡單的交互式語言,用于學(xué)習(xí)程序設(shè)計。由于語言簡單,BASIC語言可以在很低檔的微機(jī)上實現(xiàn),因此得到廣泛普及,流行到世界的每個角落??梢哉f,無論國內(nèi)還是國外,BASIC語言對于計算機(jī)的普及都發(fā)揮了重要的作用。2023/8/7北京大學(xué)355.6、BASICBASIC(2023/9/30北京大學(xué)365.7、ADAAda這個名字是紀(jì)念歷史上第一位編程者——Ada夫人(生活在十九世紀(jì)中葉,是著名詩人拜倫的女兒),她被認(rèn)為是第一個寫程序的人,她曾經(jīng)為計算機(jī)先驅(qū)者CharlesBabbage未完成的計算機(jī)寫程序。Ada語言開發(fā)的目的是作為新一代的美國軍用程序設(shè)計語言(1983-1995),作為所有與國防有關(guān)的程序和軟件的統(tǒng)一語言標(biāo)準(zhǔn)。Ada的設(shè)計目標(biāo)是針對那些裝備在機(jī)電設(shè)備上和武器裝備里的計算機(jī)控制、管理軟件系統(tǒng)開發(fā)所使用的。這類系統(tǒng)現(xiàn)在被稱為“嵌入式計算機(jī)系統(tǒng)”,是計算機(jī)的一個重要應(yīng)用方面。Ada語言的設(shè)計也特別注意對復(fù)雜的大型和巨型軟件系統(tǒng)的支持。Ada語言自1983年作為標(biāo)準(zhǔn)提出后,雖由美國國防部大力推行,也受到各國軍方的重視,但不像預(yù)想的那樣成功,其中一個原因是它太復(fù)雜。
2023/8/7北京大學(xué)365.7、ADAAda這個名字是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等人為在電視、控制烤箱等家用消費類電子產(chǎn)品上進(jìn)行交互式操作而開發(fā)了一個名為Oak的軟件,1995年正式推出并更名為Java。Writeonce,runeverywhere.目前網(wǎng)絡(luò)程序開發(fā)的主要語言特點面向?qū)ο蟊阌诰W(wǎng)絡(luò)開發(fā)簡單易學(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語言。2023/8/7北京大學(xué)40我們這門課程主要介紹C語言。2023/9/30北京大學(xué)416、VC6.0編程環(huán)境基本概念基本功能編程及調(diào)試過程示例2023/8/7北京大學(xué)416、VC6.0編程環(huán)境基本概念2023/9/30北京大學(xué)42VC++編程環(huán)境-基本概念
Project(工程):VC編程環(huán)境下,編寫程序的工作是以Project為單位。在開始一個新程序時,要先建立一個Project,之后在程序編寫過程中所有與這個程序有關(guān)的文件都會包含在這個Project中。編制的程序可以有各種不同類型,編程環(huán)境為每種類型的程序準(zhǔn)備了一個模版,用來生成程序的最初框架。在我們這門課程里只介紹編寫Win32ConsoleApplication類型的程序。這類程序的特點是:程序運行中會打開一個類似于DOS操作系統(tǒng)的界面,所有鍵盤輸入都是通過DOS界面進(jìn)行的,而所有輸出都是輸出到DOS窗口中。2023/8/7北京大學(xué)42VC++編程環(huán)境-基本概念2023/9/30北京大學(xué)43VC++編程環(huán)境-基本概念SourceFile(源程序)源程序是我們用高級程序設(shè)計語言書寫的程序。源程序必須經(jīng)過編譯連接變成可執(zhí)行程序(機(jī)器代碼)才能運行。在下面的章節(jié)中,我們主要用介紹C語言編寫源程序。2023/8/7北京大學(xué)43VC++編程環(huán)境-基本概念S2023/9/30北京大學(xué)44VC++編程環(huán)境-基本概念Compile(編譯)把源程序變成機(jī)器目標(biāo)代碼的過程稱為編譯。不同的高級語言有不同的編譯器。2023/8/7北京大學(xué)44VC++編程環(huán)境-基本概念C2023/9/30北京大學(xué)45VC++編程環(huán)境-基本概念Link(連接)各種高級語言都會提供一些常用的功能模塊,我們自己編寫的程序里會調(diào)用這些功能模塊。同時要把我們寫的程序裝載到內(nèi)存里運行,也需要加載一定的與環(huán)境相關(guān)的信息。所以將我們自己寫的程序編譯成機(jī)器代碼后,還需要一個連接的過程以生成最后的可執(zhí)行程序。2023/8/7北京大學(xué)45VC++編程環(huán)境-基本概念L2023/9/30北京大學(xué)46VC++編程環(huán)境-基本概念Build(編譯并連接)編譯并連接是把源程序編譯,如果沒有錯誤則連接,否則給出編譯錯誤信息。2023/8/7北京大學(xué)46VC++編程環(huán)境-基本概念B2023/9/30北京大學(xué)47VC++編程環(huán)境-基本概念Debug(調(diào)試)當(dāng)程序出錯時,可用調(diào)試工具發(fā)現(xiàn)錯處的代碼,進(jìn)行改正。所謂調(diào)試是指逐條執(zhí)行或部分執(zhí)行程序代碼,并在執(zhí)行過程中查看變量的值。當(dāng)發(fā)現(xiàn)變量的值并非如我們預(yù)期或程序的執(zhí)行邏輯并非我們預(yù)期時,就發(fā)現(xiàn)了錯誤,可以進(jìn)行有針對性的改正。2023/8/7北京大學(xué)47VC++編程環(huán)境-基本概念D2023/9/30北京大學(xué)48VC++編程環(huán)境-基本概念Run(運行)啟動一個可執(zhí)行程序使其開始執(zhí)行稱為運行。2023/8/7北京大學(xué)48VC++編程環(huán)境-基本概念R2023/9/30北京大學(xué)49VC++編程環(huán)境–基本功能創(chuàng)建新工程編輯源程序編譯
/連接運行調(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《過程控制專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工業(yè)大學(xué)《大數(shù)據(jù)和人工智能導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《CPA稅法》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)生口才表演課件圖片
- 培訓(xùn)學(xué)校課件
- 廣東碧桂園職業(yè)學(xué)院《音樂律動(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《如何品鑒葡萄酒》課件
- 贛南醫(yī)學(xué)院《國際商法與公司治理》2023-2024學(xué)年第一學(xué)期期末試卷
- 《外周血管介入護(hù)理》課件
- 贛東學(xué)院《實驗室安全與法規(guī)》2023-2024學(xué)年第一學(xué)期期末試卷
- 媒介融合概論
- 2023-2024學(xué)年廣東省深圳市小學(xué)數(shù)學(xué)五年級上冊期末評估試卷
- 新求精中級I聽力原文
- GB 19641-2015食品安全國家標(biāo)準(zhǔn)食用植物油料
- GA/T 172-2005金屬手銬
- 抽油機(jī)井示功圖匯總課件
- 煤礦安全管理機(jī)構(gòu)結(jié)構(gòu)圖
- 《蘭亭序》中楷毛筆臨摹字帖可打印
- 免疫學(xué)(全套課件)
- 學(xué)生宿舍管理員考核表
- 建筑工程施工現(xiàn)場安全生產(chǎn)檢查要點
評論
0/150
提交評論