• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種Fortran和C++混合編程規(guī)范化方法

    2014-07-18 18:39:11陳磊徐爛
    電腦知識與技術(shù) 2014年13期
    關(guān)鍵詞:字符串數(shù)組代碼

    陳磊 徐爛

    摘要:目前,在科學(xué)計(jì)算領(lǐng)域有不少程序采用了Fortran和C++兩種語言進(jìn)行混合編程(即“混編”),但現(xiàn)有混編的程序代碼可讀性差,可維護(hù)性差,嚴(yán)重影響了軟件的可移植性和可重用性。針對此現(xiàn)狀,筆者總結(jié)了自己在核電軟件開發(fā)中的實(shí)際經(jīng)驗(yàn),分三步闡述了Fortran和C++混合編程的規(guī)范化:首先,用宏定義等方法實(shí)現(xiàn)C++類型與Fortran類型的映射;然后,對于簡單類型的參數(shù)傳遞,提出規(guī)范性意見;最后,對于Fortran中的特殊類型,提出在C++中用封裝類型進(jìn)行定義。經(jīng)過對比驗(yàn)證,證明規(guī)范化的混合編程確實(shí)增加了代碼的魯棒性,可維護(hù)性。

    關(guān)鍵詞:混合編程;FORTRAN;C++

    中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)13-2962-05

    A Normalization Method of Mixed-programming with FORTRAN and C++

    CHEN Lei, XU Lan

    (College of Computer Science and Technology, University of South China, Hengyang 421001, China)

    Abstract: Nowadays in scientific computing, a mixed-programming technology with FORTRAN and C++ program language is adopted in many programs. While lots of mixed programs have the problems of bad readability and maintainability, so it have a bad influence on the reusability of software. According to the situation, author sum up experiences and come up with a solution how to improve the mix-programming by three step. Firstly, use a macro definition method to realize the type-map between FORTRAN and C++. Secondly, to the base-type parameter passing, propose an idea about normalization. At last, propose a solution that use a C++ use-defined type for the special type in FORTRAN. By validating the results of before the normalization and after it, mixed-programming with normalization did improve the maintainability and robustness of the code.

    Key words: mixed-programming; FORTRAN; C++

    目前,在科學(xué)計(jì)算領(lǐng)域有不少程序采用了Fortran和C++兩種語言進(jìn)行混合編程,充分利用了兩者的優(yōu)勢,提高軟件開發(fā)效率[1-2]。Fortran在過去很長一段時間作為科學(xué)計(jì)算領(lǐng)域的首選語言,產(chǎn)生了很多優(yōu)秀的工程軟件。隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)的應(yīng)用性越來越廣,軟件的規(guī)模也隨之增大,原有的Fortran結(jié)構(gòu)化程序設(shè)計(jì)方法已經(jīng)無法很好的勝任行業(yè)日益增長的需求。與此同時,C++這種高性能的面向?qū)ο蟾呒壵Z言開始深入到這一領(lǐng)域。利用C++語言優(yōu)秀的性能和面向?qū)ο蟪绦蛟O(shè)計(jì)方法,計(jì)算程序不但在性能上不會與之前有所劣勢,而且在程序設(shè)計(jì)和可重用性方面有顯著優(yōu)勢。現(xiàn)代軟件為了開發(fā)效率的提高,以及充分利用已有的Fortran軟件計(jì)算包去實(shí)現(xiàn)目標(biāo),對C++程序語言與Fortran語言的混合編程進(jìn)行了研究?,F(xiàn)有研究主要集中于Fortran語言與C++語言實(shí)現(xiàn)混合編程的幾種方式,以及混合編程中實(shí)現(xiàn)基本調(diào)用的方法總結(jié)[2-4,10],卻缺乏對這方面規(guī)范性的研究,以至于現(xiàn)有混編程序可讀性差,魯棒性差,面向?qū)ο蟪绦蛟O(shè)計(jì)語言的特點(diǎn)利用不充分。

    本文針對現(xiàn)在混合編程應(yīng)用中存在的問題,提出如何使混合編程規(guī)范化的解決方案,使得混合編程得以優(yōu)化。該文分三部分闡述了筆者的觀點(diǎn),并以實(shí)踐中的代碼片段作為論證,來說明如何優(yōu)化和優(yōu)化后的改變,以充分說明自己的觀點(diǎn)。實(shí)驗(yàn)說明,從軟件工程的角度出發(fā),優(yōu)化后的代碼魯棒性提高,便于代碼維護(hù),而且引入了面向?qū)ο蟮乃枷?,真正做到了面向?qū)ο缶幊?,在核電軟件中有顯著成效。

    1 現(xiàn)有Fortran/C++混合編程

    當(dāng)前混編程序的方法參差不一,大致分為兩類:一種是通過中間文件傳遞數(shù)據(jù),一種就是直接將編譯后的目標(biāo)文件鏈接起來。前者當(dāng)程序間傳遞數(shù)據(jù)次數(shù)少,數(shù)據(jù)量大時適用;后者則在傳遞數(shù)據(jù)次數(shù)多,即程序間調(diào)用頻繁時適用。后者目前應(yīng)用普遍,在代碼實(shí)現(xiàn)過程中存在著代碼不規(guī)范、魯棒性差、不便于后期維護(hù)等問題,對軟件生命周期具有潛在的負(fù)面影響。例如當(dāng)在C++中使用LAPACK提供的軟件計(jì)算包時,有些程序員會在C++頭文件中以鏈接成功為目標(biāo)簡單的在頭文件中添加計(jì)算函數(shù)聲明,有的會直接在源文件中去聲明計(jì)算函數(shù)。又如當(dāng)在C++調(diào)用帶字符串參數(shù)的函數(shù)時,C++需要使用char*形式的字符串傳遞,程序員當(dāng)面對char*中的‘\0結(jié)束符時,有的選擇了直接傳,有的則選擇使用局部臨時字符數(shù)組轉(zhuǎn)存后再傳遞。而最讓程序員痛苦的是,當(dāng)遇到多維數(shù)組時的下標(biāo)必須減1的問題和位數(shù)必須慢慢的顛倒過來。雖然程序可以鏈接成功,但當(dāng)程序員自己調(diào)試的時感到很吃力,錯誤定位慢,代碼很難看,更不用說其它的程序員來維護(hù)了。endprint

    為了表述的更清楚,有類似問題代碼如下。

    這段代碼明顯有上述問題,當(dāng)代碼規(guī)模增大,程序?qū)⒆兊秒y以維護(hù)。這樣的代碼即使勉強(qiáng)運(yùn)行,而代碼的魯棒性、可維護(hù)性無從談之。

    2 FORTRAN/C++混合編程規(guī)范化

    首先,在C++中正確聲明FORTRAN接口,需要從鏈接約定、調(diào)用約定和基本數(shù)據(jù)類型映射著手。

    2.1 鏈接約定

    在C++中,幾個函數(shù)可以有相同的函數(shù)名,主要參數(shù)的類型或個數(shù)不一致就行。這個特征就是函數(shù)重載。函數(shù)重載是用了“name mangling”的技術(shù),這個是由編譯器內(nèi)部實(shí)現(xiàn)的。但是FORTRAN中沒有函數(shù)重載的概念。為了使C++編譯器能夠認(rèn)識到FORTRAN編譯器生成的代碼,“name mangling”的功能必須關(guān)閉。因此當(dāng)在C++中定義SUBROUTINE和FUNCTION時候需要包含extern “C”, 如下表1所示。

    表1 對應(yīng)函數(shù)聲明

    [FORTRAN函數(shù)定義\&C++函數(shù)定義\&SUBROUTINE FSUB()\&extern “C” void FSUB()\&REAL FUNCTIONF ()\&extern “C” float FFUNC()\&]

    2.2 調(diào)用約定

    C++和Fortran在調(diào)用約定上各不相同。參數(shù)是如何放入調(diào)用堆棧的,棧是由調(diào)用程序還是被調(diào)用程序負(fù)責(zé)清理的,當(dāng)然這是和平臺息息相關(guān)的。通常,C++遵循的是__cdecl約定,而FORTRAN遵循的是__stdcall約定,并且這兩個一般都是不兼容的。因此需要明確指定C++調(diào)用約定以確保兩者一致,這個可以通過編譯器提供的選項(xiàng)進(jìn)行設(shè)置。

    2.3 基本數(shù)據(jù)類型映射

    兩者的基本數(shù)據(jù)類型對比表,如表2所示。

    表2 數(shù)據(jù)類型映射

    [FORTRAN數(shù)據(jù)類型\&C++數(shù)據(jù)類型\&INTEGER\&int\&REAL\&float\&LOGICAL\&unsigned int\&DOUBLE PRECISION\&double\&]

    [#ifdef UNIX

    #define SUBROUTINE extern “C” void

    #define INTEGER_FUNCTION extern “C” INTEGER

    #define REAL_FUNCTION extern “C” REAL

    #define LOGICAL_FUNCTION extern “C” LOGICAL

    #define DOUBLE_PRECISION_FUNCTION extern “C” DOUBLE_PRECISION

    #else

    #define SUBROUTINE extern “C” void __stdcall

    #define INTEGER_FUNCTION extern “C” INTEGER __stdcall

    #define REAL_FUNCTION extern “C” REAL __stdcall

    #define LOGICAL_FUNCTION extern “C” LOGICAL __stdcall

    #define DOUBLE_PRECISION_FUNCTION extern “C” DOUBLE_PRECISION __stdcall

    #endif]

    如上所述,要想在C++中定義好Fortran函數(shù)的原型,需要經(jīng)過幾步處理。為了提高程序的可讀性,代碼的可重用性,以及減少代碼重復(fù)率,因此筆者添加了一個頭文件“FORTRAN.h”,對其共性加以提取,定義了一系列宏和重命名類型,使得程序接口聲明簡潔,減少代碼冗余?!癋ORTRAN.h”關(guān)鍵部分定義如下所示。

    [INTEGER_FUNCTION F77FUNC();

    SUBROUTINE F77SUB();]

    那么當(dāng)在C++中聲明一個FORTRAN中的SUBROUTINE和FUNCTION時,只要簡單聲明如下。

    這種解決方案為C++和Fortran混合編程中接口的定義提供了一定的通用性,增強(qiáng)了可讀性,對接口做了最基本的優(yōu)化,并為進(jìn)一步優(yōu)化奠定了良好的基礎(chǔ)。

    其次,有了前面初步成果之后,面對幾種形式的形參,充分應(yīng)用C++的特性提出良好的解決方案,使代碼具有魯棒性,可維護(hù)性。

    2.4 非數(shù)組參數(shù)

    非數(shù)組參數(shù)優(yōu)化,指的是對接口中不含數(shù)組參數(shù)的函數(shù)進(jìn)行接口優(yōu)化處理。當(dāng)在C++中聲明一個帶有基本類型參數(shù)的FORTRAN函數(shù)原型時,需要了解FORTRAN參數(shù)傳遞過程的實(shí)質(zhì)。因?yàn)镕ORTRAN函數(shù)參數(shù)在傳遞時相當(dāng)于C++中的按引用傳參的方式,因此在C++中聲明時,需要在對應(yīng)的類型名后面加上符號&。

    當(dāng)然面對類似函數(shù),有的程序員選擇將函數(shù)形參聲明為指針類型而不是引用類型,筆者認(rèn)為聲明為引用類型更好,更安全更高效。

    2.5 簡單數(shù)組參數(shù)

    這里討論的主要是函數(shù)參數(shù)為一維數(shù)組時,如何傳遞參數(shù)。這里抓住數(shù)組實(shí)現(xiàn)的基本原理——數(shù)組傳遞時是傳遞數(shù)組第一個元素的首地址。因此在聲明函數(shù)原型時只要將參數(shù)聲明為數(shù)組元素類型的指針即可。

    最后,針對多維數(shù)組和字符串這兩種特殊參數(shù)進(jìn)行探討。

    2.6 多維數(shù)組參數(shù)

    FORTRAN和C++中的數(shù)組在存取方式上是截然不同的。FORTRAN中數(shù)組元素是按列優(yōu)先存取的,而C++中是按行優(yōu)先存取的。除此之外,F(xiàn)ORTRAN中的數(shù)組起始下標(biāo)默認(rèn)是1,而C++中起始下標(biāo)是0。顯然當(dāng)要從C++中傳遞一個多維數(shù)組參數(shù)時,數(shù)組元素需要轉(zhuǎn)置并且減1。如表3所示。

    表3 數(shù)組形式對比

    [FORTRAN數(shù)組元素\&C++中數(shù)組元素\&ARRAY(I,J,K)\&ARRAY[K-1][J-1][I-1]\&]

    [template

    class FMATRIX

    {

    public:

    FMATRIX(size_t dim1, size_t dim2);]

    [FMATRIX(T* cpparr, size_t dim1, size_t dim2);

    operator T*();

    T& operator()(size_t index1, size_t index2);

    ~FMATRIX();

    public:

    const size_t ndim; // number of array dimensions

    size_t dim[7]; // size of each dimension

    T* cpprep; // original c++ array

    T* f77rep; // array used by FORTRAN

    }; ]

    實(shí)踐證明這種方式的參數(shù)傳遞是不合適的,嚴(yán)重影響了原有的C++程序的可讀性、可維護(hù)性。因此為了擺脫“為了重用FORTRAN而FORTRAN”的方式,充分利用C++面向?qū)ο蟮奶匦裕梢越⒁粋€類似于FORTRAN的ARRAY模板類(這里只討論二維數(shù)組)。定義如下所示。

    此模板類構(gòu)造函數(shù)實(shí)例化由三個普通參數(shù)(包括C++數(shù)組首地址(可選)、維度和列數(shù))和一個模板類型參數(shù)決定。此類中包含兩個成員函數(shù)和四個數(shù)據(jù)成員,成員函數(shù)operator T*()實(shí)現(xiàn)的操作是返回?cái)?shù)據(jù)成員f77rep, 而另一個成員函數(shù)實(shí)現(xiàn)了FORTRAN種ARRAY的索引操作。

    對于這種基于類的解決方案,很好的解決了C++與FORTRAN之間多維數(shù)組的差異,同時使程序現(xiàn)代化,對象化。程序也將更易于維護(hù),可讀性更好。

    2.7 字符串傳遞參數(shù)

    字符串傳參相對麻煩一點(diǎn),簡單用typedef不能有效的與FORTRAN中的CHARACTER類型兼容。原因主要有兩個:首先,C++中的用char*類型代表一個字符串,每個字符串以\0結(jié)束,同時也依賴于這個結(jié)束符取得字符串長度。而在FORTRAN中,字符串不是以\0結(jié)束的,而是通常將這個字符串的長度存儲在一個INTEGER類型的變量中,只能通過FORTRAN提供的內(nèi)部函數(shù)LEN(string)獲取長度;其次,F(xiàn)ORTRAN標(biāo)準(zhǔn)并沒有明確指明如何在SUBROUTINES和FUNCTIONS之間傳遞參數(shù)。因此,不同的幾個FORTRAN編譯器之間的實(shí)現(xiàn)有些不兼容。如果用C++的術(shù)語描述那些不同實(shí)現(xiàn)的話,一些編譯器通過傳遞一種自定義struct,struct中包含了一個char*類型成員代表字符串值和一個size_t類型成員代表字符串長度;另一些是直接傳遞一個char*類型字符串,然后將字符串長度隱藏在參數(shù)列表后傳遞過去。用其中任意一種方法,都將使代碼失去可移植性,并且代碼可讀性差,很容易就出錯。

    [class CHARACTER

    {

    public:

    CHARACTER(char* cstring);

    CHARACTER(char* cstring, const size_t lstr);

    ~CHARACTER();

    CHARACTER operator()(size_t index);

    void pad(size_t first,size_t howmany=1);

    void operator=(char* str);

    operator char*();

    public:

    char* rep; // Actual string

    size_t len; // String length

    };

    ]

    為了處理C++和FORTRAN語言之間的這種差異,使字符串傳遞簡化且仍然維持著可移植性,我們就應(yīng)該充分發(fā)揮C++中類的特性,通過自定義一個CHARACTER類來作為一個良好的解決方案。類定義如下 。

    此自定義類型在C++語言中等同于Fortran的CHARACTER類型。此類型中定義的幾個方法與Fortran中CHARACTER類型相同。同時,它需要有一個具體存取字符串和一個存取字符串長度的size_t的數(shù)據(jù)成員。

    這樣的一種新類型的定義能更好的實(shí)現(xiàn)C++與FORTRAN之間的字符串傳遞,對混合編程組成程序的可移植性也是有很大改善的。

    3 實(shí)驗(yàn)結(jié)果對比

    下面就通過使用提出的方法來重新編寫與問題代碼功能類似的程序,代碼如下。

    [//函數(shù)頭文件 func.h

    #include “FORTRAN.h”

    INTEGER_FUNCTION one(INTEGER&,REAL&,DOUBLE_PRECITION&);

    INTEGER_FUCNTION three(INTEGER*);

    INTEGER_FUCNTION four(CHARACTER);

    //源代碼main.cpp文件

    #include “func.h”

    int main()

    { …

    one(m,n,a);

    INTEGER arr[5]={2,3,4,5,6};

    two(arr);

    . FARRAY arr2(5,2)

    three(arr2);

    //要取計(jì)算后第三對值arr2(3,1)和arr2(3,2),這樣能很好的知道原來程序的意圖

    CHARACTER STR(”hello world!”);

    four(STR);

    return 0;

    }\&]

    結(jié)果表明,需要引用函數(shù)只需要在頭文件中簡單的聲明,公共的頭文件統(tǒng)一調(diào)控調(diào)用約定、鏈接約定、類型映射等,使得程序魯棒性,可維護(hù)性得到提高。在實(shí)際調(diào)用時,操作也相對更加便捷,如若FORTRAN語言因編譯器有所變化表現(xiàn)略有不同,也只要維護(hù)一個類文件即可。從軟件工程的角度,這種規(guī)范化的混合編程改善了軟件的健壯性,可維護(hù)性,值得在混合編程中提倡。

    4 結(jié)束語

    混合編程使得語言之間揚(yáng)長避短、互相促進(jìn),將已有優(yōu)質(zhì)資源的效用最大化。該文提出的規(guī)范化方法保證我們混合編程后的程序仍然是有高可重用性和可移植性的,在核電軟件中有顯著成效,使軟件真正向工程化、現(xiàn)代化邁進(jìn)。

    參考文獻(xiàn):

    [1] 許慶國,金思毅,周傳光.Fortran 源程序在 WindowsOOP 環(huán)境下的應(yīng)用[J].計(jì)算機(jī)工程, 2001,27(9):169-171.

    [2] 周振紅,顏國紅,吳虹娟.Fortran 與 Visual C++ 混合編程研究[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2001,34(2):84-87.

    [3] Stanley B, Lippman.Essentialc++[M].武漢:華中科技大學(xué)出版社,2001

    [4] Burkhard Burow. Mixed language programming[C]. Rio de Ja-neiro, Brazil: Computing in High Energy Physics, 1999.

    [5] Theurich G, Anson B, Hill N A. Making the Fortran-to-C transi-tion: how painful is it really[J]. Computing in Science & Engi-neering, 2001,3(1):21-27.

    [6] 汪莉,張麗華,張國慶.Visual C++工控軟件中自定義圖表控件編程設(shè)計(jì)與應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(19).

    [7] 王家華,周潤.MATLAB與Visual C++混合編程在儲層三維建模系統(tǒng)中的應(yīng)用[J].軟件導(dǎo)刊,2011(1).

    [8] 侍孝虎.VB與MATLAB混合編程研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012(9).

    [9] 李霞,亓雪冬.基于Linux的Fortran與C/C++混合編程[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版), 2012(5).

    [10] 李慧,韓一平,華彩成,李存志.Visual C++與Fortran混合編程在電磁散射中的應(yīng)用[J]. 微波學(xué)報(bào),2012(6).

    one(m,n,a);

    INTEGER arr[5]={2,3,4,5,6};

    two(arr);

    . FARRAY arr2(5,2)

    three(arr2);

    //要取計(jì)算后第三對值arr2(3,1)和arr2(3,2),這樣能很好的知道原來程序的意圖

    CHARACTER STR(”hello world!”);

    four(STR);

    return 0;

    }\&]

    結(jié)果表明,需要引用函數(shù)只需要在頭文件中簡單的聲明,公共的頭文件統(tǒng)一調(diào)控調(diào)用約定、鏈接約定、類型映射等,使得程序魯棒性,可維護(hù)性得到提高。在實(shí)際調(diào)用時,操作也相對更加便捷,如若FORTRAN語言因編譯器有所變化表現(xiàn)略有不同,也只要維護(hù)一個類文件即可。從軟件工程的角度,這種規(guī)范化的混合編程改善了軟件的健壯性,可維護(hù)性,值得在混合編程中提倡。

    4 結(jié)束語

    混合編程使得語言之間揚(yáng)長避短、互相促進(jìn),將已有優(yōu)質(zhì)資源的效用最大化。該文提出的規(guī)范化方法保證我們混合編程后的程序仍然是有高可重用性和可移植性的,在核電軟件中有顯著成效,使軟件真正向工程化、現(xiàn)代化邁進(jìn)。

    參考文獻(xiàn):

    [1] 許慶國,金思毅,周傳光.Fortran 源程序在 WindowsOOP 環(huán)境下的應(yīng)用[J].計(jì)算機(jī)工程, 2001,27(9):169-171.

    [2] 周振紅,顏國紅,吳虹娟.Fortran 與 Visual C++ 混合編程研究[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2001,34(2):84-87.

    [3] Stanley B, Lippman.Essentialc++[M].武漢:華中科技大學(xué)出版社,2001

    [4] Burkhard Burow. Mixed language programming[C]. Rio de Ja-neiro, Brazil: Computing in High Energy Physics, 1999.

    [5] Theurich G, Anson B, Hill N A. Making the Fortran-to-C transi-tion: how painful is it really[J]. Computing in Science & Engi-neering, 2001,3(1):21-27.

    [6] 汪莉,張麗華,張國慶.Visual C++工控軟件中自定義圖表控件編程設(shè)計(jì)與應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(19).

    [7] 王家華,周潤.MATLAB與Visual C++混合編程在儲層三維建模系統(tǒng)中的應(yīng)用[J].軟件導(dǎo)刊,2011(1).

    [8] 侍孝虎.VB與MATLAB混合編程研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012(9).

    [9] 李霞,亓雪冬.基于Linux的Fortran與C/C++混合編程[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版), 2012(5).

    [10] 李慧,韓一平,華彩成,李存志.Visual C++與Fortran混合編程在電磁散射中的應(yīng)用[J]. 微波學(xué)報(bào),2012(6).

    one(m,n,a);

    INTEGER arr[5]={2,3,4,5,6};

    two(arr);

    . FARRAY arr2(5,2)

    three(arr2);

    //要取計(jì)算后第三對值arr2(3,1)和arr2(3,2),這樣能很好的知道原來程序的意圖

    CHARACTER STR(”hello world!”);

    four(STR);

    return 0;

    }\&]

    結(jié)果表明,需要引用函數(shù)只需要在頭文件中簡單的聲明,公共的頭文件統(tǒng)一調(diào)控調(diào)用約定、鏈接約定、類型映射等,使得程序魯棒性,可維護(hù)性得到提高。在實(shí)際調(diào)用時,操作也相對更加便捷,如若FORTRAN語言因編譯器有所變化表現(xiàn)略有不同,也只要維護(hù)一個類文件即可。從軟件工程的角度,這種規(guī)范化的混合編程改善了軟件的健壯性,可維護(hù)性,值得在混合編程中提倡。

    4 結(jié)束語

    混合編程使得語言之間揚(yáng)長避短、互相促進(jìn),將已有優(yōu)質(zhì)資源的效用最大化。該文提出的規(guī)范化方法保證我們混合編程后的程序仍然是有高可重用性和可移植性的,在核電軟件中有顯著成效,使軟件真正向工程化、現(xiàn)代化邁進(jìn)。

    參考文獻(xiàn):

    [1] 許慶國,金思毅,周傳光.Fortran 源程序在 WindowsOOP 環(huán)境下的應(yīng)用[J].計(jì)算機(jī)工程, 2001,27(9):169-171.

    [2] 周振紅,顏國紅,吳虹娟.Fortran 與 Visual C++ 混合編程研究[J].武漢大學(xué)學(xué)報(bào):工學(xué)版,2001,34(2):84-87.

    [3] Stanley B, Lippman.Essentialc++[M].武漢:華中科技大學(xué)出版社,2001

    [4] Burkhard Burow. Mixed language programming[C]. Rio de Ja-neiro, Brazil: Computing in High Energy Physics, 1999.

    [5] Theurich G, Anson B, Hill N A. Making the Fortran-to-C transi-tion: how painful is it really[J]. Computing in Science & Engi-neering, 2001,3(1):21-27.

    [6] 汪莉,張麗華,張國慶.Visual C++工控軟件中自定義圖表控件編程設(shè)計(jì)與應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(19).

    [7] 王家華,周潤.MATLAB與Visual C++混合編程在儲層三維建模系統(tǒng)中的應(yīng)用[J].軟件導(dǎo)刊,2011(1).

    [8] 侍孝虎.VB與MATLAB混合編程研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012(9).

    [9] 李霞,亓雪冬.基于Linux的Fortran與C/C++混合編程[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版), 2012(5).

    [10] 李慧,韓一平,華彩成,李存志.Visual C++與Fortran混合編程在電磁散射中的應(yīng)用[J]. 微波學(xué)報(bào),2012(6).

    猜你喜歡
    字符串數(shù)組代碼
    JAVA稀疏矩陣算法
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    尋找勾股數(shù)組的歷程
    一種新的基于對稱性的字符串相似性處理算法
    依據(jù)字符串匹配的中文分詞模型研究
    VB數(shù)組在for循環(huán)中的應(yīng)用
    考試周刊(2012年88期)2012-04-29 04:36:47
    老司机影院成人| 亚洲激情五月婷婷啪啪| 少妇被粗大的猛进出69影院| 国产野战对白在线观看| 国产深夜福利视频在线观看| 嫩草影视91久久| 日韩 欧美 亚洲 中文字幕| 欧美在线黄色| 午夜福利一区二区在线看| 80岁老熟妇乱子伦牲交| 成年动漫av网址| 在线观看人妻少妇| 日本91视频免费播放| 久久精品国产a三级三级三级| 欧美av亚洲av综合av国产av| 在线观看人妻少妇| 成人亚洲精品一区在线观看| 叶爱在线成人免费视频播放| 男女边摸边吃奶| 亚洲一卡2卡3卡4卡5卡精品中文| 日本一区二区免费在线视频| 纵有疾风起免费观看全集完整版| 久久久国产欧美日韩av| 男人舔女人的私密视频| 国产在视频线精品| 下体分泌物呈黄色| 国产精品久久久久久精品电影小说| 黑人猛操日本美女一级片| 亚洲色图 男人天堂 中文字幕| 欧美激情高清一区二区三区| 亚洲视频免费观看视频| 成年动漫av网址| 国产精品麻豆人妻色哟哟久久| 亚洲精品国产区一区二| 黄网站色视频无遮挡免费观看| 亚洲欧美激情在线| www日本在线高清视频| 王馨瑶露胸无遮挡在线观看| 成人18禁高潮啪啪吃奶动态图| av又黄又爽大尺度在线免费看| 欧美精品一区二区大全| 日本黄色日本黄色录像| 国产精品久久久人人做人人爽| 免费高清在线观看日韩| 男女免费视频国产| 国产男女超爽视频在线观看| 欧美变态另类bdsm刘玥| 一区二区日韩欧美中文字幕| 亚洲第一青青草原| 免费观看av网站的网址| 亚洲国产日韩一区二区| 乱人伦中国视频| 日韩一区二区三区影片| 精品久久久精品久久久| 亚洲精品久久午夜乱码| 亚洲精品国产一区二区精华液| 精品国产一区二区久久| 国产黄色免费在线视频| 亚洲国产欧美一区二区综合| 精品一区二区三卡| 99久久人妻综合| 超碰97精品在线观看| 老司机在亚洲福利影院| 人妻人人澡人人爽人人| 国产av国产精品国产| 伦理电影免费视频| 久久久久视频综合| 99热国产这里只有精品6| 午夜福利在线观看吧| 国产有黄有色有爽视频| 国产欧美亚洲国产| 久久中文看片网| 国产淫语在线视频| 亚洲国产毛片av蜜桃av| 婷婷色av中文字幕| av免费在线观看网站| 热re99久久国产66热| 国产成人av激情在线播放| 欧美另类一区| 国产97色在线日韩免费| 日本av免费视频播放| 国产精品 国内视频| 中文字幕另类日韩欧美亚洲嫩草| 国产精品九九99| 日本精品一区二区三区蜜桃| 国产又色又爽无遮挡免| 亚洲国产看品久久| 无遮挡黄片免费观看| 国产深夜福利视频在线观看| 欧美日韩亚洲高清精品| 亚洲欧美激情在线| 国产精品免费视频内射| 女性被躁到高潮视频| 中文字幕精品免费在线观看视频| 亚洲中文日韩欧美视频| 亚洲国产中文字幕在线视频| 中文字幕色久视频| 老司机午夜十八禁免费视频| 国产色视频综合| 亚洲精品日韩在线中文字幕| 亚洲av日韩在线播放| 丝袜美腿诱惑在线| 91麻豆精品激情在线观看国产 | 天天躁日日躁夜夜躁夜夜| 国精品久久久久久国模美| 91大片在线观看| 午夜成年电影在线免费观看| 十分钟在线观看高清视频www| 最黄视频免费看| 欧美人与性动交α欧美精品济南到| 大香蕉久久成人网| 18在线观看网站| 这个男人来自地球电影免费观看| 男女边摸边吃奶| 亚洲av欧美aⅴ国产| 日韩熟女老妇一区二区性免费视频| 丝袜喷水一区| 欧美精品亚洲一区二区| 黑人操中国人逼视频| 女性生殖器流出的白浆| 老熟女久久久| 国产欧美日韩一区二区三区在线| 久久久久国产精品人妻一区二区| a 毛片基地| 欧美精品亚洲一区二区| 国产精品99久久99久久久不卡| 欧美国产精品va在线观看不卡| 男男h啪啪无遮挡| 午夜福利视频精品| 亚洲成人手机| 久久青草综合色| 国产99久久九九免费精品| 午夜免费鲁丝| 国精品久久久久久国模美| 日日摸夜夜添夜夜添小说| 一区二区三区四区激情视频| 欧美久久黑人一区二区| 国产精品免费大片| 自拍欧美九色日韩亚洲蝌蚪91| 国产一区二区在线观看av| 欧美日韩福利视频一区二区| 欧美成狂野欧美在线观看| 18在线观看网站| 国产黄色免费在线视频| 国产精品 国内视频| 男女下面插进去视频免费观看| 中文字幕人妻丝袜制服| 黄片播放在线免费| 一级片'在线观看视频| 99国产精品99久久久久| 少妇粗大呻吟视频| 欧美 日韩 精品 国产| 国产无遮挡羞羞视频在线观看| 亚洲三区欧美一区| 国产亚洲av高清不卡| 秋霞在线观看毛片| 欧美日韩av久久| 五月天丁香电影| 成年人午夜在线观看视频| 亚洲va日本ⅴa欧美va伊人久久 | 黄网站色视频无遮挡免费观看| 老司机在亚洲福利影院| 国产精品久久久久久精品电影小说| 女性被躁到高潮视频| 色老头精品视频在线观看| 国产精品熟女久久久久浪| 一本大道久久a久久精品| 日韩免费高清中文字幕av| 一本久久精品| 我要看黄色一级片免费的| 亚洲精品国产av成人精品| 一本久久精品| 亚洲 国产 在线| 亚洲 国产 在线| 精品亚洲乱码少妇综合久久| 亚洲伊人色综图| 午夜免费成人在线视频| 极品少妇高潮喷水抽搐| 国产精品影院久久| 精品人妻一区二区三区麻豆| 99国产极品粉嫩在线观看| 十八禁高潮呻吟视频| 丁香六月天网| 欧美av亚洲av综合av国产av| 搡老岳熟女国产| 国产真人三级小视频在线观看| 欧美在线黄色| 午夜免费观看性视频| 91麻豆精品激情在线观看国产 | 精品一区二区三卡| 久久精品熟女亚洲av麻豆精品| 啦啦啦免费观看视频1| 国产精品香港三级国产av潘金莲| 国产又爽黄色视频| 美女中出高潮动态图| 成年动漫av网址| 另类亚洲欧美激情| 久久天堂一区二区三区四区| 成人亚洲精品一区在线观看| 99国产精品免费福利视频| 日韩,欧美,国产一区二区三区| 国产亚洲欧美在线一区二区| 久久久国产精品麻豆| 国产免费现黄频在线看| 天天添夜夜摸| 99国产综合亚洲精品| 天堂中文最新版在线下载| 国产成人精品无人区| 亚洲av国产av综合av卡| 成人黄色视频免费在线看| 一区二区av电影网| 国产97色在线日韩免费| 亚洲欧洲日产国产| 精品第一国产精品| 亚洲精品av麻豆狂野| 午夜福利影视在线免费观看| 老司机在亚洲福利影院| 一区二区三区激情视频| 三上悠亚av全集在线观看| 国产亚洲av片在线观看秒播厂| 国产又爽黄色视频| 久久亚洲国产成人精品v| 国产在线视频一区二区| 黄色视频,在线免费观看| 亚洲av欧美aⅴ国产| 黄片大片在线免费观看| 日韩有码中文字幕| 十分钟在线观看高清视频www| 中文精品一卡2卡3卡4更新| 黑人猛操日本美女一级片| 一级毛片女人18水好多| 99九九在线精品视频| 成年人午夜在线观看视频| 国产亚洲一区二区精品| 午夜视频精品福利| 91成人精品电影| 日韩欧美一区二区三区在线观看 | 免费看十八禁软件| 免费在线观看黄色视频的| 少妇的丰满在线观看| 久久ye,这里只有精品| 国产99久久九九免费精品| 午夜福利影视在线免费观看| 亚洲专区国产一区二区| 欧美日韩亚洲高清精品| 一个人免费看片子| 91成人精品电影| 亚洲欧美色中文字幕在线| 一区二区日韩欧美中文字幕| 免费在线观看完整版高清| 99国产极品粉嫩在线观看| 极品少妇高潮喷水抽搐| 国产成人欧美| 国产精品久久久av美女十八| 久久毛片免费看一区二区三区| 成年人免费黄色播放视频| 免费观看av网站的网址| 日韩大码丰满熟妇| 久9热在线精品视频| 久久久久视频综合| 青青草视频在线视频观看| 搡老熟女国产l中国老女人| 97人妻天天添夜夜摸| 男人舔女人的私密视频| 欧美黑人精品巨大| 国产男女超爽视频在线观看| 国产精品偷伦视频观看了| 精品欧美一区二区三区在线| 窝窝影院91人妻| 曰老女人黄片| 人人妻,人人澡人人爽秒播| 美女高潮喷水抽搐中文字幕| 永久免费av网站大全| 亚洲国产av新网站| 精品第一国产精品| 欧美日韩av久久| 免费黄频网站在线观看国产| 亚洲国产日韩一区二区| 视频在线观看一区二区三区| 亚洲成国产人片在线观看| 日日爽夜夜爽网站| 亚洲三区欧美一区| 国产精品香港三级国产av潘金莲| 日韩视频一区二区在线观看| 久久九九热精品免费| 大码成人一级视频| 亚洲中文日韩欧美视频| 啦啦啦啦在线视频资源| 欧美在线黄色| 最近中文字幕2019免费版| 最黄视频免费看| 久久热在线av| 亚洲精品一卡2卡三卡4卡5卡 | 人人妻人人澡人人爽人人夜夜| 国产精品成人在线| svipshipincom国产片| 国产亚洲精品一区二区www | 亚洲伊人久久精品综合| 脱女人内裤的视频| 欧美成人午夜精品| 天天影视国产精品| 国产免费现黄频在线看| 两性夫妻黄色片| 久久久久精品国产欧美久久久 | 十八禁高潮呻吟视频| 国产亚洲欧美在线一区二区| 如日韩欧美国产精品一区二区三区| 久久久久精品国产欧美久久久 | 国产xxxxx性猛交| 美女脱内裤让男人舔精品视频| 欧美日韩福利视频一区二区| 青青草视频在线视频观看| 久久人人爽人人片av| 美女中出高潮动态图| 中文字幕人妻丝袜制服| 热99re8久久精品国产| 亚洲精品av麻豆狂野| 国产成人欧美| 99精品欧美一区二区三区四区| 这个男人来自地球电影免费观看| 欧美中文综合在线视频| 又黄又粗又硬又大视频| 亚洲精品一区蜜桃| 国产成人精品在线电影| 欧美日韩一级在线毛片| 亚洲情色 制服丝袜| 黑人巨大精品欧美一区二区mp4| 精品一区二区三卡| 满18在线观看网站| 亚洲伊人久久精品综合| 亚洲av片天天在线观看| 伊人久久大香线蕉亚洲五| 亚洲国产日韩一区二区| 亚洲熟女精品中文字幕| 色视频在线一区二区三区| 天堂俺去俺来也www色官网| 国产91精品成人一区二区三区 | 又大又爽又粗| 精品第一国产精品| 精品少妇一区二区三区视频日本电影| 国产又爽黄色视频| 少妇裸体淫交视频免费看高清 | 国产精品影院久久| 国产男女超爽视频在线观看| 国产麻豆69| 99九九在线精品视频| 极品少妇高潮喷水抽搐| 久久中文字幕一级| 狂野欧美激情性xxxx| av不卡在线播放| 国产在线观看jvid| 精品免费久久久久久久清纯 | 久久精品熟女亚洲av麻豆精品| 99国产精品一区二区蜜桃av | 国产又色又爽无遮挡免| 亚洲精品久久久久久婷婷小说| av天堂久久9| 99国产精品99久久久久| 黄色 视频免费看| 日本黄色日本黄色录像| 亚洲一卡2卡3卡4卡5卡精品中文| 一级毛片女人18水好多| 欧美日韩亚洲高清精品| 国产精品.久久久| 少妇人妻久久综合中文| 亚洲欧美清纯卡通| 美女午夜性视频免费| 国产成人精品无人区| 夫妻午夜视频| 亚洲五月色婷婷综合| 少妇被粗大的猛进出69影院| 又大又爽又粗| 人人妻人人添人人爽欧美一区卜| 丝袜在线中文字幕| 亚洲av日韩精品久久久久久密| 日韩有码中文字幕| 真人做人爱边吃奶动态| 男人舔女人的私密视频| 成人免费观看视频高清| 精品一区二区三区四区五区乱码| 丰满少妇做爰视频| 亚洲欧美色中文字幕在线| 天天操日日干夜夜撸| 亚洲精品国产色婷婷电影| 999久久久精品免费观看国产| 十八禁网站网址无遮挡| 久久久精品国产亚洲av高清涩受| 午夜日韩欧美国产| 国产一区有黄有色的免费视频| 国产伦人伦偷精品视频| 欧美中文综合在线视频| 天堂俺去俺来也www色官网| 日韩三级视频一区二区三区| 精品一区二区三区四区五区乱码| av电影中文网址| 日韩 欧美 亚洲 中文字幕| 1024视频免费在线观看| 久久久久久久久免费视频了| 久久久久久久国产电影| 香蕉丝袜av| 黑人猛操日本美女一级片| 另类精品久久| 老司机影院毛片| 美女扒开内裤让男人捅视频| 精品少妇一区二区三区视频日本电影| 99国产精品免费福利视频| 精品国产一区二区久久| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲精品日韩在线中文字幕| 色视频在线一区二区三区| 午夜免费成人在线视频| 人成视频在线观看免费观看| svipshipincom国产片| 欧美日韩黄片免| 国产一区二区三区在线臀色熟女 | 国产精品 欧美亚洲| 精品少妇一区二区三区视频日本电影| 宅男免费午夜| av福利片在线| 精品久久久精品久久久| 美女午夜性视频免费| 麻豆国产av国片精品| 国产1区2区3区精品| 久久久国产欧美日韩av| 亚洲av欧美aⅴ国产| 亚洲情色 制服丝袜| 久久久久久久大尺度免费视频| 国产男女超爽视频在线观看| 精品欧美一区二区三区在线| 国产精品免费视频内射| 男女床上黄色一级片免费看| 黄色片一级片一级黄色片| 精品久久久精品久久久| 国产淫语在线视频| 免费高清在线观看视频在线观看| 亚洲 欧美一区二区三区| 乱人伦中国视频| 纵有疾风起免费观看全集完整版| 女人久久www免费人成看片| 中文字幕人妻熟女乱码| 亚洲专区字幕在线| 日韩欧美一区视频在线观看| 青草久久国产| 国产成人a∨麻豆精品| 精品国产一区二区三区四区第35| 麻豆av在线久日| 人人妻人人添人人爽欧美一区卜| 亚洲av成人不卡在线观看播放网 | 热re99久久国产66热| 美女中出高潮动态图| 制服诱惑二区| 大片免费播放器 马上看| 久久狼人影院| 后天国语完整版免费观看| 一本综合久久免费| 国产一卡二卡三卡精品| 日本一区二区免费在线视频| 成年人午夜在线观看视频| 亚洲久久久国产精品| 欧美黄色淫秽网站| 亚洲中文字幕日韩| 俄罗斯特黄特色一大片| 久久久久精品国产欧美久久久 | 亚洲国产精品999| 精品国产一区二区久久| 777久久人妻少妇嫩草av网站| 十八禁网站免费在线| 中文字幕色久视频| 黄网站色视频无遮挡免费观看| 日韩视频一区二区在线观看| 男女高潮啪啪啪动态图| 亚洲全国av大片| 国产精品 国内视频| 国产免费视频播放在线视频| 美女中出高潮动态图| 99精品久久久久人妻精品| 亚洲午夜精品一区,二区,三区| 十八禁网站网址无遮挡| 777米奇影视久久| 老熟妇仑乱视频hdxx| 亚洲av欧美aⅴ国产| 国产视频一区二区在线看| 日韩视频一区二区在线观看| 欧美少妇被猛烈插入视频| www.自偷自拍.com| 中国美女看黄片| 精品国产国语对白av| 欧美黄色片欧美黄色片| 各种免费的搞黄视频| 国产一级毛片在线| 69av精品久久久久久 | 日日摸夜夜添夜夜添小说| 国产av一区二区精品久久| 桃花免费在线播放| 国产成人欧美| 亚洲av国产av综合av卡| 九色亚洲精品在线播放| 亚洲国产精品一区二区三区在线| 一本大道久久a久久精品| 亚洲九九香蕉| 美女福利国产在线| 岛国毛片在线播放| 国产成人免费无遮挡视频| 日韩熟女老妇一区二区性免费视频| 国产av国产精品国产| 99re6热这里在线精品视频| 亚洲欧洲日产国产| 男女无遮挡免费网站观看| 女人精品久久久久毛片| 国产精品99久久99久久久不卡| 国产成人精品久久二区二区91| 99国产精品一区二区三区| 亚洲人成77777在线视频| 免费一级毛片在线播放高清视频 | 水蜜桃什么品种好| 亚洲av日韩在线播放| 午夜激情av网站| 欧美精品一区二区大全| 美女国产高潮福利片在线看| 亚洲精品中文字幕一二三四区 | www日本在线高清视频| 国产有黄有色有爽视频| 日韩免费高清中文字幕av| 成人免费观看视频高清| 久久久久久久精品精品| 啦啦啦 在线观看视频| 9色porny在线观看| 久久av网站| 制服人妻中文乱码| av欧美777| 亚洲综合色网址| 搡老岳熟女国产| 各种免费的搞黄视频| 亚洲成人免费电影在线观看| 免费人妻精品一区二区三区视频| 黄色视频在线播放观看不卡| 亚洲av日韩在线播放| 美女国产高潮福利片在线看| 交换朋友夫妻互换小说| av不卡在线播放| 久久99一区二区三区| 女性被躁到高潮视频| 99国产精品一区二区蜜桃av | 视频在线观看一区二区三区| 下体分泌物呈黄色| 亚洲黑人精品在线| 成年人午夜在线观看视频| 最近最新中文字幕大全免费视频| 国产老妇伦熟女老妇高清| a级毛片在线看网站| 又黄又粗又硬又大视频| 欧美激情高清一区二区三区| 男男h啪啪无遮挡| 美女高潮到喷水免费观看| 在线观看免费高清a一片| 亚洲国产日韩一区二区| 精品国产乱子伦一区二区三区 | 成人影院久久| 黄片小视频在线播放| 亚洲精品国产色婷婷电影| 国产免费av片在线观看野外av| av网站在线播放免费| 亚洲第一av免费看| √禁漫天堂资源中文www| 黄片小视频在线播放| 人人澡人人妻人| 美女高潮喷水抽搐中文字幕| 亚洲精品av麻豆狂野| 中文字幕另类日韩欧美亚洲嫩草| 免费在线观看视频国产中文字幕亚洲 | 免费高清在线观看视频在线观看| 久久国产精品影院| 免费看十八禁软件| 麻豆乱淫一区二区| 1024视频免费在线观看| 老司机亚洲免费影院| 91av网站免费观看| 国产成人a∨麻豆精品| 国产一区二区三区综合在线观看| av天堂久久9| av视频免费观看在线观看| 中文精品一卡2卡3卡4更新| 黑人巨大精品欧美一区二区蜜桃| 三级毛片av免费| av在线老鸭窝| 亚洲av男天堂| 99久久人妻综合| 亚洲欧美成人综合另类久久久| 老熟妇仑乱视频hdxx| 久久久国产成人免费| 性色av一级| 欧美成狂野欧美在线观看| 亚洲成人免费电影在线观看| 男女边摸边吃奶| 一级a爱视频在线免费观看| 啪啪无遮挡十八禁网站| 国产精品1区2区在线观看. | 大片电影免费在线观看免费| av欧美777| 国产精品一区二区在线不卡| 高清视频免费观看一区二区| 日日爽夜夜爽网站| 国产av精品麻豆| 国产老妇伦熟女老妇高清| 久久天躁狠狠躁夜夜2o2o| 久久久精品区二区三区| 欧美日韩一级在线毛片| 精品人妻1区二区| 久久久久国产一级毛片高清牌| 精品一品国产午夜福利视频| 欧美大码av| 久久久水蜜桃国产精品网| 国产免费视频播放在线视频| 久久人妻福利社区极品人妻图片| 欧美激情久久久久久爽电影 |