国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Ada語言可重用性技術(shù)方法研究

2014-02-17 17:47:24張偉欣俞帆
電腦知識與技術(shù) 2014年2期
關(guān)鍵詞:衛(wèi)星

張偉欣 俞帆

摘要:Ada屬于一種強類型通用程序設(shè)計語言,它比較適用于大型的復雜軟件系統(tǒng),尤其是實時和嵌入式系統(tǒng)。現(xiàn)在我國很多衛(wèi)星型號軟件都采用Ada語言進行開發(fā)。由于衛(wèi)星使用的芯片代碼區(qū)容量有限,為了實現(xiàn)更多的功能,提高衛(wèi)星的使用率,對于代碼的復用顯得尤為重要。研究Ada語言的可重用性技術(shù)方法很有必要,通過對Ada語言重用性技術(shù)方法研究以及其實際應(yīng)用介紹,能夠更好的幫助軟件開發(fā)人員以盡量少的代碼來實現(xiàn)盡量多功能。

關(guān)鍵詞:衛(wèi)星;Ada語言;可重用性;類屬單元;C++綁定

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)02-0308-03

自從問世以來,Ada得到了世界各國的廣泛重視,已相繼成為美國、歐洲主要西方國家的軍用標準和國家標準,我國也于1992年制定為了國家標準語言(GJB1383-92)。可以把Ada語言視為現(xiàn)代程序設(shè)計語言的一個里程碑和頂峰,Ada語言在很多方面的評估上都要優(yōu)于其他編程語言,如對風險程度的評估、生存期費用的評估、可維護性以及可擴展性的評估、可用性和可靠性的評估、效率的評估、能力的評估等六個方面,它的評分時優(yōu)于現(xiàn)在比較常用的C、C++、FORTRAN、PASCAL等主要流行編程語言。

Ada語言的特點主要有:可讀性好、允許分離編譯、支持抽象和信息隱藏、促進軟件的重用、實施強類型機制、提供多任務(wù)功能、具有異常處理能力等。因Ada在上述方面具有明顯優(yōu)點,所以它是非常適于大型和實時嵌入式系統(tǒng)開發(fā)和維護的通用高級語言。目前我國衛(wèi)星型號的軟件廣泛應(yīng)用Ada語言開發(fā)。

1 Ada 語言的可重用性方法

1.1 軟件可重用性

軟件的可重用性一直都是軟件工程中人們所追求的目標之一??芍赜眯圆坏兄谔岣哕浖馁|(zhì)量及其開發(fā)效率、而且有助于降低軟件的開發(fā)費用和維護費用[1]。從另一個方面上理解,軟件工程的可重用性還應(yīng)該包括多個方面,比如說:應(yīng)用項目的重用性,規(guī)格說明的重用性,設(shè)計的重用性,概念和方法的重用性等等??偟膩碚f,層次越高的重用,也就會帶來的越大效益 [2]。

模板元的編程是一種編程方式,在編譯期通過模板實例化進行計算。早在1994 年,由Erwin Unruh 在一次C++標準委員會的會議上提出的[3]。因為其編譯器執(zhí)行的獨特的優(yōu)點,模板元編程很快就引起了大家廣泛興趣。此后,模板元編程得到了快速的發(fā)展,并且在軟件開發(fā)過程中得到了成功的應(yīng)用。到目前為止,很多種編程語言都對模板元編程提供了很好地支持。

然而在傳統(tǒng)的編程過程中,每個程序都要經(jīng)過編譯、鏈接以及執(zhí)行這三個必不可少的步驟。編譯過程做的只是將代碼翻譯成機器能識別的機器語言。一般來說,在編譯期能做的還是很少的,編程的任務(wù)大都在運行期執(zhí)行。與傳統(tǒng)編程相比較而言,模板元編程它具有如下2個特點:

1)在編譯期進行編程是模板元編程最顯著的特點

通過在編譯期進行編程,這樣的話很多在運行期才能進行的任務(wù)都可以在編譯期來完成,這樣做的好處就是能夠在性能或者接口簡單化方面帶來很多好處[4]。

2)以更少的開銷提供更多的功能

通過對編碼的“再生”,能夠提供比源代碼更多的功能。由于在編譯期承擔了運行的一些執(zhí)行期的任務(wù),這就意味著運行期的開銷就會減少很多。

模板元編程在軟件開發(fā)中的作用也是十分明顯的,在軟件開發(fā)中有著廣泛的應(yīng)用前景[5]。

1.2 Ada語言類屬單元

代碼重用是多年來軟件開發(fā)一直強調(diào)的重點,也是程序員們的一個希望。但在 C 這些語言中,由于語言的先天不足,代碼重用是有限的。Ada 里提供了類屬單元(Generic unit)的功能(和 C++的模板 template差不多),使得有可能創(chuàng)建更為通用的子程序或程序包[6]。

類屬單元是一個程序單元,但它只是一個樣板,不能直接使用,只有通過取例才能使用。類屬單元體現(xiàn)了類型抽象的一種機制,這種機制支持了軟件的可重用性概念。類屬單元是一種參數(shù)化的模板,它的主要用途是可以提高程序開發(fā)的生產(chǎn)效率,可以避免源代碼的重復,可以提高程序的可維護性、可讀性以及有效性。

