WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
計算機程序
計算機程序或者軟件程序(通常簡稱"程序")是指一組指示計算機每一步動作的指令,通常用某種程序設計語言編寫,運行于某種目標體系結構上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用于指導懂漢語的人(體系結構)來做這個菜。 通常,計算機程序要經(jīng)過編譯和鏈接而成為一種人們不易理解而計算機理解的格式,然后運行。未經(jīng)編譯就可運行的程序通常稱之為腳本程序。
程序的運行[ ]
為了一個程序運行,計算機加載程序代碼,可能還要加載數(shù)據(jù),從而初始化成一個開始狀態(tài),然后調用某種啟動機制。在最低層上,這些是由一個引導序列開始的。
在大多數(shù)計算機中,操作系統(tǒng)例如Windows等,加載并且執(zhí)行很多程序。在這種情況下,一個計算機程序是指一個單獨的可執(zhí)行的映射,而不是當前在這個計算機上運行的全部程序。
程序和數(shù)據(jù)[ ]
- 程序已經(jīng)被定義了。如何定義數(shù)據(jù)呢?數(shù)據(jù)可以被定義為被程序處理的信息。當我們考慮到整個計算機系統(tǒng)時,有時程序和數(shù)據(jù)的區(qū)別就不是那么明顯了。中央處理器有時有一組微指令控制硬件,數(shù)據(jù)可以是一個有待執(zhí)行的程序(參見腳本編程語言),程序可以編寫成去編寫其它的程序;所有這些例子都使程序和數(shù)據(jù)的比較成為一種視角的選擇。有人甚至斷言程序和數(shù)據(jù)沒有區(qū)別。
- 編寫一個程序去生成另外一個程序的過程被稱之為原編程(Metaprogramming)。它可以被應用于讓程序根據(jù)給定數(shù)據(jù)生成代碼。單一一個程序可能不足以表示給定數(shù)據(jù)的所有方面。讓一個程序去分析這個數(shù)據(jù)并生成新的程序去處理數(shù)據(jù)所有的方面可能會容易一些。Lisp就是一例支持這種編程模式的程序語言。
- 在神經(jīng)網(wǎng)絡里儲存的權重是一種數(shù)據(jù)。正是這些權重數(shù)據(jù),跟網(wǎng)路的拓撲結構一起,定義了網(wǎng)絡的行為。人們通常很難界定這些數(shù)據(jù)到底表示什么或者它們是否可以由程序來代替。這個例子以及跟人工智能相關的其它一些問題進一步考驗程序和數(shù)據(jù)的區(qū)別。
程序算法[ ]
算法指解決某個問題的嚴格方法,通常還需輔以某種程度上的運行性能分析。算法可以是純理論的,也可以由一個計算機程序實現(xiàn)。理論算法通常根據(jù)復雜性分為不同類別;實現(xiàn)的算法通常經(jīng)過頗析(Profiling)以測試其性能。請注意雖然一個算法在理論上有效可行,但是一個糟糕的實現(xiàn)仍會浪費寶貴的計算機資源。(更詳細信息,參見算法信息論,Algorithmic Information Theory)
程序開發(fā)[ ]
編寫程序是以下步驟的一個往復過程:編寫新的源代碼,測試、分析和提高新編寫的代碼以找出語法和語義錯誤。從事這種工作的人叫做程序設計員。由于計算機的飛速發(fā)展,編程的要求和種類也日趨多樣,由此產(chǎn)生了不同種類的程序設計員,每一種都有更細致的分工和任務。軟件工程師和系統(tǒng)分析員就是兩個例子?,F(xiàn)在,編程的長時間過程被稱之為“軟件開發(fā)”或者軟件工程。后者也由于這一學科的日益成熟而逐漸流行。
因此,如今程序設計員可以指某一領域的編程專家,也可以泛指軟件公司里編寫一個復雜軟件系統(tǒng)里某一塊的一般程序員。一組為某一軟件公司工作的程序員有時會被指定一個程序組長或者項目經(jīng)理,用以監(jiān)督項目進度和完成日期。大型軟件通常經(jīng)歷由系統(tǒng)設計師的掌握的一個長時間的設計階段,然后才交付給開發(fā)人員。牛仔式的編程(未經(jīng)詳細設計)是不為人所齒的。
兩種當今常見的程序開發(fā)方式之一是項目組開發(fā)方式。使用這種方式項目組里每一個成員都能對項目的進行發(fā)表意見,而由其中的某一個人協(xié)調不同意見。這樣的項目組通常有10個左右的成員,這樣做是為了便于管理。第二種開發(fā)方式是結對開發(fā)。