計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2-1_程序設(shè)計(jì)語(yǔ)言_第1頁(yè)
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2-1_程序設(shè)計(jì)語(yǔ)言_第2頁(yè)
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2-1_程序設(shè)計(jì)語(yǔ)言_第3頁(yè)
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2-1_程序設(shè)計(jì)語(yǔ)言_第4頁(yè)
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2-1_程序設(shè)計(jì)語(yǔ)言_第5頁(yè)
已閱讀5頁(yè),還剩57頁(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)介

1、1 22.1 高級(jí)程序設(shè)計(jì)語(yǔ)言概述 操作碼操作數(shù)操作數(shù)備注000001001010000100101110二進(jìn)制指令04HA1H2EH十六進(jìn)制指令A(yù)DDAX2EH匯編指令 操作碼 操作數(shù) 操作數(shù)3DATASEGMENT XX DB X YY DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BIGR MOV AL,0FFH MOV YY,AL HLT JE EQUT BIGR: MOVAL,01H MOVYY,AL HLTEQUT:MOVYY

2、,AL HLTCODE ENDS ENDSTART ;數(shù)據(jù)段開(kāi)始;X值存入XX單元;YY單元留作存函數(shù)Y的值;以上是數(shù)據(jù)段;代碼段開(kāi)始;CS段中裝入代碼,DS段中裝入數(shù)據(jù);執(zhí)行開(kāi)始;將XX中的值轉(zhuǎn)移到運(yùn)算器AL;將運(yùn)算器AL中的值與0比較;如果大于等于0就跳B(niǎo)IGR;X0) y=1 else if(x=0) y=0 else y=-1 cout x,y; 5o機(jī)器只知道根據(jù)機(jī)器語(yǔ)言指令來(lái)執(zhí)行程序,高級(jí)語(yǔ)言程序必須通過(guò)翻譯變成機(jī)器語(yǔ)言程序,這個(gè)工作一般由翻譯程序自動(dòng)完成的。把一種語(yǔ)言翻譯成另一種語(yǔ)言的程序叫做翻譯器(如C+翻成C)。把高級(jí)語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序有兩種做法:編譯和解釋,相應(yīng)的翻

3、譯程序分別叫做編譯器和解釋器。6一個(gè)高級(jí)語(yǔ)言程序是編譯(程序)器的輸入。編譯器逐行掃描程序,首先是識(shí)別符號(hào)串:關(guān)鍵字、字面量、標(biāo)識(shí)符(變量名、數(shù)據(jù)名)、運(yùn)算符、注釋行、特殊符號(hào)(續(xù)行、語(yǔ)句結(jié)束、數(shù)組等)這六類符號(hào),分別歸類等待處理。這個(gè)過(guò)程就是詞法分析(Lexical Analysis)。(Syntax Analysis)。這時(shí)一個(gè)語(yǔ)句就作為一串記號(hào)(token)流由語(yǔ)法分析器處理。按照語(yǔ)言的文法檢查每個(gè)語(yǔ)法分析樹(shù),判定是否為合乎語(yǔ)法的句子。如果是合法句子就以內(nèi)部格式把這個(gè)語(yǔ)法樹(shù)保存起來(lái),否則報(bào)錯(cuò)。這樣直至檢查完整個(gè)程序。(Semantic Analysis )。對(duì)各句子的語(yǔ)法樹(shù)做檢查:運(yùn)算符

4、兩邊類型是否相兼容;作哪些類型轉(zhuǎn)換(例如實(shí)數(shù)向整數(shù)賦值要取整);是否控制轉(zhuǎn)移到不該去的地方;是否有重名或者使語(yǔ)義含糊的記號(hào)等。如果有錯(cuò)轉(zhuǎn)到出錯(cuò)處理,否則生成中間代碼。7中間代碼是向目標(biāo)碼即機(jī)器語(yǔ)言的代碼過(guò)渡的一種編碼,其形式盡可能和機(jī)器的匯編語(yǔ)言相似,以便下一步的代碼生成。中間碼不涉及具體機(jī)器的操作碼和地址碼。采用中間碼的好處是可以在中間碼上作優(yōu)化。對(duì)中間碼程序做局部?jī)?yōu)化和全局優(yōu)化,使運(yùn)行更快,占用空間最小。局部?jī)?yōu)化是合并冗余操作、簡(jiǎn)化計(jì)算,例如x : 0;可用一條“清零”指令替換全局優(yōu)化包括改進(jìn)循環(huán)、減少調(diào)用次數(shù)和快速地址算法等。由代碼生成器生成目標(biāo)機(jī)器的目標(biāo)碼(或匯編)程序,要作數(shù)據(jù)分段、

5、選定寄存器等工作,然后生成機(jī)器可執(zhí)行的代碼。高級(jí)語(yǔ)言源程序經(jīng)編譯后得到目標(biāo)碼程序,但它還不能立即裝入機(jī)器執(zhí)行,一般情況下它是不夠完整的。如程序中用到abs ( ) , sin ( )這些函數(shù),可直接調(diào)用,不需求絕對(duì)值、求正弦的程序,已作為目標(biāo)碼存放在機(jī)器中。編譯后得到的目標(biāo)模塊還需進(jìn)行連接連接程序(即Linker)找出需要連接的外部模塊并到模塊庫(kù)中找出被調(diào)用的模塊,調(diào)入內(nèi)存并連接到目標(biāo)模塊上,形成可執(zhí)行程序。把執(zhí)行程序加載(Loading)到內(nèi)存中合適的位置,即可執(zhí)行。8 9 10無(wú)條件轉(zhuǎn)移語(yǔ)句:在匯編語(yǔ)言時(shí)代就有了Jump 指令使執(zhí)行跳轉(zhuǎn),對(duì)應(yīng)的高級(jí)語(yǔ)言語(yǔ)句是無(wú)條件轉(zhuǎn)移語(yǔ)句:goto loo

