第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與



Similar documents
Microsoft Word _2 課本1225_OK_0222修.doc

Learning Java

CH01.indd

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

摘 要 在 這 忙 碌 的 社 會 中, 普 遍 人 們 運 動 時 間 其 實 並 不 充 裕, 體 力 越 來 越 差 的 情 況 下 還 隨 意 飲 食 導 致 身 體 健 康 越 來 越 差, 因 此 本 專 題 打 算 利 用 健 康 飲 食 的 方 式 改 善 這 些 人 的 體 質,

Microsoft Word 電腦軟體設計.doc

2/80 2

? (1) (2) (3) (IS) IS 650 信息技术教程 ( 第 7 版 )


epub83-1

Microsoft Word - PKUCS计算机教育 doc

Computer Architecture

计算机软件技术专业教学计划

(1) (2) (3) 1. (1) 2

Microsoft Word - 全華Ch4Ans.doc

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To


Microsoft Word - 最新正文.doc

Java 1 Java String Date

untitled

國立中山大學學位論文典藏.PDF

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

重 要 声 明 长 城 证 券 股 份 有 限 公 司 编 制 本 报 告 的 内 容 及 信 息 来 源 于 陕 西 东 岭 工 贸 集 团 股 份 有 限 公 司 提 供 的 证 明 文 件 以 及 第 三 方 中 介 机 构 出 具 的 专 业 意 见 长 城 证 券 对 报 告 中 所 包

公務員懲戒法實務及新制

大小通吃-糖尿病


98825 (Project Sunshine) Chi_TC_.indb

(Microsoft Word - outline for Genesis 9\243\2721\243\25529.doc)

穨Shuk-final.PDF

2

招行2002年半年度报告全文.PDF

Microsoft Word _4

郑州大学(下).doc

厨房小知识(六)

广 东 纺 织 职 业 技 术 学 院 发 展 党 员 公 示 制 实 施 办 法 关 于 推 荐 优 秀 团 员 作 为 党 的 发 展 对 象 工 作 的 意 见 后 勤 管 理 工 作 广 东 纺 织 职 业 技 术 学 院 新 引 进 教 职 工 周 转 房 管 理


游戏攻略大全(五十).doc

金融英语证书考试大纲


健康知识(二)

中南财经大学(二).doc

广西大学(一).doc

根据学校教学工作安排,2011年9月19日正式开课,也是我校迁址蓬莱的第一学期开学

山东大学(一).doc

2

主 编 : 杨 林 副 主 编 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 评 审 顾 问 : 杨 林 张 新 民 评 审 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 李 忆 萍 徐 如 雪 文 字 编 辑 : 曹 纯 纯 邹 兰 李 雅 清

最新文物管理执法全书(十四).doc

园林常识(二).doc

前 言 二 一 六 年 四 月 四 日, 兒 童 節, 誕 生 了 一 件 美 事 : 中 國 作 家 曹 文 軒 在 意 大 利 博 洛 尼 亞 國 際 童 書 展 榮 獲 國 際 安 徒 生 文 學 獎, 是 該 獎 創 設 六 十 年 來, 第 一 位 摘 桂 的 中 國 作 家, 意 義 重

湖 南 科 技 大 学

上海外国语大学(二).doc

2009 陳 敦 德

切 实 加 强 职 业 院 校 学 生 实 践 能 力 和 职 业 技 能 的 培 养 周 济 在 职 业 教 育 实 训 基 地 建 设 工 作 会 议 上 的 讲 话 深 化 教 育 教 学 改 革 推 进 体 制 机 制 创 新 全 面 提 高 高 等 职 业 教 育 质 量 在

鸽子(三)

兽药基础知识(四)

园林植物卷(十).doc

园林植物卷(十七).doc

临床手术应用(三)

家装知识(二十)

医疗知识小百科

家庭万事通(一)

家装知识(三)

园林绿化(一)

园林植物卷(十五).doc

最新监察执法全书(一百五十).doc

兽药基础知识(三)

奥运档案(四).doc

最新监察执法全书(五十).doc

最新执法工作手册(三百八十四)

中华美食大全4

动物杂谈_二_.doc

抗非典英雄赞歌(三)

新时期共青团工作实务全书(三十五)

经济法法律法规第十九卷

游戏攻略大全(五十九).doc

火灾安全实例

兽药基础知识(七)

实用玉米技术(二)

