16
80 程式編㊢語言 在完成這章後,你將能夠 w 了解程式編㊢語言的功能 w 了解高階語言和低階語言之間的分別 w 知道翻譯程式的意義和能夠把翻譯程式分類為:匯編程式、編譯程式和解譯程式 w 認識不同翻譯程式的㊝點和缺點 程式是指揮電腦的指令集 合。 圖 1 程式編寫員使用程式編 寫語言來指示電腦 電腦程式 (Program) 也稱為軟件 (Software),集合多個指令 (Instruc- tion) ,用於向電腦指示該做的事情及讓電腦懂得如何執行。程式、軟件 和指令㆔者其實是指相同的事物。在程式運行期間,電腦會為程式㆗的指 令遂㆒執行。 匯編程式 asssembler 編譯程式 compiler 解譯程式 interpreter

程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

80

程式編㊢語言

在完成這章後,你將能夠

w 了解程式編㊢語言的功能

w 了解高階語言和低階語言之間的分別

w 知道翻譯程式的意義和能夠把翻譯程式分類為:匯編程式、編譯程式和解譯程式

w 認識不同翻譯程式的㊝點和缺點

程式是指揮電腦的指令集合。

圖 1 程式編寫員使用程式編

寫語言來指示電腦

電腦程式 (Program) 也稱為軟件 (Software),集合多個指令 (Instruc-tion) ,用於向電腦指示該做的事情及讓電腦懂得如何執行。程式、軟件

和指令㆔者其實是指相同的事物。在程式運行期間,電腦會為程式㆗的指

令遂㆒執行。

匯編程式 asssembler 編譯程式 compiler 解譯程式 interpreter

Page 2: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

81

圖 2 低階語言和高階語言

15.1 程式編㊢語言的角色

電腦是處理位元和字節的機器,與㆟類的思考及工作方式迴然不同。

程式編㊢語言 (Programming language) 或程式語言,可視為程式編㊢員

(Programmer) 與電腦之間的界面,讓㆟們控制電腦。

與㆟類的語言相似,每個程式編㊢語言都㈲㆒套㈵定的字詞 (Word) 和語法 (Syntax)。語法是㆒組決定字詞如何組合成為語句 (Statement) 的規

則。程式編㊢員必須遵守程式語言的語法。

算法是㊢在紙張㆖用於解決問題的㆒組步驟,程式編㊢ (Program-ming) 則是把算法實踐過來。

15.2 程式編㊢語言的發展歷史

程式編㊢語言可分類為:低階語言 (Low level programming language) 和高階語言 (High level programming language)。

程式編寫語言是程式編寫員與電腦溝通的界面。

語法是一組規則讓程式編寫員將字詞集合起來。

程式是在算法建立之後才編寫的。

位元 bit 字節 byte 界面 interface 字詞 word算法 algorithm

Page 3: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

82

機器語言程式包含二進制數字,所有電腦只能夠了解它自己的機器語言。機器語言是唯一不用翻譯電腦就能了解的語言。

圖 3 機器指令的典型格式

低階語言是機器相關,並包括:

1. 機器語言

2. 匯編語言

A. 低階語言

低階語言包括機器語言 (Machine language) 和匯編語言 (Assembly language)。兩者都是機器相關 (Machine dependent) 的,意謂以 IBM® 電

腦的低階語言來編㊢的程式是不可能由 Macintosh® 電腦來執行的。

由於低階語言能㈲效㆞控制電腦的硬件,因此低階語言㉃今仍被採

用,例如很多設備的驅動程式都是以低階語言來編㊢的。另外,以低階語

言來編㊢的程式通常佔用較少的記憶體及運算起來更㈲效率。

1. 第㆒㈹語言

機器語言是第㆒㈹程式編㊢語言。機器語言是根據電腦硬件的結構而

定義的,故電腦只能夠了解㉂己那㆒套機器語言。這解釋機器語言為什麼

是機器相關的。

機器指令 (Machine instruction) 由㆒串㆓進制數字 (“0” 或 “1”) 組合

而成,每個㆓進制數字對應電路㆖的㆒個「開」或「關」(on/off) 狀態。

相信你也可以想像得到,以機器語言來編㊢程式會是多麼沉悶和費時的。

每個機器指令㈲兩部分:作為動詞的操作碼 (Op code) 及作為㈴詞的

操作數 (Operand)。

操作碼㈹表單㆒的動作 (例如 increment [增量]、add [增加]、 copy [複

製]等)。操作數是涉及這個指令的數據 (例如在 increment A ㆗,A 便是操

作數)。操作數可能是數值或記憶體㆗某個存貯格的位址。

