電腦程式

電腦程式

電腦程式或者軟體程式(通常簡稱程式)是指一組指示電腦每一步動作的指令,通常用某種程式語言編寫,運行于某種目標體系結構上。

  • 中文名稱
    電腦程式
  • 外文名稱
    Computer program
  • 又名
    軟體
  • 類型
    電腦動作的指令

基本介紹

在《電腦軟體保護條例》中的定義為:指為了得到某種結果而可以由電腦等具有信息處理能力的裝置執行的代碼化指令序列,或者可被自動轉換成代碼化指令序列的符號化指令序列或者符號化語句序列。
電腦程式是有一系列的機器指令組成的,而指令就是要電腦執行某種操作的命令。程式=演算法+資料結構+程式設計方法+語言工具和環境
  從電腦組成層次結構來說,電腦的指令分:
  微指令:是微程式級的命令,它屬于硬體。
宏指令:是由若幹條機器指令組成的軟體指令,它屬于軟體。
  機器指令:介于微指令和宏指令之間,通常簡稱為指令,每一條指令可以完成一個獨立的算術運算或邏輯運算操作。
  電腦程式就是指 電腦可以識別運行的指令集合。

電腦程式

腳本程式

打個比方,一個程式就像一個用漢語(程式語言)寫下的紅燒肉菜譜(程式),用于指導懂漢語的人(體系結構)來做這個菜。 通常,電腦程式要經過編譯和連結而成為一種人們不易理解而電腦理解的格式,然後運行。未經編譯就可運行的程式通常稱之為腳本程式

程式運行

為了一個程式運行,電腦載入程式代碼,可能還要載入資料,從而初始化成一個開始狀態,然後調用某種啓動機製。在最低層上,這些是由一個引導序列開始的。
  在大多數電腦中,作業系統例如Windows等,載入並且執行很多程式。在這種情況下,一個電腦程式是指一個單獨的可執行的對應,而不是當前在這個電腦上運行的全部程式。

馮諾依曼

在一台基于最常見的馮諾依曼體系結構(又稱Harvard Architecture)的電腦上,程式從某種外部設備,通常是硬碟,被載入到電腦裏。 如果電腦選擇馮諾依曼體系結構,那麽程式就被載入入記憶體。 指令序列順序執行,直到一條跳轉或轉移指令被執行,或者一個中斷出現。所有這些指令都會改變指令暫存器的內容。
  基于這種體系電腦如果沒有程式的支持將無法工作。一個電腦程式是一系列指令的集合。
  程式裏的指令都是基于機器語言;程式通常首先用一種電腦程式語言編寫,然後用編譯程式或者解釋執行程式翻譯成機器語言。 有時,程式也可以用匯編語言編寫,匯編語言實質就是表示機器語言的一組記號-在這種情況下,用于翻譯的程式叫做匯編程式(Assembler)。

程式資料

程式已經被定義了。如何定義資料呢?資料可以被定義為被程式處理的信息。當我們考慮到整個電腦系統時,有時程式和資料的區別就不是那麽明顯了。中央處理器有時有一組微指令控製硬體,資料可以是一個有待執行的程式(參見腳本程式語言),程式可以編寫成去編寫其它的程式;所有這些例子都使程式和資料的比較成為一種視角的選擇。有人甚至斷言程式和資料沒有區別。
  編寫一個程式去生成另外一個程式的過程被稱之為原編程(Metaprogramming)。它可以被套用于讓程式根據給定資料生成代碼。單一一個程式可能不足以表示給定資料的所有方面。讓一個程式去分析這個資料並生成新的程式去處理資料所有的方面可能會容易一些。Lisp就是一例支持這種編程模式的程式語言。
  在神經網路裏儲存的權重是一種資料。正是這些權重資料,跟網路的拓撲結構一起,定義了網路的行為。人們通常很難界定這些資料到底表示什麽或者它們是否可以由程式來代替。這個例子以及跟人工智慧相關的其它一些問題進一步考驗程式和資料的區別。

程式演算法

演算法指解決某個問題的嚴格方法,通常還需輔以某種程度上的運行性能分析。演算法可以是純理論的,也可以由一個電腦程式實現。理論演算法通常根據復雜性分為不同類別;實現的演算法通常經過頗析(Profiling)以測試其性能。請註意雖然一個演算法在理論上有效可行,但是一個糟糕的實現仍會浪費寶貴的電腦資源。(更詳細信息,參見演算法資訊理論,Algorithmic Information Theory)

程式開發

編寫程式是以下步驟的一個往復過程:編寫新的原始碼,測試、分析和提高新編寫的代碼以找出文法和語義錯誤。從事這種工作的人叫做程式設計員??趨多樣,由此產生了不同種類的程式設計員,每一種都有更細致的分工和任務。軟體工程師和系統分析員就是兩個例子。現在,編程的長時間過程被稱之為“軟體開發”或者軟體工程。後者也由于這一學科的日益成熟而逐漸流行。
  因此,如今程式設計員可以指某一領域的編程專家,也可以泛指軟體公司裏編寫一個復雜軟體系統裏某一塊的一般程式員。一組為某一軟體公司工作的程式員有時會被指定一個程式組長或者項目經理,用以監督項目進度和完成日期。大型軟體通常經歷由系統設計師的掌握的一個長時間的設計階段,然後才交付給開發人員。牛仔式的編程(未經詳細設計)是不為人所齒的。
  兩種當今常見的程式開發方式之一是項目組開發方式。使用這種方式項目組裏每一個成員都能對項目的進行發表意見,而由其中的某一個人協調不同意見。這樣的項目組通常有10個左右的成員,這樣做是為了便于管理。第二種開發方式是結對開發。

相關詞條

其它詞條