中国政法大学(一).doc

水产知识(一)

國立中山大學學位論文典藏.PDF

Microsoft Word mpc-min-chi.doc

( ) 1

穨cwht.PDF

900502_Oasis.indb

bnb.PDF

untitled

Microsoft Word - om388-rnt _excl Items 16 & 38_ _final_for uploading_.doc

% 25% (i) 95% 96,290,900 (ii) 99.9% 17,196,000 (iii) 99.9% 89,663,100 2

¨Æ·~½g¡ã¾·~¤ÀÃþ

游戏攻略大全(五十二).doc

游戏攻略大全(五十一).doc

幻灯片 1

多層次傳銷與獎金系統

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

Microsoft PowerPoint - plan06.ppt

FAQ -PowerDesigner9.5.DOC

D C 93 2

Transcription:

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

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與 類 的 思 考 及 工 作 方 式 迴 然 不 同 程 式 編 写 語 言 (Programming language) 或 程 式 語 言, 可 視 為 程 式 編 写 員 (Programmer) 與 電 腦 之 間 的 界 面, 讓 們 控 制 電 腦 與 類 的 語 言 相 似, 每 個 程 式 編 写 語 言 都 ㆒ 套 定 的 字 詞 (Word) 和 語 法 (Syntax) 語 法 是 ㆒ 組 決 定 字 詞 如 何 組 合 成 為 語 句 (Statement) 的 規 則 程 式 編 写 員 必 須 遵 守 程 式 語 言 的 語 法 程 式 是 在 算 法 建 立 之 後 才 編 寫 的 算 法 是 写 在 紙 張 用 於 解 決 問 題 的 ㆒ 組 步 驟, 程 式 編 写 (Programming) 則 是 把 算 法 實 踐 過 來 15.2 程 式 編 写 語 言 的 發 展 歷 史 程 式 編 写 語 言 可 分 類 為 : 低 階 語 言 (Low level programming language) 和 高 階 語 言 (High level programming language) 圖 2 低 階 語 言 和 高 階 語 言 位 元 bit 字 節 byte 界 面 interface 字 詞 word 算 法 algorithm 81

基 本 程 式 編 写 概 念 A. 低 階 語 言 低 階 語 言 是 機 器 相 關, 並 包 括 : 1. 機 器 語 言 2. 匯 編 語 言 低 階 語 言 包 括 機 器 語 言 (Machine language) 和 匯 編 語 言 (Assembly language) 兩 者 都 是 機 器 相 關 (Machine dependent) 的, 意 謂 以 IBM 電 腦 的 低 階 語 言 來 編 写 的 程 式 是 不 可 能 由 Macintosh 電 腦 來 執 行 的 由 於 低 階 語 言 能 效 控 制 電 腦 的 硬 件, 因 此 低 階 語 言 今 仍 被 採 用, 例 如 很 多 設 備 的 驅 動 程 式 都 是 以 低 階 語 言 來 編 写 的 另 外, 以 低 階 語 言 來 編 写 的 程 式 通 常 佔 用 較 少 的 記 憶 體 及 運 算 起 來 更 效 率 1. 第 ㆒ 語 言 機 器 語 言 程 式 包 含 二 進 制 數 字, 所 有 電 腦 只 能 夠 了 解 它 自 己 的 機 器 語 言 機 器 語 言 是 唯 一 不 用 翻 譯 電 腦 就 能 了 解 的 語 言 機 器 語 言 是 第 ㆒ 程 式 編 写 語 言 機 器 語 言 是 根 據 電 腦 硬 件 的 結 構 而 定 義 的, 故 電 腦 只 能 夠 了 解 己 那 ㆒ 套 機 器 語 言 這 解 釋 機 器 語 言 為 什 麼 是 機 器 相 關 的 機 器 指 令 (Machine instruction) 由 ㆒ 串 ㆓ 進 制 數 字 ( 0 或 1 ) 組 合 而 成, 每 個 ㆓ 進 制 數 字 對 應 電 路 的 ㆒ 個 開 或 關 (on/off) 狀 態 相 信 你 也 可 以 想 像 得 到, 以 機 器 語 言 來 編 写 程 式 會 是 多 麼 沉 悶 和 費 時 的 每 個 機 器 指 令 兩 部 分 : 作 為 動 詞 的 操 作 碼 (Op code) 及 作 為 詞 的 操 作 數 (Operand) 圖 3 機 器 指 令 的 典 型 格 式 操 作 碼 表 單 ㆒ 的 動 作 ( 例 如 increment [ 增 量 ] add [ 增 加 ] copy [ 複 製 ] 等 ) 操 作 數 是 涉 及 這 個 指 令 的 數 據 ( 例 如 在 increment A,A 便 是 操 作 數 ) 操 作 數 可 能 是 數 值 或 記 憶 體 某 個 存 貯 格 的 位 址 82 ㆓ 進 制 數 字 binary digit 記 憶 體 main memory 存 貯 格 memory location 驅 動 程 式 driver program