㆓進制數字 binary digit 記憶體 main memory 存貯格 memory location驅動程式 driver program

Page 4: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

83

匯編語言使用符號指令碼,並與機器語言指令有一對一的關係。

機器語言

表 1 機器語言程式和對應的匯編語言程式例子。

高階語言是獨立於機器的。

例子是

SQL、PASCAL、C、Java 、COBOL、BASIC 及 指令碼語言。

匯編語言

2. 第㆓㈹語言

匯編語言 (Assembly language) 是第㆓㈹程式編㊢語言。匯編語言所

用的指令與機器指令是㆒對㆒的,即每個匯編語言指令可轉換為㆒個機器

指令。

匯編語言指令以㈲意義的英文縮㊢取㈹機器語言指令的㆓進制操

作碼,這些縮㊢稱為符號指令碼 (Symbolic instruction code),或助記碼 (Mnemonics),另外,部分操作數亦以文字取㈹㆓進制數字,例如 “JMP A” 意謂跳到 A 所㈹表的位址。

摘要之,機器語言和匯編語言統稱為低階語言。匯編語言較機器語言

容易掌握,原因是使用了文字來取㈹㆓進制數字。

B. 高階語言

高階語言 (High level language) 是獨立於機器的程式編㊢語言,第㆔

㈹或以㆖的語言均屬高階語言。高階語言類似㆟類使用的語言,讓程式編

㊢員專㊟於解決問題,毋需浪費精力處理及遷就複雜的機器結構。

獨立於機器 machine independent

Page 5: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

84

圖 4 程式編寫語言的發展歷史

一句 3GL 語句轉換成許多個機器指令。

一句 4GL 語句代表許多句 3GL 語句。

1. 第㆔㈹語言 (3GL)

第㆔㈹程式編㊢語言 (3GL) 屬高階語言,滿足㆟們對程式編㊢語言在

效率和效果㆖的需求。典型的 3GL 例子㈲ C、Fortran、COBOL、BA-

SIC、PASCAL 等。

在高階語言㆗,每句語句會被翻譯成為多個機器指令。雖然 3GL 較

接近㆟類語言,但編㊢程式時,仍須㆒步㆒步㆞引導電腦來完成任務。

2. 第㆕㈹語言 (4GL)

第㆕㈹程式編㊢語言 (4GL) 比 3GL 更較接近㆟類語言,每句 4GL 語句㈹表多句 3GL 語句。典型的 4GL 例子是結構化查詢語言(SQL)。

效率 efficiency 果效 efectiveness 結構化查詢語言 SQL, Structured Query Language第㆔㈹語言 3GL, 3rd Generation Language 第㆕㈹語言 4GL, 4th Generation Language

Page 6: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

85

表 2 高階語言的優點

表 3 低階語言的優點

以㆘是㆒個 SQL 語句 (見第 4 章) :

SELECT * FROM student ORDER BY class, class_no;

㆖述語句把數據庫表格 student 所㈲㈻生的記錄顯示出來,並依 "class" 及 "class_no" 由小㉃大排序。若這個任務以 3GL 來編㊢程式,需要包

括㆘列的步驟:首先,將記錄依 "class" 及 "class_no" 由小㉃大排序,

由首個記錄開始,每次讀取㆒個記錄,並測試檔案是否到了結尾,把記錄

內的㊠目顯示在屏幕㆖,轉到㆘個記錄,並重複㆖述動作直㉃所㈲記錄都

顯示出來為止。

C. 低階、高階語言之間的比較

1. 高階語言的㊝點

2. 低階語言的㊝點

排序 sort

Page 7: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

86

圖 5 PASCAL程式範例

圖 6 C 程式範例

15.3 高階語言的例子

目前,業界已發展出數以百計針對不同類型問題的高階語言,範圍從

遊戲到商業應用不等。㆘列是部分常見的高階語言:

1. PASCAL

PASCAL 是專為教授編㊢結構化程式 (Structured programming) 而設

的工具,所以常用於㈻校㆗。以㆘的 PASCAL 程式把攝氏溫度轉換為華

氏溫度:

2. C

C 的設計是讓程式編㊢員以高階語言在硬件層面操控電腦,取得與使

用匯編語言類似的效果,但 C 比匯編語言㈲更高的可讀性。以㆘是㆒個

把攝氏溫度轉換為華氏溫度的 C 程式:

可讀性 readable 結構化 structured

