當前位置:
首頁 > 最新 > 你真的知道程序和軟體都是什麼嗎?

你真的知道程序和軟體都是什麼嗎?

雖然計算機稱作為「電腦」,但事實上,它只是一台快速記性指令的機器,這些機靈非常的簡單(包括算術運算、邏輯運算、數據傳輸和跳轉指令),但他們的組合卻能完成非常複雜的任務。要如兩根毛線針雖然上針、下針、收針、方針4個步驟操作,但根據不同的口訣卻可以織出各色花樣的毛衣,此口訣就是織花樣程序。所以,程序是計算機指令的序列,編輯程序就是為計算機安排指令序列。把程序裝入計算機內存,按順序逐條執行,全部執行完畢就達到了所需的要求。下面給大家介紹下程序的特性。

1、 程序的動態與靜態屬性

程序實際是一個計算機語言描述的某一問題解決步驟,它的表示是靜態的。人們的最終目的還是要他解決問題,所以程序必須能夠運行,否則將毫無作用,即程序是知識一個計算機動態執行的序列。正因為如此,編寫就是為計算機寫行動計劃,形式上必須符合程序設計語言的規範,內容上要能得到計算結果。

2程序是由序列語言抽象的符號表達

機器碼是機器可以直接「讀懂」的語言,可以直接表示程序,但編寫起來很麻煩,一整版32位1和0的組合,很難直接讀懂,並且極易出錯。即使編出二進位程序也要通過穿孔或其他手段才能「裝入」內存,既要在符號和電信號之間進行轉換。於是出現了用八進位、十六進位數進行變成。相比之下,這樣做要比較容易閱讀,也容易進行轉換。經過進一步的發展,將操作碼變成英文字母后就出現了彙編語言,此時的「轉換」就成了彙編序做「翻譯」。一般來說,可把符號表示翻譯成機器具體執行的指令集,他們是同一程序的兩種不同表示,即完成了抽象到具體的映射。此後,又出現了高級語言,完全不需要考慮機器指令和內存存儲安排,只有變數、運算符、表達式、過程、函數,通過編譯程序將其翻譯為機器碼程序。程序員的工作就是把要計算的問題轉換成高級程序的表達式、語句、過程函數、對象,而不是機器指令序列。

3、 程序是對數據施行演算法的過程

按程序設計語言所提供的符號和語言寫出程序,可同時表達出語義,即該程序要做的計算。執行後,可改變(加工)數據或提供一組動作。對一組數據進行排序雖然沒有改變數據的值,但改變了它們之間的順序(結構)關係,因此需要有一個計算的辦法,即演算法。演算法可使數據由初始狀態變為終止狀態。按解題的演算法排定順序時,同樣的誰改變而已用不同的演算法,例如排序達到同一目的的(功能),但所需的內存開銷大不相同,即性能各有優劣。

數據一般用於描述事物的屬性和狀態,人們往往因不善設計數據結構導致程序質量低劣。演算法和數據結構是軟體技術中最基本的技術。

面向對象程序可用於程序對象之間發送消息以完成計算,每個對象都有屬性和方法。屬性是描述對象狀態的數據;方法是描述演算法的動作指令集,惡意改變數據的狀態。發送消息就是傳輸數據並啟動方法,執行後,各對象從初始狀態變成終止狀態以完成計算,而底層還是演算法加工數據。面向對象語言提供抽象層次更高的對象概念。

4、 程序是分層嵌套的

利用底層的終端指令,一個程序執行到某個中間位置就暫停執行(掛起)轉而執行另一個子程序,待子程序執行完後返回,又恢復到原程序執行,完畢後體積。這種秦光反應到程序結構中是層層嵌套的結構,如以下圖片:

程序嵌套結構

顯然,內嵌的子程序是在主程序的「環境」下執行,可以利用住程序聲明的數據資源。再次,如果把上面的圖片中「程序調用圖」的3個模塊逆時針旋轉90度,就可得到「計算機體系結構圖」(圖片B區域),兩者具有某種相似性。在上面圖片中,程序P調用程序A,程序A又調用程序,最後程序P利用A、B所提供的服務完成自己的計算任務。在圖片中,操作系統所提供的服務實現自己的功能,在操作系統之上的使用系統軟體,如資料庫系統等,利用操作系統所系統的服務實現自己的功能;位於最高層的應用軟體用操作系統和使用系統軟體提供的服務實現自己的功能。這種程序的結構是嵌套的,程序的功能是疊加的。

此外,還可以廣義地理程序,即程序是信息。一般來說,信息只有大小而無形狀,信息可用多美(聲、文、圖)表示,信息的傳遞要藉助某種介質(媒體)。程序作為商品要以有形的介質作為載體進行交易,故稱為軟體(Software)。軟體有以下一些特性:

·軟體是功能。性能相對完備的程序系統。程序就是軟體,但軟體不僅僅是程序,還包括說明其功能、性能的說明性信息,例如使用維護說明、指南、培訓教材等。

·軟體是具有使用性能軟設備。人們編製一個應用程序,可以解決自己的問題,但不能稱之為應用軟體。使用良好並給他人的程序則可成為應用軟體。

·軟體是信息商品。既然是商品則不僅要有功能、性能要求,還要有質量、成本、交貨期、使用維護承諾等要求。軟體的開發者一般不是該軟體的使用者;軟體的開發、生產、銷售組成了巨大的信息產業。軟體不用與傳統產業,研製開發是其主要的生產方式,而大批量生產則是十大容易的工作,製造成本極低。

軟體是極具競爭性的商品,投入的資金主要是人工費,研製時間一長,隨著成本的增加就會使軟體變得毫無競爭力。在開發軟體的過程中,技術先進固然重要,但更重要的是科學管理,應按軟體工程的方法製作軟體。利用軟體工具開發軟體、管理項目是當今軟體開發的基本模式。這種管理和計算相互交織,很難將技術和管理截然分開,。例如軟體配製管理系統是一個管理軟體,它本省又成為重用、集成等軟體技術的基礎。將以軟體工程方法作為主線介紹軟體技術。

軟體是只有過時而無「磨損」的商品;硬體產品都有使用壽命。軟體和硬體不用,用得越多其中的錯誤清楚得越乾淨,所以軟體只有過時而無用壞一說。所謂過時通常是指軟體所在的硬體環境及配套軟體升級,導致軟體做相應的升級。例如,在286PC上用Word3.0文字處理軟體進行文字編輯並沒有什麼打的缺陷,但是人們更願意使用新版本的Word軟體


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 林小白 的精彩文章:

90後四小花旦,你比較喜歡誰?

TAG:林小白 |