第 15 章 程 式 編 写 語 言 2. 第 ㆓ 語 言 匯 編 語 言 使 用 符 號 指 令 碼, 並 與 機 器 語 言 指 令 有 一 對 一 的 關 係 匯 編 語 言 (Assembly language) 是 第 ㆓ 程 式 編 写 語 言 匯 編 語 言 所 用 的 指 令 與 機 器 指 令 是 ㆒ 對 ㆒ 的, 即 每 個 匯 編 語 言 指 令 可 轉 換 為 ㆒ 個 機 器 指 令 匯 編 語 言 指 令 以 意 義 的 英 文 縮 写 取 機 器 語 言 指 令 的 ㆓ 進 制 操 作 碼, 這 些 縮 写 稱 為 符 號 指 令 碼 (Symbolic instruction code), 或 助 記 碼 (Mnemonics), 另 外, 部 分 操 作 數 亦 以 文 字 取 ㆓ 進 制 數 字, 例 如 JMP A 意 謂 跳 到 A 所 表 的 位 址 摘 要 之, 機 器 語 言 和 匯 編 語 言 統 稱 為 低 階 語 言 匯 編 語 言 較 機 器 語 言 容 易 掌 握, 原 因 是 使 用 了 文 字 來 取 ㆓ 進 制 數 字 機 器 語 言 匯 編 語 言 表 1 機 器 語 言 程 式 和 對 應 的 匯 編 語 言 程 式 例 子 B. 高 階 語 言 高 階 語 言 是 獨 立 於 機 器 的 高 階 語 言 (High level language) 是 獨 立 於 機 器 的 程 式 編 写 語 言, 第 ㆔ 或 以 的 語 言 均 屬 高 階 語 言 高 階 語 言 類 似 類 使 用 的 語 言, 讓 程 式 編 写 員 專 注 於 解 決 問 題, 毋 需 浪 費 精 力 處 理 及 遷 就 複 雜 的 機 器 結 構 例 子 是 SQL PASCAL C Java COBOL BASIC 及 指 令 碼 語 言 獨 立 於 機 器 machine independent 83

基 本 程 式 編 写 概 念 圖 4 程 式 編 寫 語 言 的 發 展 歷 史 1. 第 ㆔ 語 言 (3GL) 第 ㆔ 程 式 編 写 語 言 (3GL) 屬 高 階 語 言, 滿 足 們 對 程 式 編 写 語 言 在 效 率 和 效 果 的 需 求 典 型 的 3GL 例 子 C Fortran COBOL BA- SIC PASCAL 等 一 句 3GL 語 句 轉 換 成 許 多 個 機 器 指 令 在 高 階 語 言, 每 句 語 句 會 被 翻 譯 成 為 多 個 機 器 指 令 雖 然 3GL 較 接 近 類 語 言, 但 編 写 程 式 時, 仍 須 ㆒ 步 ㆒ 步 引 導 電 腦 來 完 成 任 務 一 句 4GL 語 句 代 表 許 多 句 3GL 語 句 2. 第 ㆕ 語 言 (4GL) 第 ㆕ 程 式 編 写 語 言 (4GL) 比 3GL 更 較 接 近 類 語 言, 每 句 4GL 語 句 表 多 句 3GL 語 句 典 型 的 4GL 例 子 是 結 構 化 查 詢 語 言 (SQL) 84 效 率 efficiency 果 效 efectiveness 結 構 化 查 詢 語 言 SQL, Structured Query Language 第 ㆔ 語 言 3GL, 3rd Generation Language 第 ㆕ 語 言 4GL, 4th Generation Language

