- 繪制進程圖:可視化D++語言(第1冊)
- 楊章偉 唐同誥
- 2420字
- 2018-12-27 19:17:42
1.1 計算機語言的發(fā)展歷程
計算機的數(shù)學理論基礎是圖靈于1937年提出的圖靈機模型,而現(xiàn)代電子計算機的體系結構及實際計算模型則是來自馮·諾依曼1946年提出的“程序放入內存,順序執(zhí)行”的思想,因此,現(xiàn)在的計算機通常被稱為馮·諾依曼計算機。計算機語言的發(fā)展歷程也從此正式開始,計算機語言的使用人員也開始被稱為程序員。
1.1.1 計算機語言的演化
早期程序員們使用機器語言來進行編程運算,直接對以數(shù)字表示的機器代碼進行操作。后來為了便于閱讀,就將機器代碼以英文字符串來表示,于是出現(xiàn)了匯編語言。1956年首先在IBM公司的計算機上實現(xiàn)的由美國的計算機科學家巴科斯設計的FORTRAN語言,標志著高級語言的到來。FORTRAN語言以其簡潔性、高效性,成為此后幾十年科學和工程計算的主流語言,除FORTRAN語言以外,還有ALGOL60等科學和工程計算語言。隨著計算機應用的深入,產(chǎn)生了使用計算機來進行商業(yè)管理的需求,于是COBOL這類商業(yè)和行政管理語言出現(xiàn)了,并一直流行至今。計算機語言的演化過程如圖1.1所示。

