Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.

Similar presentations


Presentation on theme: "1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif."— Presentation transcript:

1 1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif

2 if then if then E1 else E2 endif

3 (1) 寫出兩種布耳表式 (boolean expression) 之 AND 與 OR 兩運算子 (operator) 運算方式 並比較兩方法之主要優缺點。 (2) 比較 ADA , C , Pascal 等三種程式語言 對布耳表式運算方式所提供的機制。

4 (1) 二種作法: a. 捷徑計算 (short circuit evaluation) 的意義: 對運算式作求值動作時,無需做完整個運算式即可得出最後的結果,如此的計算方式 便稱為捷徑計算。 範例: (a)A and B 當 A 為 false 時, A and B 之結果即為 false 。 (b)A or B 當 A 為 true 時, A or B 之結果即為 true 。 b. 完全計算 (complete circuit evaluation) 的意義: 對運算式作求值動作時,必需做完整個運算式,可得出最後的結果,如此的計算方式 便稱為完全計算。 範例: (a)A and B 當 A 為 false 時,仍然必須處理 B 之值,但結果依然為 false 。 (b)A or B 當 A 為 true 時,仍然必須處理 B 之值,但結果依然為 true 。 c. 捷徑計算與完全計算之比較: 捷徑計算效率較佳,但可能較容易使程式設計師犯下難以除錯之邏輯錯誤;而完全計 算則是效率較差,但較不容易使程式設計師犯下難以除錯之邏輯錯誤。

5 (2) a.ADA 利用不同的運算子代表不同之 計算,如 and 與 or 代表完全計算而 and then 與 or else 則代表捷徑計算。 b.C 採用捷徑計算。 c.Pascal 採用完全計算。

6 試問在 C 語言中,最佳化編譯程式 (optimization compiler) 是否可以將二元布 林運算子 (boolean operator) 前後的兩項子 陳式 (sub-expression) 互相對調?其理由為 何?

7 因為 C 語言採用捷徑計算,所以最佳化編譯 程式不可以將二元布林運算子前後的兩項 子陳式互相對調,否則可能會使得執行結 果不唯一。

8 試說明何以動態儲存區配置允許程式中使 用遞迴呼叫 (recursive call) ,而靜態儲存區 配置則不允許?

9 因為若使用靜態儲存區配置則在編譯時就 已將記憶體配置好,但是遞迴呼叫則是在 執行時才知道會呼叫幾次,因為呼叫次數 未定故無法事先配置記憶體空間,所以靜 態儲存區配置不允許程式中使用遞迴呼叫, 而動態儲存區配置則是執行時才分配記憶 體空間,所以允許使用遞迴呼叫。

10 試指出下列各種語言中何者使用靜態儲存 區配置?何者使用動態儲存區配置? SNOBOL , APL , LISP , Pascal 的區域變 數及全域變數, FORTRAN , COBOL 。

11 (1) 靜態儲存區配置: FORTRAN 、 Pascal COBOL 的全域變數。 (2) 動態儲存區配置: SNOBOL 、 APL 、 LISP 及 Pascal 的區域變數。

12 (1) 試定義何謂靜態資料型態繫結 (static type binding) ,及動態資料型態繫結 (dynamic type binding) 。 (2) 試說明下列的語言,各主要採取何種型 態繫結方式: Fortran , Pascal , Lisp , APL , Smalltalk 。

13 (1) 靜態資料型態繫結:在編譯時,指定變 數的型態。例: Fortran , Pascal 。 (2) 動態資料型態繫結:在執行時,指定變 數的型態。例: Lisp , APL 及 Smalltalk 。


Download ppt "1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif."

Similar presentations


Ads by Google