Presentation is loading. Please wait.

Presentation is loading. Please wait.

第12章 程式語言.

Similar presentations


Presentation on theme: "第12章 程式語言."— Presentation transcript:

1 第12章 程式語言

2 章節大綱 12-1 程式語言的演進 12-2 程式語言的分類 12-3 程式語言的設計 12-4 程式設計的過程 12-5 程式執行的過程

3 12-1 程式語言的演進 指令 (instruction) 指揮電腦完成一項基本任務的命令。 程式 (program)
一組有順序的指令集合。 程式語言 (program language) 用來撰寫程式的語言。 回章節大綱

4 12-1-1 第一代語言-機器語言 機器語言 (machine language)
12-1-1 第一代語言-機器語言 機器語言 (machine language) 每個指令都是由0與1組合而成,包含了運算碼 (op-code) 與運算元 (operand) 兩個部分。 屬於機器相關語言,不具可攜性。 回章節大綱

5 12-1-2 第二代語言-組合語言 組合語言 (assembly language) 所撰寫的程式須經過組譯程式 (assembler) 轉換成目的碼或機器語言,才能執行。例如:ADD R3, R1, R2 (範例) 屬於機器相關語言,不具可攜性 機器語言和組合語言統稱為低階語言 回章節大綱

6 12-1-3 第三代語言-高階語言 語法近似於英文 屬於機器無關語言,撰寫的程式須經過直譯程式 (interpreter) 或編譯程式 (compiler) 轉換成目的碼或機器語言,才能執行 具可攜性,較易閱讀與學習,函數庫可擴充,但需經編譯程式或直譯程式轉換成目的碼或機器語言,執行速度較慢,佔記憶體較大 回章節大綱

7 12-1-4 第四代語言-超高階語言 超高階語言 (very high level language)
12-1-4 第四代語言-超高階語言 超高階語言 (very high level language) 使用者只要在套裝軟體選取工具、介面、資料庫或控制項,就能快速完成程式 回章節大綱

8 12-1-5 第五代語言-自然語言 自然語言允許使用者以多種方式來敘述同一件事情,主要應用在人工智慧方面。 回章節大綱

9 12-2 程式語言的分類 根據發展時間,將程式語言略分為一到五代 根據程式設計方式 (programming paradigm): 命令式
函數式 邏輯式 物件導向式 回章節大綱

10 12-2-1 命令式 命令式 (imperative paradigm) ,由命令與敘述所組成,又稱程序式 (proceduralparadigm) 典型命令式程式語言有FORTRAN、ALGOL、BASIC、C、COBOL、Ada、Pasca… 回章節大綱

11 12-2-1 命令式 FORTRAN IBM公司於1954年所發展出來的高階程式語言,一開始應用於IBM 740電腦的科學計算,現在則廣泛應用於經濟分析、工程數學及科學研究 ALGOL 在1960年代所發展出來的程式語言,主要用途是描述演算法 回章節大綱

12 12-2-1 命令式 BASIC 將FORTRAN加以簡化所創立的程式語言,接近人類自然語言及數學運算式,學習容易 C
12-2-1 命令式 BASIC 將FORTRAN加以簡化所創立的程式語言,接近人類自然語言及數學運算式,學習容易 C AT&T貝爾實驗室Dennis Ritchie於1972年所發展出來的程式語言,以C語言撰寫的程式具可攜性,執行速度快 回章節大綱

13 12-2-1 命令式 COBOL 美國國防部成立協會於1959年發展的程式語言,主要用途是從事大量檔案處理、資料輸入/輸出與商業計算
12-2-1 命令式 COBOL 美國國防部成立協會於1959年發展的程式語言,主要用途是從事大量檔案處理、資料輸入/輸出與商業計算 Ada具有高度的可攜性與可讀性,適合用來撰寫即時系統或同步運算程式 Pascal 承襲ALGOL理念所發展出來的程式語言,應用於校園教學 回章節大綱

14 12-2-2 函數式 函數式型態程式語言 LISP ML Miranda Gofer Scheme CLOS 函數式 (functional paradigm) 程式語言的代表首推LISP 由美國麻省理工學院 (MIT) 於1958年為人工智慧方面應用所發展,MacLISP強調效能與品質,InterLISP提供結構化的編輯器環境,Common LISP是使用最廣泛的版本 回章節大綱

15 12-2-3 邏輯式 邏輯式型態 (logic paradigm) 程式語言代表首推PROLOG,具邏輯推理性,主要用途是搜尋資料庫、定義演算法、撰寫編譯器、開發專家系統等 回章節大綱