圖1.1 計算機語言的演化
早期的計算機語言都是面向計算機專業(yè)人員,為了普及計算機語言,使計算機更為大眾化,出現(xiàn)了入門級的BASIC語言,至今BASIC語言仍然是絕大多數(shù)軟件開發(fā)人員接觸到的第一門計算機語言,同時也是最流行的計算機語言之一。
20 世紀70 年代初,結構化程序設計的思想孵化出兩種結構化程序設計語言,一種是PASCAL語言,另一種是C語言。這兩種語言的語法結構基本上是等價的,它們都是通過函數(shù)和過程等語言特性來構成結構化程序設計的基礎。但是其主要的區(qū)別在于PASCAL語言強調的是語言的可讀性,因此PASCAL語言至今成為學習算法和數(shù)據(jù)結構等軟件基礎知識的教學語言;而C語言強調的是語言的簡潔性及高效性,因此C語言成為之后幾十年中主流的軟件開發(fā)語言,高效性使C語言的地位已相當于一種“高級匯編語言”。
雖然面向對象的思想可以追溯到20世紀60年代,但是面向對象的思想被普遍接受還是得益于面向對象語言的功勞。在眾多的面向對象語言當中,最為突出的就是C++語言。C++語言是在80年代初由AT&T貝爾實驗室Bjarne Stroustrup在C語言的基礎上設計并實現(xiàn)的。C++語言繼承了C語言的所有優(yōu)點,如簡潔性和高效性,同時引入了面向對象的思想,如類、封裝、繼承、多態(tài)等。C++語言的這些特性使得C程序員在學習面向對象思想的同時不必放棄已有的知識和經(jīng)驗,原有的軟件積累同樣可以利用,同時面向對象的設計開發(fā)方法使得軟件的分析、設計、構造更加完美,因此,C++語言借助C語言的龐大程序員隊伍,成為主流的面向對象語言,并促使面向對象的思想被普遍接受。C++語言是一種混合型的面向對象語言。像任何人類的自然語言一樣,C++語言提供一種表達思想和概念的方法,當問題變得大而復雜時,使用C++語言來解決問題將會比使用其他語言層次清晰,因而更加容易、更加靈活。
1.1.2 計算機語言的發(fā)展史
計算機語言的發(fā)展歷史是人們不斷追求更高的模塊化、抽象和封裝的歷史。最初的抽象是以計算機為中心的:首先是將以0和1表示的二進制值抽象為字節(jié)、整型、長整型、浮點型等各種預定義的數(shù)據(jù)類型,然后,為了表達更復雜的數(shù)據(jù),出現(xiàn)了以結構表示的自定義數(shù)據(jù)類型。除了數(shù)據(jù)的抽象以外,計算機指令也有一個抽象過程:從表達式和語句到函數(shù)和過程。
結構化程序設計是以計算機為中心的抽象方式的體現(xiàn),它所提倡的數(shù)據(jù)和代碼分開的思想和計算機硬件的處理機制是相符的。20 世紀60 年代末開始出現(xiàn)的軟件危機迫使人們去尋找解決辦法,解決軟件危機的努力主要朝兩個方向發(fā)展,一是針對軟件開發(fā)過程的工程管理,提出軟件開發(fā)的生命周期模型,包括瀑布式模型、快速原型法、螺旋模型、噴泉模型等;一是從對軟件開發(fā)過程中分析、設計的方法的研究入手,提出了結構化程序設計方法,一時間,“算法+數(shù)據(jù)結構=程序”幾乎成為軟件開發(fā)的唯一準則。結構化程序設計方法從計算機發(fā)展角度來看是自然而然的,但是,抽象的過程應該是以現(xiàn)實世界的對象為中心的,于是面向對象的方法就走到前臺來,為軟件開發(fā)從分析建模到設計實現(xiàn)提供了統(tǒng)一的工具。
面向對象技術及建立在它的基礎之上的組件技術為徹底解決軟件危機鋪平了道路。原有的高級語言,如BASIC、PASCAL等結合可視化的界面編程技術、面向對象思想、數(shù)據(jù)庫技術,產(chǎn)生了所謂的第四代語言,如Visual Basic、Delphi等。Visual Basic的語言基礎是BASIC語言,Delphi的語言基礎是PASCAL語言,這兩種語言都是軟件開發(fā)人員所熟知的語言。Visual Basic和Delphi是目前應用軟件的主流開發(fā)工具。
人工智能一直是人們長期以來的夢想,從圖靈開始,半個多世紀以來,計算機科學家們對人工智能進行不懈的探索,這期間,有兩種主要的人工智能研究的語言工具,一種是LISP表處理語言,一種是PROGLOG語言。常有人稱二者為第五代語言,還不如稱其為“有邏輯推理功能的語言”更確切。
Internet誕生在60 年代末,此后的二十幾年一直是在緩慢地發(fā)展,直到90年代,HTML語言及HTML圖文瀏覽器Mosaic的出現(xiàn),使得Internet在此后十年間得到前所未有的發(fā)展。從HTML,到DHTML,再到XML,Web存儲格式語言為信息的發(fā)布、信息的交流起到了極大的作用。這些Web存儲格式語言與以往的計算機語言有很大的不同,它們是一種標記語言,被用來創(chuàng)建文檔結構。
在Web技術的發(fā)展過程中,真正可以稱為計算機語言并得到極大的普及的是Java語言,它由各個平臺解釋器來負責解釋執(zhí)行。Java是面向對象的網(wǎng)絡語言,其獨特的網(wǎng)絡特性包括:平臺獨立性、動態(tài)代碼下載、為多媒體功能而設計的多線程、為通過Internet快速傳送而設計的緊湊的代碼格式。如圖1.2所示體現(xiàn)了當前計算機語言的發(fā)展史。
在計算機語言的發(fā)展過程中,先后出現(xiàn)的語言至少有上百上千種,但是真正能普及應用的計算機語言卻是屈指可數(shù)的。一種計算機語言要能流行、普及,除了要有獨有的特色以外,還要切合當時的應用需求。計算機語言不應該只是思維放大工具,事實上,計算機語言已經(jīng)成為我們思維的一部分。計算機語言是朝著自然語言的方向發(fā)展的,它的最終目標應該是成為人類與計算機之間的很自然的交流工具,人可以通過這樣的語言將自己所具有的知識,或者自己的思想、情感、愿望等表達給計算機,這樣的語言可以稱為知識語言或智能語言。

圖1.2 計算機語言的發(fā)展史
- Hands-On Deep Learning with Apache Spark
- R Data Mining
- JavaScript實例自學手冊
- ROS機器人編程與SLAM算法解析指南
- Python Data Science Essentials
- Photoshop CS3圖像處理融會貫通
- Enterprise PowerShell Scripting Bootcamp
- Windows 7故障與技巧200例
- 數(shù)據(jù)清洗
- QTP自動化測試實踐
- Wireshark Revealed:Essential Skills for IT Professionals
- 工業(yè)機器人技術
- Outlook時間管理秘笈
- 嵌入式系統(tǒng)應用開發(fā)基礎
- 嵌入式系統(tǒng)原理與接口技術