網(wǎng)站建設編程工具的發(fā)展歷程以及面向過程的編程,計算機對當今世界的影響力不言而喻,而產(chǎn)生這種巨大的影響力的關鍵因素無疑是運行在各種計算機(個人計算機、服務器、智能手機)中的網(wǎng)站建設編程工具。我們都知道,計算機系統(tǒng)是由編程工具和硬件組成的,關于計算機網(wǎng)站建設編程工具和硬件的定義,
網(wǎng)站建設公司這里就不再贅述了?,F(xiàn)在我們通過另外一個視角來了解計算機(更準確地說是網(wǎng)站建設編程工具)的意義。

在一次接受采訪的過程中,史蒂夫·保羅·喬布斯(Steve Paul Jobs)有一段關于計算機的描述:“我認識到,人類擅長制造工具,工具可以提高工作效率,在我看來計算機就是大腦中的‘自行車’,是我們超越自身的工具。”喬布斯的這段話與其說是贊揚計算機,不如說是贊揚運行在計算中的程序,也就是網(wǎng)站建設編程工具。我們都知道,雖然網(wǎng)站建設編程工具的運行離不開硬件的支持,但是能讓計算機成為“智力自行車”,還得靠靈活多變、功能豐富的網(wǎng)站建設編程工具。嚴格意義上的程序是20世紀50年代隨著電子計算機的發(fā)明而產(chǎn)生的。而更廣泛意義上的程序則產(chǎn)生得更早,例如二戰(zhàn)時期德國軍隊廣泛使用的“恩尼格瑪密碼機”。這種密碼機是一系列使用相似的轉子機械加密、解密機器的統(tǒng)稱,它使用機械和電子結合的方式實現(xiàn)了加密和解密的算法。恩尼格瑪密碼機雖然并不是嚴格意義上的程序,但是它的運行流程卻體現(xiàn)出了程序的本質。這種密碼機雖然在當時取得了巨大的成就,但是它的程序是靠硬件來實現(xiàn)的。也就是說,要想改變加密的算法,必須改動硬件。這對于已經(jīng)大量裝備的產(chǎn)品來說幾乎是不可能實現(xiàn)的,因此在二戰(zhàn)期間不可避免地被芬蘭人雷杰夫斯基通過反復嘗試的方法成功破解。
在計算機發(fā)明出來后,程序脫離了硬件的限制而成為可以自由改動的網(wǎng)站建設編程工具。這是一個偉大的進步,通過網(wǎng)站建設編程工具和硬件的解耦,網(wǎng)站建設編程工具成了計算機的“靈魂”,計算機的功能由運行在其中的網(wǎng)站建設編程工具所定義。
自從計算機被發(fā)明出來后,它被廣泛地應用到各個行業(yè)中。從早期火炮的彈道計算到現(xiàn)在無所不在的移動應用,這期間網(wǎng)站建設編程工具發(fā)生了天翻地覆的變化,在從簡單到復雜,從單機到互聯(lián)的進化過程中,有兩個核心問題始終貫穿其中,那就是如何描述問題及解決問題。
網(wǎng)站建設關于面向過程的編程
在計算機發(fā)展的早期,計算機的應用還不廣泛,大部分計算機都是用于解決單一的問題,計算機系統(tǒng)(包括網(wǎng)站建設編程工具和硬件)都是針對單一問題而設計的。這就意味著硬件的用途較單一,不能應用到其他領域,同樣,網(wǎng)站建設編程工具也是專用的。而網(wǎng)站建設編程工具的“專用”有兩層含義:首先,網(wǎng)站建設編程工具是為了解決單一問題而設計的,和硬件一樣,并不能應用到其他領域;其次,網(wǎng)站建設編程工具的設計依賴于具體的硬件,并不能移植到其他硬件系統(tǒng)中。
在現(xiàn)在看來,這種方式的網(wǎng)站建設編程工具有點不可思議。程序必須直接和CPU打交道,即編寫的程序必須實時從CPU中讀取數(shù)據(jù),同時把運行的指令發(fā)送到CPU中。由于網(wǎng)站建設編程工具直接和CPU打交道,并且早期的CPU沒有抽象的標準指令集,因此當時的網(wǎng)站建設編程工具都是針對特定的CPU設計的,幾乎沒有可移植性。
當然,這種方式的網(wǎng)站建設編程工具也并不是一無是處。因為針對的是單一問題,并且硬件的設計是針對具體問題的,所以當時的計算機系統(tǒng)中的硬件和網(wǎng)站建設編程工具都可以針對需要解決的問題進行優(yōu)化。同時在問題的描述上,對于當時的網(wǎng)站建設編程工具并不是什么難題。以早期火炮的彈道計算機為例,它的問題描述就很簡單,就是計算火炮射擊時的角度。火炮射擊的原理如圖2.1所示

。
了解火炮原理的人都知道,火炮在射擊時,炮彈受重力的影響并不是按照一條直線飛行,實際上炮彈的飛行軌跡是—條拋物線。因此在火炮射擊時并不是直接瞄準目標,而是把炮口上仰,上仰的角度是根據(jù)炮彈出膛的速度和目標的距離計算出來的。彈道計算機就是在火炮瞄準時,根據(jù)目標的距離計算出火炮的仰角。因此彈道計算的問題描述很直接,就是根據(jù)目標的距離和炮彈的出膛速度,當然還包括大氣溫度、風向、風力等影響炮彈使用的各種因素,計算出火炮的仰角。而解決問題的核心就是拋物線的算法。
彈道計算程序是早期軟件的典型形式,那時候程序功能很單一,也很簡單,要解決的問題也是單一問題。所以那時程序的典型形式是使用數(shù)據(jù)結構描述程序的輸入,使用一種或多種算法來計算輸出。對于這類程序,尼古拉斯·沃斯(Niklaus Wirth)曾經(jīng)給出了很精辟的定義:數(shù)據(jù)結構+算法=程序。
隨著計算機價格的逐步降低,人們開始嘗試著把計算機應用到更多的領域。不同領域,對軟件的要求也不同。傳統(tǒng)的根據(jù)輸入計算輸出的程序被組合成更復雜的軟件系統(tǒng)。在這個過程中,代碼的可維護性、可讀性和可重用性這些非功能性需求也越來越受到重視。由于計算邏輯的日益復雜,原先的順序程序設計已不能適應復雜的程序開發(fā)。為了應對更復雜的問題域,迪杰斯特拉(E.W.Dijikstra)提出了結構化程序設計的設計思想。
網(wǎng)站建設結構化程序設計采用以模塊功能和處理過程為中心的設計原則,從而能設計出結構清晰、易讀、易于擴展的程序。為了能夠應對日益復雜的程序,結構化程序設計使用了基本的順序結構、選擇結構和循環(huán)結構來控制程序的執(zhí)行流程,同時把算法封裝到子函數(shù)中,從而實現(xiàn)執(zhí)行流程和算法的分離。在那個年代,算法是軟件最核心的“價值和資產(chǎn)”。執(zhí)行流程和算法的分離就意味著可以對算法單獨封裝和重用。一個經(jīng)過使用和驗證的算法,可以很快地移植到其他程序中。算法代碼的重用對軟件公司至關重要,不但可以通過重用算法有效地降低開發(fā)成本,而且可以把成熟的算法單獨打包出售。
網(wǎng)站建設結構化程序設計是對面向過程程序設計的改進,也屬于面向過程程序設計的一種,其編程思想是以過程為中心,強調解決問題的流程和算法。一般而言,結構化編程都被應用到單一應用程序中,在設計時,由于只需要解決單一問題,程序員可以把全部精力都放在解決問題的算法和流程上。好了,
深圳網(wǎng)站建設公司本文關于“編程工具的發(fā)展歷程以及面向過程的編程”的知識就分享到這里,謝謝關注,博納網(wǎng)絡編輯整理。