日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

深入分析LabVIEW 編譯器

出處:shugen567 發(fā)布于:2011-08-06 21:59:44

  LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語言的顯著區(qū)別是:其他計(jì)算機(jī)語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。

  虛擬儀器(virtual instrument)是基于計(jì)算機(jī)的儀器。計(jì)算機(jī)和儀器的密切結(jié)合是目前儀器發(fā)展的一個(gè)重要方向。粗略地說這種結(jié)合有兩種方式,一種是將計(jì)算機(jī)裝入儀器,其典型的例子就是所謂智能化的儀器。隨著計(jì)算機(jī)功能的日益強(qiáng)大以及其體積的日趨縮小,這類儀器功能也越來越強(qiáng)大,目前已經(jīng)出現(xiàn)含嵌入式系統(tǒng)的儀器。另一種方式是將儀器裝入計(jì)算機(jī)。以通用的計(jì)算機(jī)硬件及操作系統(tǒng)為依托,實(shí)現(xiàn)各種儀器功能。虛擬儀器主要是指這種方式。

  LabVIEW編譯程序處理過程

  LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW [2]集成了與滿足 GPIB、VXI、RS-232 和 RS-485 協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX 等軟件標(biāo)準(zhǔn)的庫函數(shù)。這是一個(gè)功能強(qiáng)大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動(dòng)有趣。

  首先一個(gè)VI的編譯是類的擴(kuò)展,主要負(fù)責(zé)將隱含的類解析為適于終端輸出與檢查句法錯(cuò)誤的類型。在類擴(kuò)展之后,VI從編輯模型轉(zhuǎn)化為可以被編譯程序使用的數(shù)據(jù)流中間表示(DFIR)圖表。編譯程序執(zhí)行幾種變換,例如在DFIR圖表分解過程中的死碼刪除,優(yōu)化,并為代碼生成做好準(zhǔn)備。DFIR接下來被轉(zhuǎn)化成底層的虛擬機(jī)(LLVM)中間表示(IR),有關(guān)IR的一系列掃描被運(yùn)行,以利于更進(jìn)一步的優(yōu)化與底層化——終——變?yōu)闄C(jī)器碼。

  DFIR提供一種的中間表示

  DFIR是一種分級的,結(jié)構(gòu)圖代碼的,基于圖表的IR。類似于G代碼,DFIR包含很多具有端點(diǎn)的節(jié)點(diǎn),能夠與其它端點(diǎn)相連。一些節(jié)點(diǎn),例如框圖,含有圖表,這些圖表也可以依此類推地包含其它節(jié)點(diǎn)。

  圖1顯示了一個(gè)簡單VI的初DFIR。當(dāng)LabVIEW首次為VI創(chuàng)建一個(gè)DFIR時(shí),這是一種G代碼的直接翻譯,DFIR圖表中的節(jié)點(diǎn)具有像G代碼中節(jié)點(diǎn)一樣的一對一的對應(yīng)性。隨著編譯程序的執(zhí)行,DFIR節(jié)點(diǎn)有可能被移動(dòng),部分分離,或者是增加,然而編譯程序?qū)⑷匀槐A粼械奶匦?,例如LabVIEW代碼中固有的并行特性。

  圖 1. 查看一個(gè)簡單VI 的初始 DFIR 圖表

  DFIR能夠?yàn)長abVIEW編譯程序提供兩種可觀的優(yōu)勢:

  1. DFIR將編輯程序從編譯程序的表示中分離——在DFIR出現(xiàn)以前,LabVIEW具有一個(gè)單獨(dú)的VI表示,由編輯程序和編譯程序共享。DFIR引入了一系列的優(yōu)化與分解措施,能夠極大地提高LabVIEW代碼的性能,僅要求結(jié)構(gòu)圖節(jié)點(diǎn)與連線被斷開并可以移動(dòng)。

  2. DFIR作為多個(gè)編譯程序的前段與后段的公用連接點(diǎn)——今天,LabVIEW能處理很多明顯不同的任務(wù)。類似地,LabVIEW也為用戶提供了多種算法模式,DFIR提供了一種常用IR,它由前端生成而由后端使用,使不同組合的重新使用更加便利。

  DFIR分解與優(yōu)化

  一旦進(jìn)入DFIR,VI運(yùn)行一系列的分解變換,來縮減或標(biāo)準(zhǔn)化DFIR圖表。在DFIR圖表徹底分解后,DFIR優(yōu)化掃描開始。有超過30種分解與優(yōu)化能夠提高LabVIEW代碼的性能。請仔細(xì)查看圖2和3顯示的簡單VI,它被稱為Trim Whitespace VI(Trim Whitespace.vi),來自vi.lib。