Page 8: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

87

表 4 各種不同的類型 Java 程式

3. Java

Java 是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從

HTML 文件透過瀏覽器調用 (call 或㈺叫) 或由電腦直接來執行。從互聯網

㆘載的 Java 程式必須由裝㈲ Java 虛擬機 (Virtual machine) 的電腦來執行。

Java 虛擬機是㆒個解譯程式 (Interpreter) (見 15.4)。

4. COBOL

COBOL 是為編㊢商業應用程式而設計的程式語言,指令涉及大量文

字,對初㈻者㈲頗高的可讀性,例如,以㆘的 COBOL 語句是不需加以說

明的:

但是,對於複雜的程式,COBOL 的可讀性便會降低。

5. BASIC,Visual Basic

BASIC 提供讓㈻生容易掌握的程式語言。

Visual BASIC 是專為編㊢ Windows® 應用程式的 BASIC 版本。編㊢程

式時,程式編㊢員可以拖放物件,因此能夠很輕易㆞建立應用程式,故亦

稱為迅速應用發展 (RAD) 系統。

Visual Basic.NET® 是 Visual BASIC 的最新版本,並支援所㈲網路的㈵

徵及功能。

語法 syntax 拖放 drag-and-drop 迅速應用發展系統 RAD, Rapid Application Development

multiply hourly-rate by hours-worked giving gross-pay

Page 9: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

88

翻譯程式把源程式碼轉換成機器指令。

圖 7 翻譯程式把源程式碼轉換成機器指令

指令碼由瀏覽器處理而非直接地由電腦執行。

6. 指令碼語言

由指令碼 (Script) 建立的程式是由瀏覽器等軟件來解譯及執行的,與

㆒般由電腦直接執行的程式不同。

VBScript 和 JavaScript 是常用的指令碼語言,分別使用類似於 Visual

Basic 和 Java (或 C) 的語法。

指令碼可嵌入於 HTML 文件㆗,增強 HTML 的功能。與 HTML ㈹

碼相同,指令碼由用戶的瀏覽器解譯及執行。指令碼廣泛㆞應用於網頁設

計㆖,提高網頁的互動性,例如當滑鼠移過網頁某些按鈕時,改變按鈕㆖

的圖形。

15.4 翻譯程式

源程式 (Source program) ㆒般是文字檔,並存貯著程式編㊢員所輸入

的源程式碼 (Source code)。程式在執行前,所㈲源程式碼必須首先轉換成

機器指令。

翻譯程式 (Translator) 或稱譯碼器,是把源程式碼轉換成機器指令的

軟件。翻譯過程㆗,若程式㈲任何的語法錯誤,將會被發現。

翻譯程式可分為㆔類:匯編程式 (Assembler)、編譯程式 (Compiler) 和解譯程式 (Interpreter)。

匯編程式和編譯程式均產生稱為目標程式 (Object program) 的額外檔

案,目標程式是存貯機器指令的㆓進制檔案 (Binary file)。電腦執行程式

時只需目標程式,但若翻譯過程需要重做時,目標程式會被重㊢。

解譯程式不會產生目標程式,因此在執行期間,源程式必須出現。

執行 run 重㊢ overwrite

Page 10: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

89

匯編程式把匯編語言程式轉換成機器指令。

編譯程式把高階語言程式轉換成機器指令。

兩者都產生目標程式。

圖 8 匯編程式把匯編語言程式轉換成機器指令,並產生目標程式

圖 9 編譯程式把高階語言程式轉換成機器指令,並產生目標程式

A. 匯編程式

匯編程式 (Assembler) 或稱匯編器,把匯編語言程式 (Assembly lan-guage program) 翻譯成機器指令,然後將結果存貯在新建的目標程式㆗。

匯編器對每個匯編語言指令產生㆒對㆒的機器指令,並把整個源程式

翻譯,產生目標程式。因此,電腦執行程式時,只需目標程式。

B. 編譯程式

編譯程式 (Compiler) 或稱編譯器,把高階語言程式翻譯成機器指令。

與匯編器相似,編譯器對整個源程式進行翻譯,並產生目標程式。因此,

在執行期間,只需目標程式。

㆒對㆒ one-to-one 目標程式 object program 源程式 source program

Page 11: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

90

解譯程式每次只翻譯一句高階語言程式語句供電腦執行,並不產生目標程式。

圖 10 解譯程式每次只翻譯一句高階語言程式語句供電腦執行,並不產生

目標程式

C. 解譯程式

