程式语言简介_第1页
程式语言简介_第2页
程式语言简介_第3页
程式语言简介_第4页
程式语言简介_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程式語言簡介1程式語言的演進一、機器語言(machinelanguage)由一堆的「0」或「1」所組成。對於不同型態的電腦,因為其結構不同就有不同的機器語言。不容易撰寫外,對於程式的維護也相對的困難。二、組合語言(assemblylanguage)使用輔助記憶碼以方便記憶。不同型態的電腦,其組合語言也是不相同的。須經由assembler(組譯程式)組譯成機器碼後,才可執行。2程式語言的演進三、高階語言(high-levellanguage)

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

第四代程式語言

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

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

5語言轉譯程式直譯器(Interpreter)直譯法的優點是:

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

6語言轉譯程式編譯器(Compiler)

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

a=10;P=&a;10變數的範疇(scope)靜態範疇依程式本身,變數的實際位置來決定。動態範疇依程式執行時,副程式的呼叫順序來決定。副程式sub1並未定義x的值為10。如果採用“靜態範疇”規則,印出的x=?為什麼?如果採用“動態範疇”規則,印出的x=?為什麼?PROGRAMmainINTEGERx;PROCEDUREsub1BEGINPRINTx;ENDPROCEDUREsub2INTEGERx;BEGINx=20;CALLsub1;ENDBEGINx=10;CALLsub2;END11副程式參數傳遞法形式參數副程式本身所定義的參數名稱及型態實際參數呼叫者(主程式)呼叫副程式時,所附上一些該有的參數。voidsa,intb){intt;t=a;a=b;b=t;}main(){intx=5,y=10;swap(x,y);Printf(“%d,%d”.x,y);}形式參數實際參數12副程式參數傳遞法CallbyValue(傳值)僅將主程式實際參數的值,copy給副程式的形式參數,主程式實際參數的值不會改變,沒有sideeffect(副作用)。C語言只有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副程式參數傳遞法CallbyAddress(傳址)又稱“CallbyReference”將只程式實際參數的位址,傳給副程式的形式參數,主程式實際參數的值可能改變,有sideeffect(副作用)。C++採用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副程式參數傳遞法CallbyName(傳名)以實際參數的名稱取代形式參數(早期的做法),有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副程式參數傳遞法CallbyValue/Result取代CallbyAddress,因為在分散式環境裡,主副程式的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副程式參數傳遞法Homework_8請分別以下列參數傳遞法callbyvaluecallbyaddresscallbynamecallbyvalue/result寫出右列程式之最後輸出結果。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副程式參數傳遞法請分別以下列參數傳遞法callbyvalue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论