指令式編程

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

語句

大部分的高級語言都支持四種基本的語句:

運算語句一般來說都表現了在存儲器內的數據進行運算的行為,然後將結果存入存儲器中以便日後使用。高階命令式程式語言更能處理複雜的表達式,可能會產生四則運算和函式計算的結合。

循環語句容許一些語句反覆運行數次。循環可依據一個默認的數目來決定運行這些語句的次數;或反覆運行它們,直至某些條件改變。

條件分支語句容許僅當某些條件成立時才運行某個區塊。否則,這個區塊中的語句會略去,然後按區塊後的語句繼續運行。

無條件分支語句容許運行順序轉移到程式的其他部分之中。包括跳躍(在很多語言中稱為Goto)、副程式和Procedure等。

1.

運算語句

2.

循環語句

3.

條件分支語句

4.

無條件分支語句

循環、條件分支和無條件分支都是控制流程。

早期的命令式程式語言都是計算機本身的機械語言。在這些語言中,指示非常簡單,令硬體的運行更容易,卻阻礙了複雜程式的設計。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年進行了修訂 。

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#,一種功能語言,也在它上面運行。

相關詞條

熱門詞條

聯絡我們