㈠ C語言是在什麼語言的基礎上發展起來的
C語言的前身是1967年由Martin Richards為開發操作系統和編譯器而提出的兩種高級程序設計語言BCPL和B.BCPL。Ken Thompson在BCPL的基礎上,提出了新的功能更強的B語言,並在1970年用B語言開發出UINX操作系統的早期版本。BCPL語言和B語言都屬於「無數據類型」的程序設計語言,即所有的數據都是以「字」(Word)為單位出現在內存中,由程序員來區分數據的類型。
1972年,貝爾實驗室的Dennis Ritchie在BCPL語言和B語言的基礎上,又增加了數據類型及其他一些功能,提出了C語言,並在DEC PDP-11計算機上實現。以編寫UINX操作系統而聞名的C語言,目前已經成為幾乎所有操作系統的開發語言。應當指出的是,C語言的實現是與計算機無關的,只要精心設計,就可以編寫出可移植的(Portable)C語言程序。
到20世紀70年代末,C語言已經基本定型,這個C語言版本現在被稱為「傳統C語言」。1978年,Kernighan和Ritchie編著的《C程序設計語言》出版後,人們開始關注起程序設計語言家族的這個新成員,並最終奠定了C語言在程序設計中的地位。《C程序設計語言》也成為歷史上計算機科學領域最成功的專業書籍之一。
當年C語言還是一種與硬體相關的語言,為了讓它能夠運行於各種類型的計算機上,即各種硬體平台(Hardware platforms)上,人們就提出了多種相似但卻常常不能相互兼容的C語言版本。這就出現了一個很嚴重的問題:能夠在一台機器上運行的C語言程序往往不能夠在另外一台機器上運行,除非程序被重新編寫。因此,退出C語言標準的呼聲日益強烈。1983年,美國國家標准委員會(American National Standards Committee,ANSC)下屬的計算機與信息處理部(X3)成立了「X3J11技術委員會」,專門負責制定「一個無二義性的硬體無關的C語言標准」。1989年,「標准C」誕生。1999年,這個標准被更新為「INCITS/ISO/IEC9899-1999」(即C99)。
㈡ C語言的發展史
發展史:
C語言的祖先是BCPL語言。
1967年,劍橋大學的 Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。
1970年,美國貝爾實驗室的 Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。
在1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。
1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。
1994年,ISO修訂了C語言的標准。
1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。
1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。
2001年和2004年先後進行了兩次技術修正。
目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。
㈢ C語言的起源和發展
C++源於C語言,而C語言是在B語言的基礎上發展起來的。
n 1960年出現了一種面向問題的高級語言ALGOL 60 。
n 1963年英國劍橋大學推出了CPL(Combined Programming Language)語言,後來經簡化為BCPL語言。
n
1970年美國貝爾(Bell)實驗室的K.Thompson以BCPL語言為基礎,設計了一種類似於BCPL的語言,取其第一字母B,稱為B語言。
n 1972年美國貝爾實驗室的Dennis
M.Ritchie為克服B語言的諸多不足,在B語言的基礎上重新設計了一種語言,取其第二字母C,故稱為C語言。
n 1980年貝爾實驗室的Bjarne
Stroustrup對C語言進行了擴充,推出了「帶類的C」,多次修改後起名為C++。以後又經過不斷的改進,發展成為今天的C++。
C++改進了C的不足之處,支持面向對象的程序設計,在改進的同時保持了C的簡潔性和高效性。