• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C++語(yǔ)言跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)實(shí)現(xiàn)

      2014-10-21 20:07:51李俊超
      電腦迷 2014年17期
      關(guān)鍵詞:跨平臺(tái)軟件開(kāi)發(fā)語(yǔ)言

      李俊超

      摘 要 C++作為一種主流的編程語(yǔ)言,不僅繼承了C語(yǔ)言的編程效率,而且拓展了自身的語(yǔ)音特性,例如模板、泛型編程等,因此幾乎所有的平臺(tái)都支持C++語(yǔ)言,并得到了廣泛地應(yīng)用,然而在不同的平臺(tái)下,C++語(yǔ)言內(nèi)部變量的定義和擴(kuò)展功能卻不盡相同,這就給跨平臺(tái)軟件的設(shè)計(jì)開(kāi)發(fā)帶來(lái)了很大的困難。本文簡(jiǎn)要敘述跨平臺(tái)概念,并對(duì)C++跨平臺(tái)的開(kāi)發(fā)的影響因素以及設(shè)計(jì)實(shí)現(xiàn)進(jìn)行分析,提供了一些想法思路,希望能對(duì)跨平臺(tái)軟件的開(kāi)發(fā)起到一定的推動(dòng)作用。

      關(guān)鍵詞 C++語(yǔ)言 跨平臺(tái) 軟件開(kāi)發(fā) 設(shè)計(jì)實(shí)現(xiàn)

      中圖分類(lèi)號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A

      20世紀(jì)70年代,Bell實(shí)驗(yàn)室首先開(kāi)發(fā)了C語(yǔ)言系列,經(jīng)過(guò)十年的演化變遷,80年代C++語(yǔ)言便應(yīng)運(yùn)而生。C++語(yǔ)言是C語(yǔ)言的改良進(jìn)化版本,除了沿用C語(yǔ)言直接運(yùn)行在機(jī)器上,不需要虛擬機(jī)作為中介的高效率特點(diǎn)之外,根據(jù)軟件開(kāi)發(fā)的需求還融入了虛函數(shù)、模板、操作符重載等特性功能,因此C++語(yǔ)言得到了特別廣泛地應(yīng)用。C++語(yǔ)言幾乎所有的平臺(tái)下進(jìn)行使用,然而在不同平臺(tái)之間的應(yīng)用時(shí)卻難以兼容,隨著多元化軟件系統(tǒng)開(kāi)發(fā)的需求日益增加,如何在軟件開(kāi)發(fā)中設(shè)計(jì)并實(shí)現(xiàn)C++語(yǔ)言跨平臺(tái)的方案將會(huì)是今后工作的重點(diǎn)。

      跨平臺(tái)是軟件開(kāi)發(fā)中的常用概念,指的是在一個(gè)操作平臺(tái)Windows設(shè)計(jì)開(kāi)發(fā)的應(yīng)用程序在另一個(gè)操作平臺(tái)Linux下同樣能夠使用運(yùn)行,二者完全兼容。隨著當(dāng)前軟件工程的迅猛發(fā)展,跨平臺(tái)的軟件開(kāi)發(fā)能夠給應(yīng)用程序本身帶來(lái)巨大的市場(chǎng)潛力,與此同時(shí),如果應(yīng)用軟件針對(duì)不同的CPU提供并測(cè)試各自的編譯版本,再發(fā)布到各自平臺(tái)上而產(chǎn)生不同的軟件版本,這樣的工作量是特別龐大的,因此,跨平臺(tái)的開(kāi)發(fā)致力于是應(yīng)用程序幾乎不做修改就能運(yùn)用到不同的平臺(tái)上。

      1跨平臺(tái)軟件開(kāi)發(fā)的影響因素

      在C++語(yǔ)言跨平臺(tái)軟件開(kāi)發(fā)過(guò)程中,除了各個(gè)平臺(tái)間差異性和兼容性之外,C++語(yǔ)言自身的特性以及編譯環(huán)境對(duì)其都有影響,無(wú)形之中加大了跨平臺(tái)軟件開(kāi)發(fā)的難度。

      (1)不同平臺(tái)之間的差異性

      軟件開(kāi)發(fā)中的編程語(yǔ)言并不能直接地作用于計(jì)算機(jī)硬件設(shè)備,它們需要調(diào)用系統(tǒng)的API接口來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)的控制操作,然而目前許多操作平臺(tái)的API接口都有自己的標(biāo)準(zhǔn),并且相互之間差異性較大,例如Windows系統(tǒng)和Unix系統(tǒng)之間的API接口的實(shí)現(xiàn)方式和實(shí)現(xiàn)原理都不一樣,這就在很大程度上阻礙了同一款軟件應(yīng)用于不同平臺(tái)。在實(shí)際開(kāi)發(fā)過(guò)程中,操作平臺(tái)的差異性會(huì)貫穿始終,從設(shè)計(jì)、代碼編寫(xiě)到最終測(cè)試都會(huì)涉及。

      (2)編譯器的定義不同

      編譯器的主要功能是根據(jù)特定的語(yǔ)言定義將源代碼轉(zhuǎn)變成為可執(zhí)行控制的指令,它顯然和C++語(yǔ)言的跨平臺(tái)應(yīng)用有著十分巨大的關(guān)聯(lián),由于語(yǔ)言定義的不同,同一種源代碼在不同的編譯器中最終得到的控制指令也不盡相同,這也就造成了跨平臺(tái)軟件開(kāi)發(fā)難以開(kāi)展實(shí)現(xiàn)。例如目前Windows平臺(tái)上的Visual Studio C++編譯器和Linux平臺(tái)上的GCC編譯器適用于C++程序代碼的編譯,然而由于C++的許多語(yǔ)言特性的實(shí)現(xiàn)細(xì)節(jié)都留給了編譯器開(kāi)發(fā)商,每個(gè)開(kāi)發(fā)商對(duì)編譯器的定義不同,從而致使C++源代碼不能跨平臺(tái)編譯。

      (3)編譯系統(tǒng)的不同

      編譯系統(tǒng)可以簡(jiǎn)單到一個(gè)執(zhí)行編譯器和連接器的命令腳本,也可以復(fù)雜到整個(gè)命令程序的生成??缙脚_(tái)的軟件開(kāi)發(fā)必須要使用一個(gè)統(tǒng)一標(biāo)準(zhǔn)的編譯系統(tǒng),這樣才能達(dá)到對(duì)程序代碼執(zhí)行的一致性。例如Windows系統(tǒng)下的Visual Studio和Apple的Interface Builder編譯系統(tǒng)完全束縛了跨平臺(tái)編譯系統(tǒng)的開(kāi)發(fā),這兩者之間的編譯定義、指令執(zhí)行都有著十分巨大的差別,往往同一個(gè)源代碼在各編譯系統(tǒng)中得到的編譯結(jié)果也完全不同,這也就導(dǎo)致跨平臺(tái)軟件開(kāi)發(fā)無(wú)從談起。

      2 C++語(yǔ)言跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)實(shí)現(xiàn)

      C++語(yǔ)言跨平臺(tái)軟件開(kāi)發(fā)的實(shí)現(xiàn)還存在著一些因素的阻礙,因此,采取何種方法措施清除這些影響因素是實(shí)現(xiàn)跨平臺(tái)軟件開(kāi)發(fā)的關(guān)鍵。

      (1)避免語(yǔ)言的擴(kuò)展特性

      許多語(yǔ)言為了滿足軟件開(kāi)發(fā)的需求,往往會(huì)增添新的擴(kuò)展特性,然而新的特性由于缺乏長(zhǎng)期的實(shí)踐性和規(guī)范性,經(jīng)常出現(xiàn)沒(méi)有被確切測(cè)試和精確定義的意外情況,其中常常包含著許多的異常漏洞和非標(biāo)準(zhǔn)內(nèi)容,另外跨平臺(tái)開(kāi)發(fā)對(duì)于程序的異常十分敏感,稍有瑕疵就難以排除障礙,因此,在實(shí)際的軟件開(kāi)發(fā)過(guò)程中應(yīng)當(dāng)使用C++的標(biāo)準(zhǔn)特性而避免使用其擴(kuò)展特性。

      (2)建立跨平臺(tái)代碼庫(kù)

      在跨平臺(tái)軟件開(kāi)發(fā)過(guò)程中,通常會(huì)遇到某些特性定義一個(gè)平臺(tái)上有而另一個(gè)平臺(tái)上沒(méi)有的問(wèn)題,例如Windows平臺(tái)有樹(shù)形控件和遞歸互斥體,DOS下沒(méi)有線程,Linux下的線程是依據(jù)進(jìn)程來(lái)實(shí)現(xiàn),因此這就需要建立跨平臺(tái)代碼庫(kù)來(lái)解決這一問(wèn)題,通過(guò)建立一套完善的跨平臺(tái)代碼庫(kù)來(lái)實(shí)現(xiàn)某些特性統(tǒng)一化。

      (3)采用腳本文件進(jìn)行管理

      一般來(lái)說(shuō),軟件開(kāi)發(fā)過(guò)程中將會(huì)編寫(xiě)大量的代碼,特別是涉及到跨平臺(tái)領(lǐng)域時(shí),這一問(wèn)題就顯現(xiàn)地格外嚴(yán)重,因此為了是代碼編寫(xiě)更加簡(jiǎn)單明了,通常使用腳本文件進(jìn)行管理。利用腳本文件在程序編譯之前將相關(guān)文件從中剝離出來(lái),并分配到合適的位置上,然后再應(yīng)用程序的運(yùn)行過(guò)程中,再?gòu)呐渲梦募凶x取所需要的配置選項(xiàng),另外在軟件開(kāi)發(fā)過(guò)程中要盡量隔離平臺(tái)依賴程度較高的文件格式,而是采用腳本文件來(lái)進(jìn)行可控管理。

      總而言之,隨著廣大用戶對(duì)軟件便利性和實(shí)用性功能的渴求,跨平臺(tái)軟件開(kāi)發(fā)設(shè)計(jì)將會(huì)成為軟件工程中的一門(mén)重要分支,同時(shí)也將是今后軟件工程發(fā)展的方向趨勢(shì)。

      參考文獻(xiàn)

      [1] 羅莎.計(jì)算機(jī)中C語(yǔ)言的應(yīng)用特點(diǎn)分析[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(05).

      [2] 楊鵬.基于C++語(yǔ)言的跨平臺(tái)軟件開(kāi)發(fā)的設(shè)計(jì)[J].硅谷,2014(02).

      猜你喜歡
      跨平臺(tái)軟件開(kāi)發(fā)語(yǔ)言
      語(yǔ)言是刀
      文苑(2020年4期)2020-05-30 12:35:30
      跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
      讓語(yǔ)言描寫(xiě)搖曳多姿
      累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
      信息安全環(huán)境下的計(jì)算機(jī)軟件開(kāi)發(fā)研究
      建模技術(shù)在軟件開(kāi)發(fā)中的應(yīng)用
      核電廠定期試驗(yàn)管理軟件開(kāi)發(fā)
      科技視界(2016年21期)2016-10-17 20:50:03
      FPGA軟件開(kāi)發(fā)過(guò)程中編碼規(guī)范的作用
      科技視界(2016年20期)2016-09-29 13:35:10
      我有我語(yǔ)言
      基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
      招远市| 漳浦县| 沂水县| 横山县| 兴和县| 桐城市| 油尖旺区| 缙云县| 屏东市| 托里县| 清流县| 玛曲县| 通城县| 漠河县| 贵溪市| 萝北县| 滕州市| 新乐市| 诏安县| 武功县| 保亭| 贡觉县| 文昌市| 大庆市| 安康市| 虞城县| 彭州市| 靖边县| 亳州市| 泗水县| 怀集县| 桦川县| 阿坝| 望都县| 林周县| 延津县| 翁牛特旗| 黄陵县| 阿鲁科尔沁旗| 灵宝市| 赤峰市|