版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-保存例程

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

簡(jiǎn)介

保存例程是指將程序員或用戶自定義程序作為例程保存。例程是系統(tǒng)經(jīng)常用到的程序,因此保存例程一般是將例程保存為一個(gè)模塊或組件,或是將例程作為一個(gè)庫(kù)函數(shù)保存到程序庫(kù)或函數(shù)庫(kù)中,主要是為了調(diào)用和管理方便。保存例程主要是為了例程的再次使用。

例程例程是指可多次使用的計(jì)算機(jī)程序或其一部分。這里程序一詞指低級(jí)語(yǔ)言程序。也有人把例程視為子例程的同義語(yǔ)。例程的概念幾乎是伴隨計(jì)算機(jī)程序而產(chǎn)生的。大多數(shù)程序都需要將其求解問題的結(jié)果輸出,這就有了例程。它用于啟動(dòng)輸出設(shè)備,將數(shù)據(jù)按其規(guī)定格式送至輸出設(shè)備,控制,監(jiān)督輸出操作等。又如,用戶常常通過提示指令(命令)的執(zhí)行順序,或通過提示結(jié)果,對(duì)程序進(jìn)行檢查,這可以用跟蹤例程來完成。最常用的服務(wù)性例程有匯編例程、編輯例程、輸入例程、故障程序診斷例程、分類例程。一個(gè)較大的軟件系統(tǒng)往往由若干個(gè)例程組成。比如操作系統(tǒng)可由諸如文件管理例程、資源管理例程、作業(yè)調(diào)度例程、輸入輸出例程、時(shí)鐘管理例程、同步出口例程、錯(cuò)誤分析出口例程等組成。

例程可分為可復(fù)用例程、可再入例程、遞歸例程等。大多數(shù)例程一經(jīng)裝入就可執(zhí)行多次,此類例程稱為可復(fù)用例程。可再入例程是指本例程執(zhí)行尚未完成,它又可再次進(jìn)入。一個(gè)可再入例程可同時(shí)為多個(gè)計(jì)算機(jī)程序使用。在具有多道管理功能的操作系統(tǒng)控制下,語(yǔ)言編譯程序應(yīng)是再入式的。遞歸例程在程序設(shè)計(jì)中也是經(jīng)常需要的。這種例程可直接或間接調(diào)用自身。在使用遞歸例程時(shí),必須將使用過程中尚未完成的狀態(tài)保存起來1。

保存例程的方式組件組件就是一些可重用的對(duì)象開發(fā)人員可以方便地將這些對(duì)象組合到更大的程序中而不用 考慮對(duì)象本身的實(shí)現(xiàn)細(xì)節(jié)。以下是一些組件常見其他定義:組件是一個(gè)獨(dú)立的可傳遞的操作的集合;組件是軟件開發(fā)中一 個(gè)可替換的軟件單元,它封裝了設(shè)計(jì)決策,并作為一個(gè)大單元的一部分和其它組件組合起 來;組件是由一些對(duì)象類組成的物理意義上的包;組件是具有特定功能,能夠跨越進(jìn)程的 邊界實(shí)現(xiàn)網(wǎng)絡(luò)、語(yǔ) 言、應(yīng)用程序、開發(fā)工具和操作系統(tǒng)的“即插即用”的獨(dú)立的對(duì)象;組件在通常意義上是指任何可被分離出來,具有標(biāo)準(zhǔn)化的和可重用性的公開接口的軟件 ( 子 ) 系統(tǒng)2。

模塊模塊是Fortran90新引進(jìn)的一種程序單元,它包含數(shù)據(jù)、例程(函數(shù)和子程序統(tǒng)稱為例程) 及例程接口等要素的聲明,其功能比Fortran77數(shù)據(jù)塊程序單元來得強(qiáng)大。通常,模塊一經(jīng)別的程序單元引用,當(dāng)中的數(shù)據(jù)和例程就可訪問了;當(dāng)然,模塊要素的可見性亦可限制在模塊內(nèi),以提供數(shù)據(jù)抽象,編寫安全、可移植的程序代碼。從這個(gè)意義上說,模塊類似于C++中的類,是用來模擬面向?qū)ο蟪绦蛟O(shè)計(jì)主要特性的基礎(chǔ)框架。如果能運(yùn)用模塊在Fortran與C /C ++間交換數(shù)據(jù)和例程,則會(huì)給實(shí)際混合計(jì)算工程的開發(fā)和維護(hù)帶來極大便利,使兩者的混合編程跨上一個(gè)新臺(tái)階。軟件模塊(Module)是一套一致而互相有緊密關(guān)連的軟件組織。它分別包含了程序和數(shù)據(jù)結(jié)構(gòu)兩部分?,F(xiàn)代軟件開發(fā)往往利用模塊作合成的單位。模塊的接口表達(dá)了由該模塊提供的功能和調(diào)用它時(shí)所需的元素。模塊是可能分開地被編寫的單位。這使他們可再用和允許廣泛人員同時(shí)協(xié)作、編寫及研究不同的模塊。

庫(kù)函數(shù)庫(kù)函數(shù)(Library function)是把函數(shù)放到庫(kù)里,供別人使用的一種方式。方法是把一些常用到的函數(shù)編完放到一個(gè)文件里,供不同的人進(jìn)行調(diào)用。調(diào)用的時(shí)候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。函數(shù)庫(kù):函數(shù)庫(kù)是由系統(tǒng)建立的具有一定功能的函數(shù)的集合。庫(kù)中存放函數(shù)的名稱和對(duì)應(yīng)的目標(biāo)代碼,以及連接過程中所需的重定位信息。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫(kù)。