• Tidak ada hasil yang ditemukan

計算機概論 Computer Concepts

N/A
N/A
Protected

Academic year: 2023

Membagikan "計算機概論 Computer Concepts"

Copied!
2
0
0

Teks penuh

(1)CK6126 康秩群. 計算機概論 Computer Concepts - Programming Language 程式語言是大家吃飯的工具,想必不會太陌生。. Programming Language 程式語言 程式語言的發展 • 第一代程式語言:機器語言(Machine Code/Machine Language) • 由一連串的 0 與 1 組成,難以理解且不易撰寫(誰會寫?),不同機器有各自的機器語言。 • 電腦可以直接看懂的語言,故執行速度最快。 • 第二代程式語言:組合語言(Assembly Language) • 以有意義的英文字元及符號組成,不同機器上的組語也不同,和機器語言皆為低階語言。 • 與機器碼直接對應,須經由組譯器(Assembler)轉換,執行速度快。. • 第三代程式語言:高階語言(High Level Language) • 較接近人類語彙(相較於低階語言),易於理解、撰寫,可攜性較高。 • 以編譯器(Compiler)或直譯器(Interpreter)翻譯後方可執行。 • 可分為程序導向與物件導向 • 程序導向(Procedure Oriented):以程序動作為主軸,一步一步處理以完成工作。 •. 如 C, Pascal, BASIC, Perl, PHP, COBOL, FORTRAN(第一個高階語言)等。. • 物件導向(Object Oriented):將資料與程式碼包裝成物件,藉物件間的互動關係完成工作。 • 封裝(Encapsulation):將物件的內部資料和程序隱藏,程式設計者只需明白如何使用即可。 • 繼承(Inheritance):子類別及物件會繼承其父類別的特性及操作方法。 • 多型(Polymorphism):在不同的類別中使用相同名稱的方法,可以有不同的結果。 • 抽象(Abstraction):將變數抽象化,讓我們更容易使用 (這解釋也很抽象……) 。 • 完全物件導向語言:Java, Ruby, Python, C#, Smalltalk, Simula(第一個物件導向語言)等。 • 以舊有語言為基礎增加物件導向概念:C++(C), Visual Basic(BASIC), Delphi(Pascal)等。 •. 在改版過程中新增物件導向支援:Perl(since Perl 5), PHP(since PHP 3)。. • 第四代程式語言:極(超/最/!@#$%)高階語言/問題導向(Problem Oriented)語言 • 「做什麼」比「怎麼做」更重要,例如 SQL(Structured Query Language, 結構化查詢語言)。 • 第五代程式語言:自然語言/人工智慧語言 • 類似人類語言,主要用於人工智慧開發。 ※上述只是大略依照程式語言演進趨勢分類,並非絕對,亦有一說「第四代語言」為物件導向語言。. 練習題: 【95 北市】. 1.下列哪一種技術不是物件導向軟體技術的特點? (A)繼承(inheritance) (B)遞迴(recursion) (C)封裝(encapsulation) (D)多形(polymorphism). 2.常見的程式語言有 FORTRAN, COBOL, C, BASIC, PASCAL, DELPHI, JAVA, 組合語言, SQL 等, 請問何者最接近機器語言且執行速度最快?___________。. 【92 軟設】. 答案:1.(B) 2.組合語言 97 建中資訊科校內培訓講義-計算機概論-7.

(2) CK6126 康秩群. 程式語言的翻譯 寫完一支程式後,需使用翻譯程式以及一些系統程式,才能讓程式順利執行。翻譯時僅能 發現語法錯誤(在編譯式語言你會得到 CE),程式邏輯錯誤等並不會被發現。 • 編譯/組譯器:將原始程式碼編/組譯為目的碼(Object Code),經由連結器(Linker)將目的碼 (以及函式庫)結合為執行檔(*.exe),欲執行時由載入器(Loader)載入執行。 • 直譯器:在執行時逐一將指令翻譯、分析,每執行一次便翻譯一次。. 結構化程式設計 所謂的結構化程式設計是指一個程式可以透過由上而下(top-down)的過程,將複雜的程式 分解成許多小單元(如 C 語言中的函數),這些單元稱為模組(Module),每個模組有各自的功 能。一個結構化的程式僅能有單一入口及單一出口,而 goto 跳躍指令易破壞結構,不應使用。 結構化程式設計的優點為:撰寫較容易、減少程式維護的時間和成本、提高程式的可讀性。 缺點為:程式較大、佔用較多記憶體空間、執行速度較慢(跟組語比 XD) 。 Bohm 與 Jacopini 證明任何的程式結構可使用循序、選擇、重複等三種方法的組合來完成。 練習題: 【95 北市】. 1.下面那一種錯誤在程式編譯過程中會被發現? (A)語法錯誤 (B)使用者輸入錯誤 (C)邏輯錯誤 (D)資料錯誤 2.結構化程式設計必須由幾種敘述組成,試問下列何種敘述不屬於其中之一?. 【93 軟設】. (A) A=3 (B) GO TO (C) FOR…NEXT (D) IF…ENDIF 答案:1.(A) 2. (B). 常見程式語言 • C 語言:由B語言發展而來,影響往後許多其他語言如 C++、C#、PHP。具低階語言特性。 • C++:以 C 語言為基礎,加上物件導向特性。與 C 語言是不同的,但一個正確的 C 程式, 通常也是正確的 C++程式。 • Java:由昇陽(Sun)公司改進 C++開發出的物件導向語言,編譯器將原始程式編譯為 bytecode,再由各平臺上的虛擬機器解讀執行,故 Java 程式編譯一次便可在各平臺上執行。 • PHP:一種嵌入 HTML 的直譯式語言,須於伺服器端執行,多用於網頁程式設計。 • Pascal:結構嚴謹的語言,常用於教學上,目前對岸 OIer 多使用 Pascal。 • Delphi:在 Pascal 的基礎上加入物件導向功能,圖形化的開發環境。 • BASIC:Beginner's All-purpose Symbolic Instruction Code,設計給初學者使用的直譯式語 言,發展出許多版本如 QuickBASIC, PowerBASIC 等。目前只剩微軟的 Visual Basic 持續 開發更新,占據我國高職教科書。 • 其他網頁程式語言:ASP, JavaScript(不是 Java), JSP(這才是 Java), XML, Ruby on Rails 等。 練習題: 1. 為何 JAVA 是跨平台的程式語言?(A)JAVA 程式不用編譯成組合語言即可執行 (B)JAVA 編譯 出來的組合語言在各種作業平台都適用 (C)JAVA 將程式編譯成二元檔,且各平台皆有專屬處理二 元檔的虛擬機器 (D)JAVA 是物件導向語言,所以可以跨平台。. 【96 軟設】. 答案:1.(C) 97 建中資訊科校內培訓講義-計算機概論-7.

(3)

Referensi

Dokumen terkait

1.1 Trie 儲存一個字串一般是用類似陣列的資料結構如char[]、std::string。 但如果是要儲存多個字串,開string的陣列並不一定是個好辦法。 有時我們會使用「字典樹」trie來處理。字典樹的結構就是一棵 樹,而使用方式和字典差不多。 字典樹的每一個節點都包含一個標記和 |Σ|個指標分別代表每種