圖 2. 這是任意 DFIR分解前的 VI

  圖 3. 上面是Trim Whitespace.vi 結(jié)構(gòu)圖的定義

  首先,Trim Whitespace.vi被內(nèi)聯(lián)到調(diào)用VI,如圖4所示?,F(xiàn)在,不可達(dá)代碼與死碼刪除運(yùn)算可以簡化代碼。個(gè)條件結(jié)構(gòu)將總是執(zhí)行相同的分支,因?yàn)檩斎氲氖且粋€(gè)恒定值。循環(huán)不變式代碼移動(dòng)將匹配模式基元(Match Pattern primitive)移出循環(huán)框,確保其只被執(zhí)行,如圖5所示。

圖 4. subVI內(nèi)聯(lián)到調(diào)用程序,導(dǎo)致一個(gè) DFIR圖表等價(jià)于該 G代碼

  圖 5. 執(zhí)行產(chǎn)生優(yōu)化的 DFIR圖表

  DFIR后端變換

  在DFIR圖表被分解與優(yōu)化后,后端變換開始執(zhí)行。這些變換評估并注解DFIR圖表,為終將DFIR圖表降低為LLVM IR做好準(zhǔn)備。聚叢程序負(fù)責(zé)將節(jié)點(diǎn)歸為簇,這些簇可以并行運(yùn)行。,編碼發(fā)生器負(fù)責(zé)將DFIR圖表轉(zhuǎn)化為可執(zhí)行的機(jī)器指令用于目標(biāo)處理器。

  LLVM提供一種底層的中間表示

  現(xiàn)代化的設(shè)計(jì):LLVM的設(shè)計(jì)是高度模塊化的,使得其代碼更為清晰和便于排查問題所在。 語言無關(guān)的中間代碼:這使得透過LLVM能夠?qū)⒉煌恼Z言相互連結(jié)起來;另一方面,這也使得LLVM能夠緊密地與IDE交互和集成。另一方面,發(fā)布中間代碼而非目標(biāo)代碼能夠在目標(biāo)系統(tǒng)上更好地發(fā)揮其潛能而又不傷害可調(diào)試性(i.e. 在目標(biāo)系統(tǒng)上針對本機(jī)的硬件環(huán)境產(chǎn)生目標(biāo)代碼,但又能夠直接通過中間代碼來進(jìn)行行級調(diào)試) 作為工具和函數(shù)庫:使用LLVM提供的工具可以比較容易地實(shí)現(xiàn)新的編程語言的優(yōu)化編譯器或VM,或?yàn)楝F(xiàn)有的編程語言引入一些更好的優(yōu)化/調(diào)試特性。

  LLVM是一種多用途,高性能,源代碼開放的構(gòu)架,原來是伊利諾斯州州立大學(xué)的作為研究項(xiàng)目而發(fā)明的。LLVM因?yàn)槠潇`活性,簡潔的API以及不受許可的限制,被廣泛用于學(xué)術(shù)研究與工業(yè)生產(chǎn)。在LabVIEW 2010版本,LabVIEW編碼生成器使用LLVM來生成目標(biāo)機(jī)器碼。在從DFIR圖表創(chuàng)建編碼流后,LabVIEW訪問每個(gè)指令并創(chuàng)建一個(gè)等價(jià)的LLVM表示。軟件會(huì)激活多種優(yōu)化掃描,終,LLVM準(zhǔn)時(shí)制(JIT)構(gòu)架在內(nèi)存中創(chuàng)建可執(zhí)行的機(jī)器指令?,F(xiàn)在LabVIEW可以使用LLVM來執(zhí)行指令綜合,跳變線程,聚合標(biāo)量替代(scalar replacement of aggregates),條件擴(kuò)展,尾端調(diào)用刪除,循環(huán)不變代碼移出,死碼刪除以及循環(huán)展開。

  DFIR與LLVM協(xié)同工作

  DFIR是的IR具有并行性,而LLVM是底層IR,具有目標(biāo)機(jī)器特性的認(rèn)知,二者協(xié)同工作以優(yōu)化開發(fā)者為處理器結(jié)構(gòu)而編寫的LabVIEW代碼,它們能夠在處理器上被執(zhí)行。

  – Chris Wood

  Chris Wood是NI公司LabVIEW方面的傳感器軟件工程師。他擁有德克薩斯A&M大學(xué)計(jì)算機(jī)工程的學(xué)士學(xué)位。

  – Craig Smith

  Craig Smith是NI公司的軟件工程師。他擁有德克薩斯A&M大學(xué)計(jì)算機(jī)科學(xué)的學(xué)士與碩士學(xué)位。


  
關(guān)鍵詞:深入分析LabVIEW 編譯器

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!