解譯程式 (Interpreter) 或稱解譯器,每次只翻譯㆒句高階語言程式語

句,送交電腦,由電腦執行,然後對㆘㆒句,重複㆖述的動作。

由於解譯器並不產生目標程式,經翻譯的機器指令是不能重複使用

的。因此,程式在運行期間,解譯器及源程式都必須同時出現。

在運行期間,由於㆗央處理器必須花時間在翻譯㆖,因此對涉及解譯

器的程式,整體的運行速度比對應的編譯版本較為緩慢。

儘管解譯器擁㈲㆖述的缺點,程式編㊢員還是較喜歡使用解譯器,原

因是可以互動㆞為程式進行測試,提高編程效率。

D. 翻譯程式的趨勢

互聯網的廣泛使用,增加了㆟們對程式可攜性的要求。程式可攜性

(Portability of program) 意謂同㆒程式,在毋需另行編譯的情況㆘,便可

在不同的操作系統㆗運行。

Java 的設計是讓同㆒程式可以在不同的電腦㆗運行。Java 的源程式

碼並不是直接㆞編譯成機器指令,而只是編譯成稱為字節碼 (Bytecode) 的㆗間程式碼 (Intermediate code)。存貯字節碼的目標程式必須再經過稱為

虛擬機 (Virtual machine) 的解譯,因此用戶的電腦必須裝㈲虛擬機。微軟

近年推出的 Visual Studio.net® 程式編㊢語言便是使用類似的方法,令程式

可在不同的平台㆖運行。

解譯 interpret 操作系統 OS, Operating System 平台 platform

Page 12: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

91

圖 11 Java 程式被翻譯成字節碼並且存貯在目標程式中。當目標程式到達用戶的電腦時,它們更進

一步被翻譯成能電腦了解的機器指令

表 5 匯編器,編譯器和解譯器之間的比較

E. 翻譯程式的比較

Page 13: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

92

1. 程式編寫語言是程式編寫員 (Programmer) 與電腦之間的界面。程式

編寫語言已經發展到第四代,愈新的語言對發展應用程式愈容易。

2. 程式編寫語言可分為高階語言和低階語言。

3. 低階語言是與機器相關的,但是能夠控制硬件,並使用比較少的資源

而執行速度比較高。

4. 高階語言是為解決特定的問題而發展,對學習及發展應用程式較為容

易。

5. 一句 3GL 語句轉換成許多個機器指令;一句 4GL 語句代表許多句 3GL 語句。

6. 翻譯程式把源程式碼轉換成機器指令。翻譯程式的三類型是:匯編

器、編譯器和解譯器。

7. 匯編器把匯編語言程式轉換成機器指令,並產生目標程式。

8. 編譯器將高階語言程式翻譯成機器語言,並產生目標程式。

9. 解譯器每次只翻譯一句高階語言程式語句供電腦執行,並不產生目標

程式。

10. 產生目標程式的語言,對於程式編寫員較不方便,每次源程式改變都

需要重新翻譯,但程式編寫員可以隱藏源程式,程式在執行時亦毋需

翻譯。

多㊠選擇題

1. 高階語言程式 A. 是機器相關的。 B. 必定是容易學習的。 C. 必定是容易除錯的。 D. 是為解決某種問題而開發的。

2. 匯編語言程式 (1) 是低階語言程式。 (2) 包含機器指令。 (3) 需要解譯器翻譯成機器語言。

A. 只有 (1) B. 只有 (3) C. 只有 (1) 和 (2) D. 只有 (2) 和 (3)

Page 14: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

93

3. 下列哪項是正確的? A. 每個匯編語言指令被翻譯成一個機器指令。 B. 以匯編語言編寫的程式比以機器指令編寫的行數較少。 C. 匯編器把機器指令翻譯成匯編語言。 D. 匯編器執行以匯編語言編寫的程式。

4. 譯碼器 (Translator) 是 A. 硬件。 B. 軟件。 C. 硬件和軟件的組合。 D. 應用程式。

5. 若某譯碼器會產生目標程式檔案,這個譯碼器可能是一個 (1) 匯編器 (2) 編譯器 (3) 解譯器

A. 只有 (1) B. 只有 (3) C. 只有 (1) 和 (2) D. 只有 (2) 和 (3)

6. 以高階語言編寫的程式 (1) 具可攜性。 (2) 與類似功能的低階語言程式比較,使用較少行數。 (3) 較以低階語言編寫的程式有效率。

A. 只有 (1) B. 只有 (3) C. 只有 (1) 和 (2) D. 只有 (2) 和 (3)

