程序語言發展簡述

摘自《C++程序設計教程(第二版)》——清華大學出版社

程序設計語言:計算機可以識別的語言,具有特定的詞法與語法規則,由人編寫,用於描述解決問題的方法,供計算機閱讀和執行。


發展史:

一、機器語言

機器語言:計算機本身的語言,計算機可以直接理解執行,是人類使用的第一種編程語言。機器語言由一系列指令組成,指令是計算機可識別的逐個執行的基本命令,由二進制的0和1構成。   優缺點:機器語言能爲計算機直接識別和執行,效率高,但是對於人類來說卻十分晦澀難懂,更難於記憶和編程。計算機語言和人類語言存在巨大鴻溝,此時的軟件開發難度大,週期長,修改維護困難。


彙編語言(assembly language):彙編語言(AssemblyLanguage)是面向機器的程序設計語言。在彙編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。簡單說,彙編語言是程序員使用類似英文縮寫的助記符來表示指令,這些助記符構成了彙編語言。彙編語言由稱爲編譯器(Assembler)的翻譯程序將它轉換成機器語言程序。彙編語言的抽象層次太低,一個簡單的任務需要大量的語句實現,並且程序員還需要考慮大量的機器細節,故使用匯編語言編程難度大。彙編語言本質上還是機器語言。


機器語言與人類的自然語言習慣差別大,依賴具體的硬件系統,因此,同樣屬於低級語言。


大笑個人觀點:假如歷史中不是改良了程序設計語言,而是使硬件更加符合人類思維,那麼彙編語言或者機器語言會不會迎來第二春?又會不會有後來到高級程序設計語言?大笑


二、高級程序設計語言——“面向過程”與“結構化程序設計”

高級語言,屏蔽了機器細節,不依賴於具體的硬件系統,提高了語言的抽象層次,程序中採用更有意義和更容易理解的語句,使得程序更容易描述具體的事物與過程,編程的效率大大提高。


高級語言由稱爲編譯器(compiler)的翻譯程序將它變成相應地機器語言程序。

高級語言舉例:BASIC,FORTRAN(IBM開發,科學與工程計算領域),COBOL(計算機制造商,政府和工業企業計算機用戶開發,擅長商業應用,常常用於編寫企業軟件),ALGOL。。。。


早期的高級語言面向過程,隨着計算機處理問題日益複雜,程序越來越龐大,大型軟件的開發遇到了嚴重的困難,甚至陷入“軟件危機”。60年代產生了結構化程序設計的思想,爲用面向過程的方法解決複雜問題提供了有力手段。結構化程序設計是軟件中繼子程序與高級程序設計語言後的第三個影響更爲深遠的里程碑。


結構化程序設計方法:

主要內容:自頂向下,逐步求精;     程序按功能劃分成若干的模塊,這些模塊形成調用的層次樹狀結構;            模塊間的關聯儘可能簡單,模塊功能相對獨立;          每一個模塊均由順序,選擇,循環三種及基本的結構組成。

優點:由於結構化程序設計採用了模塊分解與功能抽象以及自頂向下、分而治之的方法,從而將一個複雜的系統分解成易於實現和控制的子任務,顯著減少了軟件開發的複雜性,提高了程序的可靠性,可測試性和可維護性。結構化程序設計語言提高了語言的層次。結構化數據,結構化語句,數據抽象,過程抽象概念使程序更便於體現客觀事物的結構和邏輯含義。這使得編程語言與人類的自然語言更加接近。


結構化語言:BASIC,ALGOL,Pascal,COBOL,Ada,C,其中C語言最廣泛,影響最大。

C語言是1972年貝爾實驗室的Dennis Richie研製開發,最初它是作爲UNIX操作系統的開發工具,在貝爾實驗室內部使用,後來C語言經過不斷改進,成爲一種功能豐富,表達力強,使用靈活方便,應用面廣,目標程序高,可移植性好,既具有高級語言的優點,又具有低級語言的許多特點,特別適合進行操作系統軟件開發,因此引起人們的廣泛重視,在短短的十幾年中,風靡全世界。許多系統軟件和應用軟件都是用C編寫的,成爲計算機開發人員的必修基本功,深刻的影響了整整一代計算機開發人員。


生氣個人觀點:假如後來有人開發出一個新的硬件設備或操作系統,使得開發程序可以像學簡單的數學一樣,程序員會怎麼樣??這樣的事情會不會發生?這樣的事情發生會是因爲程序員的高級思維和技術,然而這個高級思維和技術卻亡了程序員???不會發生吧。。。尷尬


還接着說C語言,儘管C語言有很多優點,但它仍然是一種結構化和模塊化的程序設計語言,其本質是面向過程的。在處理小規模的程序問題時,結構化程序設計語言得心應手,但是黨問題比較複雜,程序的規模比較大時,結構化程序設計就顯的有些力不從心,因爲程序設計者必須細緻的考慮程序設計的每個細節,準確考慮程序運行過程所發生的所有問題。            C語言把數據和數據處理過程分離成相互獨立的實體,當數據 結構類型改變時,所有相關的處理過程都要進行相應的修改,程序的可重用性差,同時由於各種圖形用戶界面(graphics user interface ,GUI)軟件的應用日益廣泛,要求應用軟件必須隨時響應用戶的各種操作,因此軟件的功能很難用過程來描述與實現,如果仍然使用面向過程的方法與語言,軟件的開發和維護將面臨困境。


驚訝個人看法:覺得使用面向過程語言開發就會面臨困境的觀點很片面,就好比結構化程序設計思想曾經拯救面向過程,說不定哪一天又出來一個新的思考方式,使得面向過程語言重獲生機啊!!!得意


繼續書中:::爲了解決軟件開發的困境,消除結構化程序設計語言的侷限,提高軟件開發效率,在20世紀80年代提出了面向對象的程序設計(object-oriented program,OOP)。


三、面向對象的程序設計語言


面向對象的程序設計語言是爲了支持面向對象程序設計方法而設計的程序設計語言。它與以往各種程序語言的根本不同點在於,其設計的出發點就是爲了能更加直接的描述客觀世界中存在的事物(及對象)以及他們之間的關係。面向對象的程序設計語言支持抽象數據類型,並且提供了封裝性,繼承性,多態性等機制,使得類和類庫成爲可重用的模塊。


面向對象的語言發展經歷了一個很長的發展階段!!!!!!


大笑個人觀點:創造時總是痛苦和快樂並存!!有木有!!!委屈大笑


1985年 AT&T公司貝爾實驗室開發了C++,C++語言以其高效的執行贏得了廣大程序設計者的喜愛。由於C++的出現,才使得面向對象的程序設計語言越來越得到重視和廣泛應用。隨着Internet的迅速發展,1995年5月Sun MicroSystem公司發佈了一種新的面向對象的程序設計語言——java語言。java語言是從C++語言發展而來的,但比C++語言更加簡單,可以看做是“簡化了的C++”,它具有簡單,健壯,安全,與平臺無關,可移植性好和多線程等特點,是當前網絡編程中首選語言。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章