• 沒有找到結果。

CH7 一、 C 語言

N/A
N/A
Protected

Academic year: 2022

Share "CH7 一、 C 語言"

Copied!
2
0
0

加載中.... (立即查看全文)

全文

(1)

四資工 1A 4000E007 王春美

CH7

一、 C 語言

C 語言是由 UNIX 的研製者丹尼斯·里奇(Dennis Ritchie)於 1970 年由肯·湯普遜(Ken Thompson)所 研製出的 B 語言的基礎上發展和完善起來的。它一種通用的、程序式的程式語言,C 語言原創者 Dennis Ritchie 當時是為了要發展 UNIX 作業系統, 所以需要一種具有類似組合語言般的高效率, 以及能很方便移 植到各機型 (高可攜性) 之程式語言, 於是創造了 C 言,廣泛用於系統與應用軟體的開發,後來 C 言所具 備的效率、彈性、可攜性等各項優點,在程式設計師中備受青睞。

C 語言是目前,C 語言編譯器普遍存在於各種不同的作業系統中,例如 UNIX、MS-DOS、Microsoft Windows 及 Linux 等。C 語言的設計影響了許多後來的程式語言,例如 C++、Objective-C、Java、C#等。後 來於 1980 年代,為了避免各開發廠商用的 C 語言語法產生差異,由美國國家標準局(American National Standard Institution)為 C 語言訂定了一套完整的國際標準語法,稱為 ANSI C,作為 C 語言的標準。1980 年代至今的有關程式開發工具,一般都支援符合 ANSI C 的語法。

二、 C++語言

C++是一種使用非常廣泛的電腦程式設計語言。它是一種靜態資料類型檢查的,支援多範型的通用程 式設計語言。C++支援程序化程式設計、資料抽象化、物件導向程式設計、泛型程式設計、基於原則設計 等多種程式設計風格。

貝爾實驗室的比雅尼·斯特勞斯特魯普博士在 20 世紀 80 年代發明並實現了 C++。起初,這種語言被 稱作「C with Classes」(「包含類的 C 語言」),作為 C 語言的增強版出現。隨後,C++不斷增加新特性。

虛擬函式(virtual function)、運算子多載(operator overloading)、多重繼承(multiple inheritance)、模板

(template)、異常處理(exception)、RTTI(Runtime type information)、命名空間(namespace)逐漸納入標 準。1998 年國際標準組織(ISO)頒布了 C++程式設計語言的國際標準 ISO/IEC 14882-1998。另外,就目前 學習 C++而言,可以認為它是一門獨立的語言;它並不依賴 C 語言,我們可以完全不學 C 語言,而直接 學習 C++。根據《C++編程思想》(Thinking in C++)一書所評述的,C++與 C 的效率往往相差在±5%之間。

所以有人認為在大多數場合中,C++完全可以取代 C 語言。

C++語言發展大概可以分為三個階段:第一階段從 80 年代到 1995 年。這一階段 C++語言基本上是傳 統類型上的物件導向語言,並且憑藉著接近 C 語言的效率,在工業界使用的開發語言中佔據了相當大份 額;第二階段從 1995 年到 2000 年,這一階段由於標準模板庫(STL)和後來的 Boost 等程式庫的出現,

泛型程式設計在 C++中佔據了越來越多的比重性。當然,同時由於 Java、C#等語言的出現和硬體價格的大 規模下降,C++受到了一定的衝擊;第三階段從 2000 年至今,由於以 Loki、MPL 等程式庫為代表的產生 式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術 的融合,使 C++已經成為當今主流程式設計語言中最複雜的一員。

三、 Java 語言

Java 是一種電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性。

任職於昇陽電腦的詹姆斯·高斯林(James Gosling)等人於 1990 年代初開發 Java 語言的雛形,最初被 命名為 Oak,目標設定在家用電器等小型系統的程式語言,應用在電視機、電話、鬧鐘、烤麵包機等家用 電器的控制和通訊。由於這些智慧型家電的市場需求沒有預期的高,昇陽公司放棄了該項計劃。隨著 1990 年代網際網路的發展,昇陽公司看見 Oak 在網際網路上應用的前景,於是改造了 Oak,於 1995 年 5 月以 Java 的名稱正式釋出。Java 伴隨著網際網路的迅猛發展而發展,逐漸成為重要的網路程式語言。

Java 程式語言的風格十分接近 C++語言。繼承了 C++語言物件導向技術的核心,Java 捨棄了 C++語言

(2)

四資工 1A 4000E007 王春美

中容易引起錯誤的指標,改以參照取代,同時移除原 C++與原來運算子多载,也移除多重繼承特性,改用 介面取代,增加垃圾回收器功能。在 Java SE 1.5 版本中引入了泛型程式設計、型別安全的列舉、不定長參 數和自動裝/拆箱特性。昇陽公司對 Java 語言的解釋是:「Java 程式語言是個簡單、物件導向、分布式、

解釋性、健壯、安全與系統無關、可移植、高效能、多執行緒和動態的語言」。