第 15 章 程 式 編 写 語 言 以 是 ㆒ 個 SQL 語 句 ( 見 第 4 章 ) : SELECT * FROM student ORDER BY class, class_no; 述 語 句 把 數 據 庫 表 格 student 所 生 的 記 錄 顯 示 出 來, 並 依 "class" 及 "class_no" 由 小 大 排 序 若 這 個 任 務 以 3GL 來 編 写 程 式, 需 要 包 括 列 的 步 驟 : 首 先, 將 記 錄 依 "class" 及 "class_no" 由 小 大 排 序, 由 首 個 記 錄 開 始, 每 次 讀 取 ㆒ 個 記 錄, 並 測 試 檔 案 是 否 到 了 結 尾, 把 記 錄 內 的 項 目 顯 示 在 屏 幕, 轉 到 個 記 錄, 並 重 複 述 動 作 直 所 記 錄 都 顯 示 出 來 為 止 C. 低 階 高 階 語 言 之 間 的 比 較 1. 高 階 語 言 的 優 點 表 2 高 階 語 言 的 優 點 2. 低 階 語 言 的 優 點 表 3 低 階 語 言 的 優 點 排 序 sort 85

基 本 程 式 編 写 概 念 15.3 高 階 語 言 的 例 子 目 前, 業 界 已 發 展 出 數 以 百 計 針 對 不 同 類 型 問 題 的 高 階 語 言, 範 圍 從 遊 戲 到 商 業 應 用 不 等 列 是 部 分 常 見 的 高 階 語 言 : 1. PASCAL PASCAL 是 專 為 教 授 編 写 結 構 化 程 式 (Structured programming) 而 設 的 工 具, 所 以 常 用 於 校 以 的 PASCAL 程 式 把 攝 氏 溫 度 轉 換 為 華 氏 溫 度 : 圖 5 PASCAL 程 式 範 例 2. C C 的 設 計 是 讓 程 式 編 写 員 以 高 階 語 言 在 硬 件 層 面 操 控 電 腦, 取 得 與 使 用 匯 編 語 言 類 似 的 效 果, 但 C 比 匯 編 語 言 更 高 的 可 讀 性 以 是 ㆒ 個 把 攝 氏 溫 度 轉 換 為 華 氏 溫 度 的 C 程 式 : 圖 6 C 程 式 範 例 86 可 讀 性 readable 結 構 化 structured

第 15 章 程 式 編 写 語 言 3. Java Java 是 包 含 部 分 C 語 法 的 程 式 語 言, 以 Java 來 編 写 的 程 式 可 以 從 HTML 文 件 透 過 瀏 覽 器 調 用 (call 或 叫 ) 或 由 電 腦 直 接 來 執 行 從 互 聯 網 載 的 Java 程 式 必 須 由 裝 Java 虛 擬 機 (Virtual machine) 的 電 腦 來 執 行 Java 虛 擬 機 是 ㆒ 個 解 譯 程 式 (Interpreter) ( 見 15.4) 表 4 各 種 不 同 的 類 型 Java 程 式 4. COBOL COBOL 是 為 編 写 商 業 應 用 程 式 而 設 計 的 程 式 語 言, 指 令 涉 及 大 量 文 字, 對 初 者 頗 高 的 可 讀 性, 例 如, 以 的 COBOL 語 句 是 不 需 加 以 說 明 的 : multiply hourly-rate by hours-worked giving gross-pay 但 是, 對 於 複 雜 的 程 式,COBOL 的 可 讀 性 便 會 降 低 5. BASIC,Visual Basic BASIC 提 供 讓 生 容 易 掌 握 的 程 式 語 言 Visual BASIC 是 專 為 編 写 Windows 應 用 程 式 的 BASIC 版 本 編 写 程 式 時, 程 式 編 写 員 可 以 拖 放 物 件, 因 此 能 夠 很 輕 易 建 立 應 用 程 式, 故 亦 稱 為 迅 速 應 用 發 展 (RAD) 系 統 Visual Basic.NET 是 Visual BASIC 的 最 新 版 本, 並 支 援 所 網 路 的 徵 及 功 能 語 法 syntax 拖 放 drag-and-drop 迅 速 應 用 發 展 系 統 RAD, Rapid Application Development 87