6、p; 其中l(wèi)oop 是跳轉(zhuǎn)到的語(yǔ)句的標(biāo)號(hào)(數(shù)字或標(biāo)識(shí)符)。條件轉(zhuǎn)移語(yǔ)句:加上條件判斷子句if(E)就是條件轉(zhuǎn)移語(yǔ)句:If(E) goto loop;其中E 是條件(布爾)表達(dá)式,求值結(jié)果是真、假值。如果為真轉(zhuǎn)移到標(biāo)號(hào)為l 的語(yǔ)句,為假則按順序執(zhí)行下一條語(yǔ)句。11 三種結(jié)構(gòu)化的基本控制結(jié)構(gòu)1213o無(wú)假塊條件分支和嵌套if語(yǔ)句(1)條件分支1415odo-until和for結(jié)構(gòu) 16 以控制變量增減值或枚舉集合值計(jì)數(shù)的循環(huán)。for-do是do-while的另一種變體結(jié)構(gòu),其書(shū)寫(xiě)格式有多種變體。17181920數(shù)組類型 21 22 3C58123 (3C58)*PP 指針變量示意圖23 24Mai

7、n() a=a*sin(30)+c; d=e*ein(37)-f; y=60*sin(76)/13; double sin(int x) x=x*3.1459/180; /計(jì)算正弦值 return; 25若無(wú)參數(shù),寫(xiě)void是被初始化的內(nèi)部變量,壽命和可見(jiàn)性僅限于函數(shù)內(nèi)部若不說(shuō)明類型,一律自動(dòng)按整型處理,若為void即為無(wú)返回262728計(jì)算機(jī)軟件技術(shù)基礎(chǔ)2930clear thescreenset the display as color and text model31show the ascii value from 48 to 90, i.e. form 09, :;?, AZ3233

8、 34 35 36 過(guò)程范式 面向?qū)ο蠓妒?對(duì)象 對(duì)象 對(duì)象 對(duì)象 過(guò)程 1 過(guò)程 2 過(guò)程 3 數(shù)據(jù) 方法 數(shù)據(jù) 方法 數(shù)據(jù) 方法 方法 數(shù)據(jù) 數(shù)據(jù) 3738394041424344class Person char IDcard18; char name20; . ; class Student:public Person char studentcode8;char deparment15; ;45464748 495051 網(wǎng)絡(luò)計(jì)算在網(wǎng)站之間傳遞的是主頁(yè)。主頁(yè)按http 協(xié)議傳遞,頁(yè)面格式是HTML(超文本標(biāo)記語(yǔ)言)。每個(gè)站點(diǎn)上都有瀏覽器可以識(shí)別以約定標(biāo)簽標(biāo)記過(guò)的正文,標(biāo)簽成對(duì)形如:

9、,標(biāo)簽層層嵌套,如一本書(shū)先章、節(jié)、段落后復(fù)合語(yǔ)句、簡(jiǎn)單語(yǔ)句。經(jīng)過(guò)標(biāo)記之后一段正文信息就成為結(jié)構(gòu)化數(shù)據(jù)。傳到另一站點(diǎn)后,瀏覽器讀出這段正文,就原封不動(dòng)地轉(zhuǎn)移了,即使是圖文并茂的多媒體文檔也照傳無(wú)誤。但HTML 約定的60 多個(gè)標(biāo)簽表達(dá)能力有限。它只知道傳遞的內(nèi)容是符號(hào)串和二進(jìn)制塊。于是,人們發(fā)展了可以由用戶定義標(biāo)簽的XML可擴(kuò)展的置標(biāo)語(yǔ)言)語(yǔ)言,從而可描述頁(yè)面的數(shù)據(jù)內(nèi)容。頁(yè)面格式由XSL 或CSS子語(yǔ)言描述XML 可描述數(shù)據(jù)關(guān)系比較復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如圖、表、樹(shù)、索引文件和數(shù)據(jù)庫(kù)中定義的數(shù)據(jù)關(guān)系。在數(shù)據(jù)庫(kù)服務(wù)器站點(diǎn)上根據(jù)不同客戶要求,從庫(kù)中取出數(shù)據(jù)放入XML文檔,傳送到不同站點(diǎn)的客戶機(jī)上,各站點(diǎn)上的客戶就可以按標(biāo)簽理解并使用它們。盡管HTML 和XML 在當(dāng)今萬(wàn)維網(wǎng)上傳送信息(寫(xiě)主頁(yè))是不可或缺的工具,但它們不是傳統(tǒng)意義上的編程語(yǔ)言它們只能描述、傳遞數(shù)據(jù),不能表達(dá)對(duì)這些數(shù)據(jù)的操作也就是客戶接到數(shù)據(jù)庫(kù)中的數(shù)據(jù)后還要自己編寫(xiě)程序完成數(shù)據(jù)處理。為此,發(fā)展了各種腳本語(yǔ)言,腳本語(yǔ)言隨同Web 頁(yè)面一起傳送到另一站點(diǎn),該站點(diǎn)的瀏覽器叮以立即執(zhí)行。52532.5.3 網(wǎng)絡(luò)編程語(yǔ)言網(wǎng)絡(luò)編程語(yǔ)言5455Java(虛 擬 機(jī) )Javac( 編 譯 器 )Java(虛 擬 機(jī) )J

溫馨提示

  • 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)論