計(jì)算機(jī)軟件技術(shù)基礎(chǔ)21程序設(shè)計(jì)語言_第1頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)21程序設(shè)計(jì)語言_第2頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)21程序設(shè)計(jì)語言_第3頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)21程序設(shè)計(jì)語言_第4頁
計(jì)算機(jī)軟件技術(shù)基礎(chǔ)21程序設(shè)計(jì)語言_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ì)語言概述 操作碼操作數(shù)操作數(shù)備注000001001010000100101110二進(jìn)制指令04ha1h2eh十六進(jìn)制指令addax2eh匯編指令 操作碼 操作數(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ù)段開始;x值存入xx單元;yy單元留作存函數(shù)y的值;以上是數(shù)據(jù)段;代碼段開始;cs段中裝入代碼,ds段中裝入數(shù)據(jù);執(zhí)行開始;將xx中的值轉(zhuǎn)移到運(yùn)算器al;將運(yùn)算器al中的值與0比較;如果大于等于0就跳bigr;x0) y=1 else if(x=0) y=0 else y=-1 cout x,y; 5機(jī)器只知道根據(jù)機(jī)器語言指令來執(zhí)行程序,高級(jí)語言程序必須通過翻譯變成機(jī)器語言程序,這個(gè)工作一般由翻譯程序自動(dòng)完成的。把一種語言翻譯成另一種語言的程序叫做翻譯器(如c+翻成c)。把高級(jí)語言程序翻譯成機(jī)器語言程序有兩種做法:編譯和解釋,相應(yīng)的翻譯

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

4、邊類型是否相兼容;作哪些類型轉(zhuǎn)換(例如實(shí)數(shù)向整數(shù)賦值要取整);是否控制轉(zhuǎn)移到不該去的地方;是否有重名或者使語義含糊的記號(hào)等。如果有錯(cuò)轉(zhuǎn)到出錯(cuò)處理,否則生成中間代碼。7中間代碼是向目標(biāo)碼即機(jī)器語言的代碼過渡的一種編碼,其形式盡可能和機(jī)器的匯編語言相似,以便下一步的代碼生成。中間碼不涉及具體機(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í)語言源程序經(jīng)編譯后得到目標(biāo)碼程序,但它還不能立即裝入機(jī)器執(zhí)行,一般情況下它是不夠完整的。如程序中用到abs ( ) , sin ( )這些函數(shù),可直接調(diào)用,不需求絕對(duì)值、求正弦的程序,已作為目標(biāo)碼存放在機(jī)器中。編譯后得到的目標(biāo)模塊還需進(jìn)行連接連接程序(即linker)找出需要連接的外部模塊并到模塊庫中找出被調(diào)用的模塊,調(diào)入內(nèi)存并連接到目標(biāo)模塊上,形成可執(zhí)行程序。把執(zhí)行程序加載(loading)到內(nèi)存中合適的位置,即可執(zhí)行。8 9 10無條件轉(zhuǎn)移語句:在匯編語言時(shí)代就有了jump 指令使執(zhí)行跳轉(zhuǎn),對(duì)應(yīng)的高級(jí)語言語句是無條件轉(zhuǎn)移語句:goto loop

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

7、 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若無參數(shù),寫void是被初始化的內(nèi)部變量,壽命和可見性僅限于函數(shù)內(nèi)部若不說明類型,一律自動(dòng)按整型處理,若為void即為無返回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 34

8、 35 36 過程范式 面向?qū)ο蠓妒?對(duì)象 對(duì)象 對(duì)象 對(duì)象 過程 1 過程 2 過程 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)站之間傳遞的是主頁。主頁按http 協(xié)議傳遞,頁面格式是html(超文本標(biāo)記語言)。每個(gè)站點(diǎn)上都有瀏覽器可以識(shí)別以約定標(biāo)簽標(biāo)記過的正文,標(biāo)簽成對(duì)形如: ,標(biāo)簽

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論