官术网_书友最值得收藏!

1.2 C語言和C++語言簡介

C語言是貝爾實驗室丹尼斯·M.里奇(Dennis M. Ritchie, 1941—2011)在1973年設計的一種程序設計語言,當時想用于編寫UNIX操作系統和相關的系統程序。20世紀70年代后,C語言作為UNIX系統的標準開發語言,隨著UNIX系統的流行而被廣泛接受和應用。20世紀80年代后,C語言被移植到包括大型機、工作站等在內的各種系統上,逐漸成為開發計算機系統程序和復雜軟件的一種通用語言。隨著微型計算機(簡稱“微機”)的蓬勃發展、處理能力的提高和應用的日益廣泛,越來越多的人參與到微機應用系統的開發工作中,需要適合開發系統軟件和應用軟件的語言。C語言能較好地滿足需求,因此被廣泛用于開發微機上的各種軟件系統。

1978年,布萊恩·W.克尼漢(Brian W. Kernighan)和丹尼斯·M.里奇合作出版了The C Programming Language一書,書中介紹的C語言被稱為“K&R C”。隨著應用的發展,美國國家標準局(ANSI)在20世紀80年代成立了專門的小組研究C語言標準化問題,這項工作的結果是1989年頒布的ANSI C標準。該標準被國際標準化組織和各國標準化機構接受,也被采納為中國國家標準。此后人們繼續工作,1999年通過了ISO/IEC 9899:1999標準(通常稱為C99),該標準對ANSI C標準做了一些修訂和擴充。近年通過的ISO/IEC 9899:2011標準(通常稱為C11)對C語言做了進一步的修訂和擴充。

C++語言的誕生應歸功于本賈尼·斯特勞斯特魯普(Bjarne Stroustrup),其設計基礎是兩種語言:C和Simula。Stroustrup于20世紀80年代到貝爾實驗室的計算科學研究中心工作,他希望能有一種既具有C語言的效率和靈活性,又有類似于Simula語言的高級抽象描述機制的語言,更好地幫助從事復雜系統開發的程序員(包括自己)進行工作。在計算科學研究中心其他同事的參與和幫助下,最終推動了C++語言在1983年誕生。

由于C++能滿足許多研究工作和實際軟件開發的需要,因此很快在研究機構和產業界流行起來。Stroustrup在1985年出版了The C++Programming Language一書,標志著C++語言發展的第一個階段完成。此后C++不斷發展演化,1998年年底通過了第一個正式的C++標準(稱為C++98),后來的C++03標準是在C++98基礎上的一次小修訂,C++11標準則是一次全面的大進化。

C++語言中的兩個“+”號,最初是表示它在兩個方面對C語言進行增強和發展:

(1)在面向過程的程序設計(Procedure Oriented Programming)[1]方面進行了擴充和延伸;

(2)增加了面向對象的程序設計(Object-Oriented Programming)[2]功能。

隨著時代的發展,C++的功能被進一步擴充。就像經典書籍Effective C++所說的,當今的C++應該被視為一個龐大的“語言聯邦”。除了包含面向過程的程序設計和面向對象的程序設計之外,C++至少還包含如下幾個重要的組成部分:

(1)泛型程序設計(Generic Programming);

(2)元程序設計(Meta-Programming);

(3)函數式程序設計(Functional Programming);

(4)標準模板庫(Standard Template Library, STL);

(5)C11擴充的并發編程(Concurrent Programming)功能。

因此可以說,C++已經脫離了C語言,只是在“面向過程的程序設計”方面,C++是C語言的擴充和發展,并且與C語言向后兼容,即兩者的結構和機制(包括但不限于基本數據類型、變量、運算符、表達式、語句、判斷、循環、函數、指針、結構體等)幾乎完全重合。

由于C++語言基本上兼容C語言,相關程序開發系統常常同時支持這兩個語言,在這個意義上,人們常用“C/C++”來指代兩者的并集(請讀者注意,并不存在一種名叫“C/C++”的語言)。例如,微機上有許多商業化的C/C++語言系統可用,它們同時支持C和C++語言程序開發。早期有Borland公司的C/C++系列產品,后來有Microsoft(微軟)公司的Visual C/C++系列開發工具。還有許多免費的C/C++語言系統,如本書中介紹的Dev-C++。目前各種工作站和大型計算機系統大都運行UNIX或Linux操作系統,C/C++是它們的標準系統開發語言,這些系統上也有一些可用的C/C++系統。

無論C還是C++語言,都有很豐富的內容,精通它們需要經過較長時間的學習和較多的實踐鍛煉。由于一門課程和一本教科書的容量限制,同時考慮到初學者學習的便利性,以及與后續課程銜接的基本需要,本書中的講解和編程示例的描述將主要使用從ANSI C標準語言和C++語言中精選的一組共性功能,加上少許C99和C++中面向過程的程序設計方面的增強和擴充功能。這樣選擇可以幫助初學者比較容易地進入編程和計算的領域。本書后面簡單地說“語言”或“編程語言”時就指這樣的“C/C++”語言,說“程序”時就指用這種語言寫的程序。此外,書中的討論將限制在面向過程的程序設計的范圍內,不涉及高級的面向對象的程序設計。這些也是本書的書名“C/C++程序設計”的由來。

在本書的學習過程中,希望讀者注重學習計算領域的重要概念、程序設計的基本思想、編程的技術和方法、編程語言的相關知識,還需要認真學習和靈活運用人們在長期程序設計工作中總結出的經驗,以及許多情況下的具體程序寫法(所謂習慣用法)、程序書寫的形式等。對閱讀本書的讀者提出的建議是:在學習過程中,需要熟悉程序語言和程序設計方法,自己動手完成盡可能多的程序練習,還要特別注意學習如何寫程序,養成良好的程序設計習慣。這些都是學習程序語言與程序設計過程中特別重要的方面。本書中還提出了很多有用的建議,希望讀者注意參考。

主站蜘蛛池模板: 财经| 无锡市| 福鼎市| 砀山县| 永安市| 开鲁县| 大方县| 宜春市| 仁怀市| 宁安市| 武威市| 红安县| 东辽县| 天全县| 磴口县| 宁德市| 全州县| 弥勒县| 治县。| 科技| 晋州市| 高要市| 巍山| 乌兰察布市| 城口县| 旅游| 台州市| 鄄城县| 沅江市| 喀什市| 手游| 安康市| 青河县| 福州市| 辽宁省| 金平| 申扎县| 罗平县| 阜新| 若羌县| 弥勒县|