7. 下列哪項是正確的? A. 所有程式編寫語言是為特定的電腦而設計的。 B. 譯碼器必定產生目標程式。 C. 第三代語言是高階語言。 D. 第四代語言將要取代第三代語言。

8. 譯碼器能發現 (1) 運行錯誤 (2) 邏輯錯誤 (3) 語法錯誤

A. 只有 (1) B. 只有 (3) C. 只有 (1) 和 (2) D. 只有 (2) 和 (3)

Page 15: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

基本程式編㊢概念

94

9. SQL 代表 A. 結構化查詢語言。 B. 開方根。 C. 平方商數語言。 D. 標準詢問語言。

10. 經過編譯器編譯的程式 (1) 相比使用解譯器的那些程式較有效率。 (2) 只能在某類型的電腦上使用。 (3) 是沒有錯誤的。

A. 只有 (1) B. 只有 (3) C. 只有 (1) 和 (2) D. 只有 (2) 和 (3)

問答題

1. (a) 程式編寫員和電腦之間的界面是什麼?舉出㆔個例子。 (b) 試解釋「語法」的意義。 (c) 許多 LOGO 的指令是不存在於其他的程式編寫語言。 i) 舉出㆔個這些指令的例子。 ii) 舉出㆒個必須使用 LOGO 以外的其他程式編寫語言的程式發展例

子。

2. 鳳儀是一位程式編寫員。她已編寫好一個在 Windows® 上運行的程式。 (a) 該源程式檔案能否在一部 Macintosh® 電腦中進行編輯?試簡短地解

釋。 (b) 鳳儀使用的譯碼器為她編寫的程式產生了一個 ".exe" 檔案。 i) 鳳儀使用的譯碼器屬於那類型? ii) 該 ".exe" 檔案能否在 Macintosh 電腦上運行?試簡短地解釋。

3. 下列是一些程式片段:

(a) 上述哪個程式是以低階語言編寫? (b) 討論使用低階語言的㊝點和缺點。 (c) 舉出㆒個以低階語言編寫的程式例子。

4. (a) 描述機器指令的一般結構。 (b) 匯編語言指令的助記碼有什麼特點? (c) 在匯編語言程式被電腦執行前,必須進行什麼程序? (d) 寫出匯編語言和機器語言之間的關係。

Page 16: 程式編㊢語言 - 寶安商會王少清中學pocawsc.edu.hk/~losir/ccit_pdf/ccit15.pdf是包含部分 C 語法的程式語言,以 Java 來編㊢的程式可以從 HTML 文件透過瀏覽器調用

第 15 章 程式編㊢語言

95

5. 程式編寫語言已經發展到第四代。 (a) 為每代程式編寫語言,舉出㆒個例子。 (b) 寫出下列每對語言之間的分別: i) 第二和第三代語言。 ii) 第三和第四代語言。 (c) 試解釋為什麼有多種不同的 3GL 程式語言。

6. 彼得是一位自由工作 (Freelance) 程式編寫員。對他而言,程式編寫語言必須符合以下的條件:

w 可幫助他解決問題 w 可幫助他在最短的時間內完成工作 (a) 試解釋彼得為什麼不會使用低階語言。 (b) 彼得需要不時學習新的程式編寫語言,試簡短地解釋。 (c) 彼得很少使用那些需要解譯器的語言,試解釋。

7. 翻譯高階語言指令可用編譯器或解譯器。 (a) 試解釋由編譯器翻譯的程式為什麼較有效率? (b) 編譯器會根據源程式產生新的檔案。 i) 這個新的檔案稱為什麼? ii) 源程式的什麼資訊是不會包含在這個新的檔案中? iii) 若發現程式有錯誤,應該編輯哪個檔案? (c) 有些程式會連同解譯器一起售賣的。解釋用戶為什麼需要解譯器。

8. 從互聯網下載的 Java 程式是不能夠以文本編輯器開啟、編輯的。 (a) 所下載的程式屬於源程式還是目標程式? (b) 那類型的譯碼器曾被用於產生這些 Java 程式? (c) 對執行這些 Java 程式,用戶是需要安裝 Java 虛擬機的。 i) Java 虛擬機屬於那類型軟件? ii) Java 虛擬機有 Windows®,MAC® 和 Linux® 的版本。解釋為什

麼需要不同的版本。 iii) 概述在 Java 源程式編寫後所需的步驟,令程式最後能在電腦上運

行。試以繪圖方式,說明你的答案。