程式语言的设计目标课件_第1页
程式语言的设计目标课件_第2页
程式语言的设计目标课件_第3页
程式语言的设计目标课件_第4页
程式语言的设计目标课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章 程式語言的演進陳維魁 博士wkchen.tw儒林圖書公司第1页,共48页。1大綱程式語言的意義程式語言的設計目標程式語言的分類 各種語言的特性 高階語言的處理器 命令式語言與應用式語言 習題 第2页,共48页。2程式語言的意義由一組系統化的符號所成之集合,目的是表達某種機器解決特定問題的步驟向計算機描述計算過程之工具第3页,共48页。3程式語言的設計目標簡潔(simplicity)第4页,共48页。4程式語言的分類第一代程式語言機器語言第二代程式語言組合語言第三代程式語言高階語言第四代程式語言極高階語言第五代程式語言自然語言第5页,共48页。5第一代程式語言機器語言(machine l

2、anguage)指令與資料均由二進碼所組成不需經由語言處理器直接在機器執行第6页,共48页。6第二代程式語言組合語言(assembly language)組合語言的指令稱為助憶碼指令種類機器指令(machine operation)虛擬指令(pseudo operation)必需經由組譯程式(assembler)處理與機器語言合稱為低階語言第7页,共48页。7第三代程式語言高階語言(high level language)程序導向語言(procedure oriented language)範例PascalCBasicFortranCobol第8页,共48页。8第四代程式語言極高階語言問題導向

3、語言(problem oriented language)範例SQL (Structured Query Language)第9页,共48页。9第五代程式語言自然語言 (nature language)知識庫語言(knowledge based language)語法接近人類日常生活的語言第10页,共48页。10各種語言的特性FortranAlgol 60LispCobolAPLBasicSnobolPL/1SimulaAlgol 68CPrologPascalADAC+JAVA第11页,共48页。11FORTRANFORmula TRANslator language 第一個高階語言針對科學

4、計算而設計固定格式首創輸出入格式化(I/O format)提供正、零、負三種 IF 分枝結構提供 Do 迴圈控制結構第12页,共48页。12執行下列Fortran之部份程式並求出 K 值 K=-1 DO 400 I=1,5 IF(K) 100,200,300 100 K=K+5 GOTO 400 200 K=2*K+1 GOTO 400 300 K=4*K-2 400 CONTINUE第13页,共48页。13Fortran共用區(common area)作用處理方式第14页,共48页。14Algol 60ALGOrithmic Language發展於1960年代無較大之贊助者採自由格式(fre

5、e format)採區塊結構(block structure)允許使用遞迴副程式(recursive subroutine)使用傳名呼叫法(call by name)傳遞參數第15页,共48页。15Algol 60動態界限陣列採外顯式(explicit)宣告首創以保留字(reserved word)來定義資料型態首創結構化程式設計的概念首創以B.N.F來描述語法 (Algol 58提出)第16页,共48页。16結構化程式設計structured programming把一個大的問題,依照邏輯上的特性,往下細分成幾個小的問題,再把這幾個小的問題,依照邏輯的特性,再往下細分成更小的問題,依此類推,

6、直到很容易編寫程式的單元時為止第17页,共48页。17結構化程式設計基本結構循序結構選擇結構反覆結構第18页,共48页。18結構化程式設計優點可以分工可讀性高容易維護易除錯缺點程式碼會變長執行時間較長第19页,共48页。19PASCAL紀念法國數學家Blaise Pascal1975 年發展完成,由 IBM 贊助採區塊結構具嚴謹語法結構,適合教學用途第20页,共48页。20LISPLISt Processing language1950年代末期由麻省理工學院發展 S運算式(S expression) 利用垃圾收集法(garbage collection) 來管理記憶體使用於人工智慧(Artif

7、icial Intelligence) 之應用,稱為人工智慧的低階語言劍橋波蘭式(Cambridge polish notation)第21页,共48页。21Garbage collection系統會主動的回收, 程式不再使用的記憶體空間 範例 Small talk JAVA LISP第22页,共48页。22SNOBOLStriNg Oriented symBOlic Language貝爾實驗室於1960年代中期發展具字樣配對(pattern matching) 能力具字串處理能力(string manipulating)型樣資料型態(pattern data type)第23页,共48页。2

