程式語(yǔ)言簡(jiǎn)介_第1頁(yè)
程式語(yǔ)言簡(jiǎn)介_第2頁(yè)
程式語(yǔ)言簡(jiǎn)介_第3頁(yè)
程式語(yǔ)言簡(jiǎn)介_第4頁(yè)
程式語(yǔ)言簡(jiǎn)介_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

程式語(yǔ)言簡(jiǎn)介1程式語(yǔ)言的演進(jìn)一、機(jī)器語(yǔ)言(machinelanguage)由一堆的「0」或「1」所組成。對(duì)於不同型態(tài)的電腦,因?yàn)槠浣Y(jié)構(gòu)不同就有不同的機(jī)器語(yǔ)言。不容易撰寫外,對(duì)於程式的維護(hù)也相對(duì)的困難。二、組合語(yǔ)言(assemblylanguage)使用輔助記憶碼以方便記憶。不同型態(tài)的電腦,其組合語(yǔ)言也是不相同的。須經(jīng)由assembler(組譯程式)組譯成機(jī)器碼後,才可執(zhí)行。2程式語(yǔ)言的演進(jìn)三、高階語(yǔ)言(high-levellanguage)

使用人們所熟悉的語(yǔ)法來(lái)描述。大大減低了程式設(shè)計(jì)的難度,這使得它廣為程式設(shè)計(jì)師所採(cǎi)用。須經(jīng)由compiler(編譯程式)或interpreter(直譯程式)翻譯成機(jī)器碼後,才可執(zhí)行。四、非常高階語(yǔ)言(veryhigh-levellanguage)

第四代程式語(yǔ)言

(fourth–GenerationLanguage;4GL)程式設(shè)計(jì)師只要設(shè)定它所要的格式及其結(jié)果,這種語(yǔ)言會(huì)自動(dòng)推展出所期望的程式碼。3語(yǔ)言轉(zhuǎn)譯程式非常高階語(yǔ)言高階語(yǔ)言組合語(yǔ)言Compiler編譯程式Interpreter直譯程式Assembler組譯程式MachineCode機(jī)器程式碼機(jī)器語(yǔ)言BASICFortranCOBOLPASCALCC++BCBASSEMBLY4語(yǔ)言轉(zhuǎn)譯程式對(duì)於高階(HighLevel)語(yǔ)言,您仍得將其翻譯成機(jī)械碼才得以執(zhí)行。 翻譯的方式有兩種:

直譯法(為直譯程式的翻譯方式) 亦即當(dāng)演講者講了一句後,翻譯員立即將此句翻譯給聽眾,聽眾馬上了解演講者所講的這句話;如此一直到演講者講完為止。全譯法(為編譯程式的翻譯方式) 亦即讓演講者將整篇講稿講完後,翻譯員才將整篇講稿翻譯出來(lái),而後聽眾才了解整個(gè)演講的內(nèi)容。

5語(yǔ)言轉(zhuǎn)譯程式直譯器(Interpreter)直譯法的優(yōu)點(diǎn)是:

1.在直譯法下,使用者欲執(zhí)行程式時(shí),一般是執(zhí)行一條命令即可。2.直譯程式該翻譯程式在被使用者使用過(guò)程中,一般都儲(chǔ)存在主記憶體,所以當(dāng)使用者每次執(zhí)行程式時(shí),不必浪費(fèi)取出直譯程式的I/O時(shí)間。3.由於在直譯法下,使用者不需要執(zhí)行連結(jié)的工作,所以可以省去不少有關(guān)連結(jié)工作的I/O時(shí)間。4.直譯程式在執(zhí)行時(shí),是採(cǎi)用交談式(Interactive)的方式。亦即使用者可以很容易的與電腦作溝通之工作。

6語(yǔ)言轉(zhuǎn)譯程式編譯器(Compiler)

