計算機編程語言的發展史


計算機編程語言的發展史

1940s,產生了真正意義上的電子計算機,這個時期的語言由於內存和計算能力的有限,都是使用硬件相關的匯編語言;

1950s~1960s,隨着電子技術的進步,計算機進入大型機時代,一些高級語言被逐漸開發出來主要用於系統級編程和數學計算,

Fortran(1950s由IBM團隊發明的數學計算語言),

COBOL(1950s由IBM等行業領袖推行的金融、商務系統開發語言),

LISP(用於人工智能領域,主要的數據結構是Linked List,全名為List Process語言,引入了很多先進的特性如遞歸、動態類型、自動內存管理等特性)

ALGOL(用於算法描述、學術領域,引入嵌套結構,語法范圍等,很大的影響了BPCL,B,PASCAL等語言

Basic(最早是為給非科學領域的學生所編寫,Microsoft VB的前身)

1970s,產生了C語言和一些早期的面向對象編程語言

C(1970s由Dennis Ritchie和Brian Kernighan發明的為DEC機開發的系統編程語言,前身是BPCL,B語言)

Simula(第一個支持面向對象的編程語言)

SmallTalk(第一個完整實現面向對象特性的編程語言)

1980s,向PC時代過渡,語言特性的合並、優化、發展

C++(綜合了SmallTalk面向對象特性和C語言語法,最為廣泛應用的面向對象語言之一)

機器語言--->匯編語言-->高級計算機語言

 機器語言:最初的計算機所使用的是由“0”和“1”組成的二進制數,二進制是計算機的語言的基礎。計算機發明之初,計算機只能被少部分人使用,人  們需要用0、1組成的指令序列交由計算機執行,對於機器語言的使用與普及都是很令人頭疼的問題。對於程序的移植能力幾乎沒有,從而時間成本,人力成本十分昂貴。但機器語言也不是沒有優勢,由於這種語言是直接對計算機硬件進行操作,所以在特定型號的計算機上面,運算效率也是很高的,機器語言的出 現對於未來的計算機語言發展起到了很好的推動作用,所以機器語言也是第一代計算機語言。

匯編語言:匯編語言是在機器語言的基礎上誕生的一門語言,用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串,這也提高了語言的記憶性和識別性。對於程序的開發與維護起到了積極作用。匯編語言同樣也是直接對硬件進行操作,這樣依然局限了它的移植性。但是使用匯編語言針對計算機特定硬件而編制的匯編語言程序,對於計算機硬件的功能和特長的發揮已有了很大進步,它精煉而質量高,所以至今仍是一種常用的程序開發語言。

高級計算機語言:在與計算機的不斷交流中,人們對計算機程序的移植性需求不斷提高,此時急需要一種不依賴於特定型號的計算機的語言,用這種語言編寫的程序能在在各種平台都正常運行。從最初的語言誕生至今,已經相繼出現了幾百種語言。高級語言的發展也從最初的結構化語言發展成為面向過程語言設計和面向對象語言設計。面向過程語言設計的代表有:C語言,Fortran,cobol,pascal,ada等等一系列語言,而面向對象語言設計的代表則為:java, c++,c#等。
對於面向過程的程序來說,執行順序是流水線似的,在一個模塊被執行完成前,人們不能干別的事,也無法動態地改變程序的執行方向,這恰恰與人們的日常處理事情的方式相矛盾。而對於面相對象的程序設計來說,很好的將事物象的部分抽取歸類,各個累與模塊之間能相互組合,完成特定的功能,同時又能重復使用。對使用者的技術要求也相對降低。

MATLAB(工業領域,工程計算語言)

Objective-C(iOS編程語言,已經是Top5的語言之一)

Erlang(多重范式編程語言,函數式、並發式、分布式,80年代由愛立信發明用於通信網絡編程,現已廣泛應用於互聯網高並發分布式計算領域,最有名的作品包括CouchDB/RabbitMQ)

Perl(源於Unix腳本的動態語言,初衷是為了使報告更容易處理,借鑒了C/sh/AWK和SED)

Tcl(曾經是很流行的測試腳本語言,現在已經沒落)

1990s,PC時代,互聯網時代萌芽,產生了很多動態語言和可視化編程集成環境IDE

Windows由於壟斷PC市場,其基於VC/VB的桌面應用開發曾經是客戶端開發技術的主流,

隨之而來催生了大量的基於Windows SDK客戶端應用,MFC是其中最為知名的一個C++類庫實現

Python/Ruby/Lua/PHP/JS

Java(發展為3個體系,J2SE/J2EE/J2ME,J2EE包含一些企業特性如JDBC, JPA, JTA/JMS/EJB,J2ME是移動版本)

Visual Basic/Visual C++/Delphi(Object Pascal)/Power Builder

Javascript(瀏覽器客戶端腳本,Netscape發明,包含ECMAScript核心腳本, DOM文檔對象模型, BOM瀏覽器對象模型三部分)

2000s~現在, 互聯網/移動互聯網時代,C/S模式進化為B/S模式,Java/PHP/.Net大行其道,並行計算/分布式計算越來越重要

ActionScript(Adobe公司發明,面向對象的Flash開發語言)

C#/Visual Basic.Net

Groovy(由VMVare支持,基於Java平台的動態語言,支持元數據編程Metaprogramming,動態擴展對象數據,如反射,

還比如范型編程(如C++的STL,最早版本由HP實現)能為語言提供運行時再確定的動態類型特性,可以大大簡化編碼)

Go (C語言之父發明的並行計算語言)

Node.js(服務器端的JS運行環境,Js語言在服務器端的延伸,具有單線程,高並發的特性)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM