複製鏈接
請複製以下鏈接發送給好友

指令式編程

鎖定
命令式編程(英語:Imperative programming),是一種描述計算機所需作出的行為的編程典範。幾乎所有計算機的硬件工作都是命令式的;幾乎所有計算機的硬件都是設計來運行機器碼,使用命令式的風格來寫的。較高階的命令式編程語言使用變量和更復雜的語句,但仍依從相同的典範。雖非計算機程序,但與命令式編程有相似的風格:每步都是指令,有形的世界控制情況。因為命令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現於硬件,所以大部分的編程語言都是命令式的。
中文名
命令式編程
外文名
Imperative programming

指令式編程語句

大部分的高級語言都支持四種基本的語句:
  1. 運算語句一般來説都表現了在存儲器內的數據進行運算的行為,然後將結果存入存儲器中以便日後使用。高階命令式編程語言更能處理複雜的表達式,可能會產生四則運算和函數計算的結合。
  2. 循環語句容許一些語句反覆運行數次。循環可依據一個默認的數目來決定運行這些語句的次數;或反覆運行它們,直至某些條件改變。
  3. 條件分支語句容許僅當某些條件成立時才運行某個區塊。否則,這個區塊中的語句會略去,然後按區塊後的語句繼續運行。
  4. 無條件分支語句容許運行順序轉移到程序的其他部分之中。包括跳躍(在很多語言中稱為Goto)、副程序和Procedure等。
循環、條件分支和無條件分支都是控制流程。
早期的命令式編程語言都是計算機本身的機械語言。在這些語言中,指示非常簡單,令硬件的運行更容易,卻阻礙了複雜程序的設計。1954年開始開發的FORTRAN,是首個在複雜程序的設計中除掉機器碼的編程語言。它是編譯型的編程語言,容許命名變量、複雜的表達式、副程序和其他功能,這些功能在命令式語言中都非常普遍。後來的二十年中,可以看到大量的其他高階命令式編程語言出現。在1980年後,面向對象編程有迅速的發展;面向對象編程語言均有着命令式的風格,但增添了支持對象的功能。

指令式編程命令式和程序式編程

程序編程是一種命令式編程,其中程序是從一個或多個過程(也稱為子程序或函數)構建的。這些術語通常用作同義詞,但程序的使用會對命令式程序的出現以及它們的構造方式產生巨大影響。重度過程編程是一種結構化編程形式,其中狀態更改本地化為過程或僅限於顯式參數和從過程返回。從20世紀60年代開始,結構化編程和模塊化編程一般被推廣為提高命令性程序的可維護性和整體質量的技術。面向對象編程背後的概念試圖擴展這種方法。
程序編程可以被視為朝着聲明性編程邁出的一步。程序員通常可以簡單地通過查看過程(和相關注釋)的名稱,參數和返回類型來判斷特定過程應該做什麼,而不必查看它如何實現其結果的細節。同時,完整的程序仍然是必不可少的,因為它在很大程度上修復了要執行的語句及其執行順序。

指令式編程命令式和麪向對象語言的歷史

最早的命令式語言是原始計算機的機器語言。在這些語言中,指令非常簡單,這使得硬件實現更容易,但阻礙了複雜程序的創建。 FORTRAN由John Backus在1954年開始的國際商業機器公司(IBM)開發,是第一種在創建複雜程序時消除機器代碼所帶來障礙的主要編程語言。 FORTRAN是一種編譯語言,允許命名變量,複雜表達式,子程序以及命令式語言中常見的許多其他功能。接下來的20年裏,許多其他主要的高級命令式編程語言得到了發展。在20世紀50年代末和60年代,ALGOL的開發是為了使數學算法更容易表達,甚至可以作為某些計算機的操作系統目標語言。 MUMPS(1966)將命令式範式帶到邏輯極端,完全沒有任何陳述,完全依賴於命令,甚至使IF和ELSE命令彼此獨立,只能通過名為$的內部變量連接。測試。 COBOL(1960)和BASIC(1964)都試圖使編程語法看起來更像英語。在20世紀70年代,Pascal由Niklaus Wirth開發,C由Dennis Ritchie在貝爾實驗室工作時創建。 Wirth繼續設計Modula-2和Oberon。為了滿足美國國防部的需求,Jean Ichbiah和霍尼韋爾的一個團隊在經歷了為期4年的項目定義語言要求後,於1978年開始設計Ada。該規範於1983年首次發佈,並於1995年,2005年和2012年進行了修訂 [1] 
20世紀80年代,對面向對象編程的興趣迅速增長。這些語言在風格上勢在必行,但增加了支持對象的功能。 20世紀的最後二十年看到了許多這樣的語言的發展。 Smalltalk-80最初由Alan Kay於1969年構思,於1980年由施樂帕洛阿爾託研究中心(PARC)發佈。借鑑另一種面嚮對象語言中的概念--Simula(被認為是世界上第一個面向對象的編程語言,於20世紀60年代開發)-Bjarne Stroustrup設計了C ++,一種基於C語言的面嚮對象語言.C ++的設計始於1979年第一次實施於1983年完成。在20世紀80年代末和90年代,基於面向對象概念的着名命令式語言是由Larry Wall於1987年發佈的Perl; Python,由Guido van Rossum於1990年發佈; Visual Basic和Visual C ++(包括Microsoft基礎類庫(MFC)2.0),分別於1991年和1993年由Microsoft發佈; PHP,由Rasmus Lerdorf於1994年發佈; Java由Sun Microsystems於1995年發佈,JavaScript由Brendan Eich(Netscape)發佈,Ruby由Yukihiro“Matz”Matsumoto於1995年發佈。微軟的.NET Framework(2002)在其核心是必不可少的,其主要內容也是如此目標語言,VB.NET和在其上運行的C#;但微軟的F#,一種功能語言,也在它上面運行。
參考資料
  • 1.    王勝, 尹凌鵬. 複合循環指令的組合式編程方法[J]. 機械工程師, 2013(2):21-23.