Java 不同於一般的編譯語言和直譯語言。它首先將原始碼編譯成位元組碼(bytecode),然後依賴各 種不同平台上的虛擬機器來解釋執行位元組碼,從而實作了「一次編譯、到處執行」的跨平台特性。不過,

這同時也在一定程度上降低了 Java 程式的執行效率。但在 J2SE1.4.2 釋出後,Java 的執行速度有了大幅提 升。與傳統型態不同昇陽公司在推出 Java 時就將其作為開放的技術。全球數以萬計的 Java 開發公司被要 求所設計的 Java 軟體必須相互相容。「Java 語言靠群體的力量而非公司的力量」是昇陽公司的口號之一,

並獲得了廣大軟體開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式完全不同,此外,微軟 公司後來推出了與之競爭的.NET 平台以及模仿 Java 的 C#語言。後來昇陽公司被甲骨文公司併購,Java 也 隨之成為甲骨文公司的產品。

四、 Java Script

JavaScript 是一種廣泛用於用戶端網頁開發的腳本語言,最常是於 HTML 上使用,用來給 HTML 網頁 添加動態功能。然而 JavaScript 也被用於不同的介面上,如伺服器。它最初由網景公司的 Brendan Eich 設 計,是一種動態、弱型別、基於原型的語言,內建支援型別。JavaScript 是昇陽電腦的註冊商標。[1] Ecma 國際以 JavaScript 為基礎制定了 ECMAScript 標準。JavaScript 也可以用於其他場合,如伺服器端編程。完 整的 JavaScript 實作包含三個部分:ECMAScript,文件物件模型,瀏覽器物件模型。

Netscape 在最初將其腳本語言命名為 LiveScript,後來 Netscape 在與 Sun 合作之後將其改名為 JavaScript。JavaScript 最初受 Java 啟發而開始設計的,

目的之一就是「看上去像 Java」[2],因此語法上有類似之處,一些名稱和命名規範也借自 Java。但 JavaScript 的主要設計原則源自 Self 和 Scheme[3].JavaScript 與 Java 名稱上的近似,是當時網景為了行銷考 慮與昇陽電腦達成協議的結果。為了取得技術優勢,微軟推出了 JScript 來迎戰 JavaScript 的腳本語言。為 了互用性,Ecma 國際(前身為歐洲電腦製造商協會)建立了 ECMA-262 標準(ECMAScript)。現在兩者 都屬於 ECMAScript 的實作。儘管 JavaScript 作為給非程式人員的腳本語言,而非作為給程式人員的程式語 言來推廣和宣傳,但是 JavaScript 具有非常豐富的特性。

五、 JSP

JSP(全稱 JavaServer Pages)是由 Sun Microsystems 公司倡導和許多公司參與共同建立的一種使軟體開 發者可以響應用戶端請求,而動態生成 HTML、XML 或其他格式文檔的 Web 網頁的技術標準。JSP 技術 是以 Java 語言作為指令碼語言的,JSP 網頁為整個伺服器端的 Java 庫單元提供了一個介面來服務於 HTTP 的應用程式。

JSP 使 Java 代碼和特定的預定義動作可以嵌入到靜態頁面中。JSP 句法增加了被稱為 JSP 動作的 XML 標籤,它們用來呼叫內建功能。另外,可以建立 JSP 標籤庫,然後像使用標準 HTML 或 XML 標籤一樣使 用它們。標籤庫提供了一種和平台無關的擴充功能伺服器效能的方法。

JSP 被 JSP 編譯器編譯成 Java Servlets。一個 JSP 編譯器可以把 JSP 編譯成 JAVA 代碼寫的 servlet 然後 再由 JAVA 編譯器來編譯成機器碼,也可以直接編譯成二進制碼。

參考文獻

相關文件

Android 開發上,為了減少程式設計師在 UI 版面設計所花費的時間,Android 提供了不同的 layout 元件來輔助程式設計師進行開發,下列為 Android 開發上常用的 layout

C 語言的起源是 1972 年貝爾實驗室的 Dennis Ritchie 以 B 語言為基礎,結合了 B 語 言前身的 BCPL 語言的語法,再加上資料型態的概念,設計出 C。C 迅速地在各種不同 平台的電腦上發展,不過也造成了

他在解釋「禪定」這一詞條時,一面承認「攝心守意」的傳統 禪法,更表示自己的所傳還是中國祖師禪的傳統,強調了禪是在生

同一個常數 C ,只適用在 ( 0) 或者 (0, ) 上。.

以下 Java 程式執行完後,輸出結果為何?(A)無法編譯,因為 Rectangle 類別不能同時 extends 一個類別且 implemets 一個介面(B)無法編譯,因為 Shapes 類別沒有

有關於 Java 程式語言,下列何者敘述不正確?(A)Java 程式語言透過 extends 提供多重繼承 (Multiple

除了上行、平行和下行的關 係外,也可選用對外和對內 的標準來分析,旨在讓學生 明白人在不同語境中角色不 同,要從不同立場、角度思 考問題。..

也就是設定好間隔時間(time slice)。所有的 程序放在新進先出的佇列裡面,首先CPU