欲利用編譯器來(lái)完成高階語(yǔ)言之翻譯然後執(zhí)行時(shí),一般需要逐次完成下列三個(gè)步驟後,才能完成使用者程式之執(zhí)行工作。 1.產(chǎn)生目的程式 利用編譯程式將原始程式全部翻譯成機(jī)器語(yǔ)言程式,亦即翻譯成目的程式。 2.產(chǎn)生可執(zhí)行之機(jī)器語(yǔ)言程式 利用廠商所提供的連結(jié)程式(Linker)執(zhí)行連結(jié)的工作。此時(shí)才產(chǎn)生一個(gè)可執(zhí)行的機(jī)器語(yǔ)言程式。該可執(zhí)行的機(jī)器語(yǔ)言程式,在IBMPC下稱之為可執(zhí)行程式(ExecutableProgram),其延伸檔名(Extension)一般為EXE或COM。 3.執(zhí)行程式 執(zhí)行使用者程式,亦即執(zhí)行機(jī)器語(yǔ)言程式。7程式語(yǔ)言的應(yīng)用科學(xué)計(jì)算FORTRAN(MathematicalFORmulaTRANslatingSystem)商業(yè)應(yīng)用COBOL(CommonBusinessLanguage)人工智慧LISP,Prolog系統(tǒng)程式語(yǔ)言C,C++8資料型態(tài)整數(shù)型態(tài)int:2bytes,-32768(-216)~+32767(+216-1)long:4bytes,-2147483648(-232)~+2147483647(+232-1)浮點(diǎn)數(shù)型態(tài)IEEE-754單精準(zhǔn)度:Sign(1bit)+Exponent(8bits)+Mantissa(23bits)字符型態(tài)char:1byte,ASCII陣列型態(tài)一群具有相同資料型態(tài)的變數(shù)所組成,如intA[100]資料型態(tài)可為:整數(shù),浮點(diǎn)數(shù),字符…等。A[0]A[1]A[2]………………A[99]9資料型態(tài)紀(jì)錄型態(tài)又稱為結(jié)構(gòu)型態(tài),存放的是不同類型的資料型態(tài),由一群欄位(Field)所結(jié)合而成。指標(biāo)型態(tài)指標(biāo)型態(tài)所存放的值是位址。完成資料結(jié)構(gòu)的好幫手。structscoretable{intid;charname;intscore[5];}student[100]inta;int*p;

a=10;P=&a;10變數(shù)的範(fàn)疇(scope)靜態(tài)範(fàn)疇依程式本身,變數(shù)的實(shí)際位置來(lái)決定。動(dòng)態(tài)範(fàn)疇依程式執(zhí)行時(shí),副程式的呼叫順序來(lái)決定。副程式sub1並未定義x的值為10。如果採(cǎi)用“靜態(tài)範(fàn)疇”規(guī)則,印出的x=?為什麼?如果採(cǎi)用“動(dòng)態(tài)範(fàn)疇”規(guī)則,印出的x=?為什麼?PROGRAMmainINTEGERx;PROCEDUREsub1BEGINPRINTx;ENDPROCEDUREsub2INTEGERx;BEGINx=20;CALLsub1;ENDBEGINx=10;CALLsub2;END11副程式參數(shù)傳遞法形式參數(shù)副程式本身所定義的參數(shù)名稱及型態(tài)實(shí)際參數(shù)呼叫者(主程式)呼叫副程式時(shí),所附上一些該有的參數(shù)。voidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}形式參數(shù)實(shí)際參數(shù)12副程式參數(shù)傳遞法CallbyValue(傳值)僅將主程式實(shí)際參數(shù)的值,copy給副程式的形式參數(shù),主程式實(shí)際參數(shù)的值不會(huì)改變,沒(méi)有sideeffect(副作用)。C語(yǔ)言只有callbyvalue5x10y5a10bvoidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}5t/10/513副程式參數(shù)傳遞法CallbyAddress(傳址)又稱“CallbyReference”將只程式實(shí)際參數(shù)的位址,傳給副程式的形式參數(shù),主程式實(shí)際參數(shù)的值可能改變,有sideeffect(副作用)。C++採(cǎi)用CallbyAddress5x100010y15001000a1500b/10/5位址voidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}1000t1500//100014副程式參數(shù)傳遞法CallbyName(傳名)以實(shí)際參數(shù)的名稱取代形式參數(shù)(早期的做法),有sideeffect(副作用)。voidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}5x10y5a10b5t/10/5/x/y/10/515副程式參數(shù)傳遞法CallbyValue/Result取代CallbyAddress,因?yàn)樵诜稚⑹江h(huán)境裡,主副程式的address配置不同,所以不能用CallbyAddress,有sideeffect(副作用)。voidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}5x10y5a10b5t/10/510/5/16副程式參數(shù)傳遞法Homework_8請(qǐng)分別以下列參數(shù)傳遞法callbyvaluecallbyaddresscallbynamecallbyvalue/result寫出右列程式之最後輸出結(jié)果。programmain(input,output);procedurep(x,y,z);beginy:=y+1;z:=z+x;end;begina:=2;b:=3;p(a+b,a,a);print"a=",a;end17副程式參數(shù)傳遞法請(qǐng)分別以下列參數(shù)傳遞法callbyvalue

溫馨提示

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