基 本 程 式 編 写 概 念 6. 指 令 碼 語 言 指 令 碼 由 瀏 覽 器 處 理 而 非 直 接 地 由 電 腦 執 行 由 指 令 碼 (Script) 建 立 的 程 式 是 由 瀏 覽 器 等 軟 件 來 解 譯 及 執 行 的, 與 ㆒ 般 由 電 腦 直 接 執 行 的 程 式 不 同 VBScript 和 JavaScript 是 常 用 的 指 令 碼 語 言, 分 別 使 用 類 似 於 Visual Basic 和 Java ( 或 C) 的 語 法 指 令 碼 可 嵌 入 於 HTML 文 件, 增 強 HTML 的 功 能 與 HTML 碼 相 同, 指 令 碼 由 用 戶 的 瀏 覽 器 解 譯 及 執 行 指 令 碼 廣 泛 應 用 於 網 頁 設 計, 提 高 網 頁 的 互 動 性, 例 如 當 滑 鼠 移 過 網 頁 某 些 按 鈕 時, 改 變 按 鈕 的 圖 形 15.4 翻 譯 程 式 源 程 式 (Source program) ㆒ 般 是 文 字 檔, 並 存 貯 著 程 式 編 写 員 所 輸 入 的 源 程 式 碼 (Source code) 程 式 在 執 行 前, 所 源 程 式 碼 必 須 首 先 轉 換 成 機 器 指 令 翻 譯 程 式 (Translator) 或 稱 譯 碼 器, 是 把 源 程 式 碼 轉 換 成 機 器 指 令 的 軟 件 翻 譯 過 程, 若 程 式 任 何 的 語 法 錯 誤, 將 會 被 發 現 圖 7 翻 譯 程 式 把 源 程 式 碼 轉 換 成 機 器 指 令 翻 譯 程 式 把 源 程 式 碼 轉 換 成 機 器 指 令 翻 譯 程 式 可 分 為 ㆔ 類 : 匯 編 程 式 (Assembler) 編 譯 程 式 (Compiler) 和 解 譯 程 式 (Interpreter) 匯 編 程 式 和 編 譯 程 式 均 產 生 稱 為 目 標 程 式 (Object program) 的 額 外 檔 案, 目 標 程 式 是 存 貯 機 器 指 令 的 ㆓ 進 制 檔 案 (Binary file) 電 腦 執 行 程 式 時 只 需 目 標 程 式, 但 若 翻 譯 過 程 需 要 重 做 時, 目 標 程 式 會 被 重 写 解 譯 程 式 不 會 產 生 目 標 程 式, 因 此 在 執 行 期 間, 源 程 式 必 須 出 現 88 執 行 run 重 写 overwrite

第 15 章 程 式 編 写 語 言 A. 匯 編 程 式 匯 編 程 式 (Assembler) 或 稱 匯 編 器, 把 匯 編 語 言 程 式 (Assembly language program) 翻 譯 成 機 器 指 令, 然 後 將 結 果 存 貯 在 新 建 的 目 標 程 式 匯 編 程 式 把 匯 編 語 言 程 式 轉 換 成 機 器 指 令 編 譯 程 式 把 高 階 語 言 程 式 轉 換 成 機 器 指 令 匯 編 器 對 每 個 匯 編 語 言 指 令 產 生 ㆒ 對 ㆒ 的 機 器 指 令, 並 把 整 個 源 程 式 翻 譯, 產 生 目 標 程 式 因 此, 電 腦 執 行 程 式 時, 只 需 目 標 程 式 兩 者 都 產 生 目 標 程 式 圖 8 匯 編 程 式 把 匯 編 語 言 程 式 轉 換 成 機 器 指 令, 並 產 生 目 標 程 式 B. 編 譯 程 式 編 譯 程 式 (Compiler) 或 稱 編 譯 器, 把 高 階 語 言 程 式 翻 譯 成 機 器 指 令 與 匯 編 器 相 似, 編 譯 器 對 整 個 源 程 式 進 行 翻 譯, 並 產 生 目 標 程 式 因 此, 在 執 行 期 間, 只 需 目 標 程 式 圖 9 編 譯 程 式 把 高 階 語 言 程 式 轉 換 成 機 器 指 令, 並 產 生 目 標 程 式 ㆒ 對 ㆒ one-to-one 目 標 程 式 object program 源 程 式 source program 89