8、3PL/1Programming Language /1IBM 於1960年代中期設計綜合 Fortran,Cobol 與 Algol 60 之特性首創例外處理 (exception handling)指標(pointer)資料型態以維也納定義語言(Vienna Definition Language)來描述語意採區塊結構提供遞迴呼叫 (recursive call) 的功能多重任務 (multi-tasking第24页,共48页。24CobolCOmmon Business Oriental Language發展於 19601970 年代,由美國防部贊助主要用於商業資料處理具 IF-THEN

9、-ELSE 敘述語法傾向自然語言(natural language)雜訊字(noise word)首創與機器無關的資料描述方式 (data division)第25页,共48页。25COBOL資料描述方式IDENTIFICATION DIVISIONENVIRONMENT DIVISIONDATA DIVISIONPROCEDURE DIVISION第26页,共48页。26Algol W使用數值結果呼叫法 (call by value result) 傳遞參數首創case敘述提供記錄(record)與指標(pointer) 結構第27页,共48页。27Algol 68參數的傳遞採用數值結果呼叫

10、法提供記錄與指標資料型態首先提供使用者自行定義資料型態的功能第28页,共48页。28APLA Programming Language擅長數學計算。採不標準字元集。允許陣列整體運算。提供指標(pointer) 型態。 提供集合(set) 資料型態。首創提供記錄(record) 資料型態。 提供 case 結構。允許使用者自定資料型態。採傳值呼叫法與傳址呼叫法傳遞參數第29页,共48页。29SIMULA發展於1960年代後期首創資料抽象化(data abstraction)類別(class)第30页,共48页。30C貝爾實驗室於1970年代發展採區塊結構可攜性高適合發展系統程式具 Self-co

11、mpiled 特性可呼叫組合語言第31页,共48页。31C+Bjarne Stroustrup 設計,在貝爾實驗室中發展主要目標實現物件導向程式設計理想採用區塊結構適合發展系統程式高可攜性高機器獨立性(machine independent)區分大小寫識別字由大小寫英文字母,數字或底線所構成,但第一個字元不得為數字第32页,共48页。32BASICBeginners All-purpose Symbolic Instruction Code1960年代中期發展交談式(interactive)語言適合程式發展初期使用利用解譯器(interpreter)處理程式第33页,共48页。33Prolog

12、PROgramming LOGicAlan Colmeraure 於1970年代初期發展適用於人工智慧之應用邏輯式程式語言人工智慧的高階語言1982年日本宣佈以 Prolog 為第五代電腦之發展語言第34页,共48页。34ADA紀念 Augusta ADA Byron美國防部發展主要運用於國防需求提供資料抽象化例外處理平行處理第35页,共48页。35RPGReport Program Generator由 IBM 發展主要用作大量報表之產生第36页,共48页。36GPSSGeneral Purpose Simulation System主要用於模擬 (Simulation)第37页,共48页。

13、37PILOTProgrammed Inquiry Learning Or Teaching主要應用於電腦輔教學 (Computer Aided Instruction)可幫助教師編寫教材第38页,共48页。38FORTH設計的目標是為了提供對電腦的記憶體及速度作最佳之運用第39页,共48页。39MODULA-2由Wirth 發展出來,適用於系統軟體之開發第40页,共48页。40JAVASun Microsystems所發展名稱之命名是源於突發的靈感物件導向程式語言,以 class 為基本架構垃圾收集法(garbage collection)Multithread例外(exception)處理

14、能力取消指標(pointer)資料型態多重繼承(multiple inheritance)運算子覆載(operator overloading)第41页,共48页。41JAVAByte Code可在不同的機器平台上移植,待要執行時,再由JAVA的直譯器(interpreter)處理此Byte Code即可允許程式段能夠透過網路系統到另一個機器平台上執行JAVA語言比 C語言具有更高的可攜性目前在Windows NT, Windows 95, Macintosh, SUN, Linux等開發平台上已有的直譯程式可供使用。第42页,共48页。42高階語言的處理器作用將利用高階語言寫成的程式段翻譯成機器可接受的碼。種類編譯器(compiler)對原始程式碼中的每一條敘述,按照先後順序做一次之處理,並產生對應的目的碼直譯器(interpreter)對原始程式碼中的敘述,按照執行的先後順序做處理,並直接產生程式執行結果第43页,共48页。43編譯器及直譯器的比較輸入輸出時間空間除錯特性彈性適合階段範例第44页,共48页。44命令式語言藉著改變變數之內容以做為控制程式執行的方法範例FortranCobolBasicAlgolPascalPL/1 CC+.第45页,共48页。45應用式語言語言藉著函數來表達

温馨提示

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

评论

0/150

提交评论