16 12-2-4 物件導向式 物件導向式 (object-oriented paradigm) 程式語言的代表首推Simula,由KristenNygaard與Ole-Johan Dahl於1961 ~ 1967年所發展,其它還有SmallTalk、C++、Java、C#…。 物件導向程式設計 (OOP,object oriented programming) 是軟體發展過程極具影響性突破,物件可在不同的應用程式中被重複使用 回章節大綱

17 12-2-4 物件導向式 C++ AT&T貝爾實驗室承襲C語言理念發展的物件導向程式語言 Java
12-2-4 物件導向式 C++ AT&T貝爾實驗室承襲C語言理念發展的物件導向程式語言 Java Sun公司承襲C++理念發展的物件導向程式語言 C# 從C/C++ 發展出的簡單、現代化、具物件導向、型別安全的程式語言,語法類似C/C++ 回章節大綱

18 12-3 程式語言的設計 資料型別 (data type) 決定了資料將佔用的記憶體空間、能夠表示的範圍及程式處理資料的方式
Java規定變數在使用之前必須宣告資料型別 回章節大綱

19 12-3 程式語言的設計 常數 (constant) 列舉 (enumeration) 結構 (structure)
final float PI = ; 列舉 (enumeration) enum weekdays {sun, mon, tue, wed, thu, fri, sat}; 結構 (structure) struct card{ int pips; char suit; }; 回章節大綱

20 12-3 程式語言的設計 陣列 (array) 陣列可存放多個資料 多數程式語言預設以索引0代表第一個元素,索引n - 1代表第n個元素
回章節大綱

21 12-3 程式語言的設計 流程控制 (flow control) 決定了程式的執行方向 第一種判斷結構 if (expression)
statementA 第二種判斷結構 else statementB 回章節大綱

22 12-3 程式語言的設計 第三種判斷結構 switch (expression){ case value1: statement1
default: statementN } 回章節大綱

23 12-3 程式語言的設計 第一種迴圈結構 while(expression) statementA 第二種迴圈結構 do
回章節大綱

24 12-3 程式語言的設計 第三種迴圈結構 for(expression1, expression2, expression3)
statementA 回章節大綱

25 12-3 程式語言的設計 程序可將一段具有某種功能的敘述區塊寫成一個獨立的程式單元,給予特定名稱
程序使程式的執行速度減慢,因為多了呼叫,執行速度比直接將敘述寫進程式裡慢 參數的傳遞方式 傳值呼叫 (call by value) 傳址呼叫 (call by reference) 回章節大綱

26 12-4 程式設計的過程 定義與分析問題 設計演算法 流程圖 虛擬碼 撰寫程式 偵錯與測試 常見的程式錯誤 測試資料 維護與更新 回章節大綱

27 12-5 程式執行的過程 程式執行的過程: 文字編輯器或程式開發工具 巨集處理程式 組譯程式或編譯程式 偵錯程式
連結程式 (linker) /載入程式 (loader) 回章節大綱

28 12-4 程式設計的過程 虛擬碼 近似英文語法更為精確的方式來描述問題解法,舉例來說,假設要計算書籍的出貨金額,已知的資料有書籍的定價與數目,透過如下虛擬碼描述解決問題的方法: total = price per book * numbers of books 回章節大綱 回12-4 程式設計的過程

29 12-4 程式設計的過程 常見的程式錯誤有下列兩種: 終止執行錯誤 (Fatal Error) 這類的錯誤會導致程式終止執行
運作錯誤 (Nonfatal Error) 這類的錯誤會產生錯誤的執行結果 回章節大綱 回12-4 程式設計的過程

30 12-4 程式設計的過程 我們可藉由輸入下列資料檢查程式能否正確運作, 找出錯誤並加以更正: 合法的資料 不合法的資料 接近合法邊界的資料
回章節大綱 回12-4 程式設計的過程

31 課後習題 1. 機器語言與高階語言之異同。 2. 組譯語言、編譯語言與解譯語言之意用途與差異。 3. 何謂資料型別,分為那兩種? 4. 除基本型別外,一般程式語言又支援那些型別? 5. 程式流程分成那三種基本形式? 6. Algorithm, Pseudo-code, Program, Sub-procedure (Sub-program), Statement, Expression之意義。 7. Call by value與Call by reference之意義與差別。

32 資料結構課後習題 1. 基本資料型態有那幾種基本形式。 2. 常見的抽象資料型太有那些類型。 3. Array 與 Linked List之異同, 各有何優缺點。 4. 圖示Linked List Node之插入與刪除。 5. 排序之意義與用途。 6. Stack 與 Queue 之意差異, 使用時機為何? 7. 如何建立Binary Search Tree, 使用時機為何?


Download ppt "第12章 程式語言."

Similar presentations


Ads by Google