基 本 程 式 編 写 概 念 C. 解 譯 程 式 解 譯 程 式 每 次 只 翻 譯 一 句 高 階 語 言 程 式 語 句 供 電 腦 執 行, 並 不 產 生 目 標 程 式 解 譯 程 式 (Interpreter) 或 稱 解 譯 器, 每 次 只 翻 譯 ㆒ 句 高 階 語 言 程 式 語 句, 送 交 電 腦, 由 電 腦 執 行, 然 後 對 ㆒ 句, 重 複 述 的 動 作 由 於 解 譯 器 並 不 產 生 目 標 程 式, 經 翻 譯 的 機 器 指 令 是 不 能 重 複 使 用 的 因 此, 程 式 在 運 行 期 間, 解 譯 器 及 源 程 式 都 必 須 同 時 出 現 在 運 行 期 間, 由 於 央 處 理 器 必 須 花 時 間 在 翻 譯, 因 此 對 涉 及 解 譯 器 的 程 式, 整 體 的 運 行 速 度 比 對 應 的 編 譯 版 本 較 為 緩 慢 儘 管 解 譯 器 擁 述 的 缺 點, 程 式 編 写 員 還 是 較 喜 歡 使 用 解 譯 器, 原 因 是 可 以 互 動 為 程 式 進 行 測 試, 提 高 編 程 效 率 圖 10 解 譯 程 式 每 次 只 翻 譯 一 句 高 階 語 言 程 式 語 句 供 電 腦 執 行, 並 不 產 生 目 標 程 式 D. 翻 譯 程 式 的 趨 勢 互 聯 網 的 廣 泛 使 用, 增 加 了 們 對 程 式 可 攜 性 的 要 求 程 式 可 攜 性 (Portability of program) 意 謂 同 ㆒ 程 式, 在 毋 需 另 行 編 譯 的 情 況, 便 可 在 不 同 的 操 作 系 統 運 行 Java 的 設 計 是 讓 同 ㆒ 程 式 可 以 在 不 同 的 電 腦 運 行 Java 的 源 程 式 碼 並 不 是 直 接 編 譯 成 機 器 指 令, 而 只 是 編 譯 成 稱 為 字 節 碼 (Bytecode) 的 間 程 式 碼 (Intermediate code) 存 貯 字 節 碼 的 目 標 程 式 必 須 再 經 過 稱 為 虛 擬 機 (Virtual machine) 的 解 譯, 因 此 用 戶 的 電 腦 必 須 裝 虛 擬 機 微 軟 近 年 推 出 的 Visual Studio.net 程 式 編 写 語 言 便 是 使 用 類 似 的 方 法, 令 程 式 可 在 不 同 的 平 台 運 行 90 解 譯 interpret 操 作 系 統 OS, Operating System 平 台 platform

第 15 章 程 式 編 写 語 言 圖 11 Java 程 式 被 翻 譯 成 字 節 碼 並 且 存 貯 在 目 標 程 式 中 當 目 標 程 式 到 達 用 戶 的 電 腦 時, 它 們 更 進 一 步 被 翻 譯 成 能 電 腦 了 解 的 機 器 指 令 E. 翻 譯 程 式 的 比 較 表 5 匯 編 器, 編 譯 器 和 解 譯 器 之 間 的 比 較 91

基 本 程 式 編 写 概 念 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) 92

第 15 章 程 式 編 写 語 言 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) 93

基 本 程 式 編 写 概 念 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) 寫 出 匯 編 語 言 和 機 器 語 言 之 間 的 關 係 94

第 15 章 程 式 編 写 語 言 5. 程 式 編 寫 語 言 已 經 發 展 到 第 四 代 (a) 為 每 代 程 式 編 寫 語 言, 舉 出 ㆒ 個 例 子 (b) 寫 出 下 列 每 對 語 言 之 間 的 分 別 : i) 第 二 和 第 三 代 語 言 ii) 第 三 和 第 四 代 語 言 (c) 試 解 釋 為 什 麼 有 多 種 不 同 的 3GL 程 式 語 言 6. 彼 得 是 一 位 自 由 工 作 (Freelance) 程 式 編 寫 員 對 他 而 言, 程 式 編 寫 語 言 必 須 符 合 以 下 的 條 件 : 可 幫 助 他 解 決 問 題 可 幫 助 他 在 最 短 的 時 間 內 完 成 工 作 (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 源 程 式 編 寫 後 所 需 的 步 驟, 令 程 式 最 後 能 在 電 腦 上 運 行 試 以 繪 圖 方 式, 說 明 你 的 答 案 95