一個類屬單元可以是程序包或子程序,允許執(zhí)行的運算不依賴特定數(shù)據(jù)類型。

1.3 Ada95中對C++模板的綁定

C++是當今公認的最為流行的面向?qū)ο缶幊淘O(shè)計語言之一,擁有著大量的、成熟的可重用類庫資源。但Ada95標準中僅僅定義了針對C語言、FORTRAN語言和COBOL語言的過程級綁定接口。所以,研究Ada95與C++這兩種面向?qū)ο笳Z言的在類層次上的綁定生成技術(shù),能夠?qū)χ赜肅++的資源具有非常重要意義。

Ada95和C++都支持參數(shù)的多態(tài)機制。C++提供的模板以描述具有相似特性的一組為一個類,與之對應(yīng)的是在Ada95中的類屬單元程序包。模板與類屬的主要功能是將相似或重復定義交給編譯器來完成。軟件設(shè)計人員僅在程序設(shè)計時定義單一的模板或類屬,以不同的類型參數(shù)來指定區(qū)別不同的實例。在編譯階段,編譯器會通過用實例的類型實參替換模板或類屬定義中的形參,由模板或類屬來生成具體的實例。因此,模板和類屬本身其實只是一個類似于宏定義的框架,并不具有任何可執(zhí)行的代碼,它的具體可執(zhí)行的實例代碼都是在編譯時產(chǎn)生的。因此,模板和類屬均屬于基于源代碼、而不是基于目標代碼的重用。

Ada95-C++綁定,實質(zhì)上來說是對已有二進制代碼的重用,通過Ada95編譯器提供給使用者的編用指令和C++二進制代碼形式的內(nèi)部鏈接來實現(xiàn)跨語言環(huán)境的調(diào)用。在重用C++資源時,對模板的綁定不可避免。C++模板屬于一種源代碼重用機制,它在遇到類型實參進行具體實例化之前,編譯器對模板不產(chǎn)生實際可用的目標代碼,然而Ada95中類屬綁定程序包的體部分需要將方法以及屬性的實現(xiàn)鏈接到C++的目標代碼上。因此,在C++模板實例化之前不會生成直接可用的類屬程序包。如果要生成直接可用的綁定程序包,必須使得模板實例化,然后再進行編譯,產(chǎn)生一個含有可用的二進制代碼的目標代碼文件。

2 結(jié)論

在軟件開發(fā)過程當中,編程的可重用性應(yīng)用可以給開發(fā)者省去很多寫重復代碼的工作,減少代碼量,也可以給軟件的可讀性、易維護性帶來很大的改善。針對Ada語言的可重用性技術(shù)方法做的學習和研究很有必要,對2種可重用性方法進行的研究,包括類屬單元的應(yīng)用以及Ada95如何與C++模板的綁定,并對如何通過綁定利用C++的可重用資源做了簡要介紹,對相關(guān)開發(fā)人員提供理論技術(shù)支持。

參考文獻:

[1] 王海枚.面向?qū)ο蠹夹g(shù)應(yīng)用的探索[D].成都:四川大學,2003.

[2] 薩默維爾.軟件工程[M].程成,譯.北京:機械工業(yè)出版社,2011.

[3] ANSI/ISO/IEC-8652,1995 Ada 95 Reference Manual—The Language[S].2009.

[4] 應(yīng)時,周順,朱春艷.基于構(gòu)件庫及構(gòu)件組合的軟件重用[J].計算機工程,1998(11).

[5] 楊芙清,梅宏,李克勤.軟件復用與軟件構(gòu)件技術(shù)[J].電子學報,1999(2).

[6] 劉堅,劉曉華·Ada語言與軟件重用[J].西安電子科技大學學報,1998,25(6): 733-737.

[7] 陸榮國,繆萬勝.假如使用Ada語言[J].航空電子技術(shù),2002(4).

[8] 姜靜波,蔡建平·Ada程序設(shè)計語言高級編程[M]. 北京:解放軍出版社,1998.

猜你喜歡
衛(wèi)星
把衛(wèi)星甩上天
miniSAR遙感衛(wèi)星
如何確定衛(wèi)星的位置?
軍事文摘(2021年16期)2021-11-05 08:48:58
滿天都是小衛(wèi)星
靜止衛(wèi)星派
科學家(2019年3期)2019-08-18 09:47:43
衛(wèi)星掠影
咣當! 天上掉衛(wèi)星
Puma" suede shoes with a focus on the Product variables
競射導航衛(wèi)星為哪般
太空探索(2015年6期)2015-07-12 12:48:29
我國成功發(fā)射遙感衛(wèi)星二十五號
河北遙感(2014年4期)2014-07-10 13:54:59
长海县| 陆川县| 达孜县| 华池县| 廉江市| 乐安县| 赤城县| 惠州市| 旅游| 青冈县| 札达县| 原阳县| 溆浦县| 德江县| 房产| 手游| 大名县| 抚松县| 金乡县| 阆中市| 盐边县| 荆门市| 永丰县| 榆树市| 正定县| 河东区| 疏勒县| 舒兰市| 聂荣县| 蒙城县| 开鲁县| 三台县| 霞浦县| 通道| 潜山县| 唐河县| 武义县| 绥德县| 抚宁县| 方正县| 池州市|