《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > LabVIEW還是C語言?(能夠換個(gè)方式提問嗎?)
LabVIEW還是C語言?(能夠換個(gè)方式提問嗎?)
Simon Hogg
NI LabVIEW產(chǎn)品市場部經(jīng)理
摘要: “為什么LabVIEW優(yōu)于C語言,?” 作為LabVIEW產(chǎn)品經(jīng)理,我被很多次問到這個(gè)問題。
Abstract:
Key words :

 “為什么LabVIEW優(yōu)于C語言,?” 作為LabVIEW產(chǎn)品經(jīng)理,我被很多次問到這個(gè)問題,。

老實(shí)說,,這么提問實(shí)際上是錯(cuò)誤的。必須要有具體的應(yīng)用環(huán)境,,這么提問才有意義(例如,,“在這些限制條件下,哪一種語言更適合這個(gè)任務(wù),?”) 若沒有這些細(xì)節(jié),,這個(gè)問題就像為什么面包比面粉好一般無意義,。

如果您想創(chuàng)建一個(gè)測控系統(tǒng),不同于C語言等低級(jí)語言,,使用NI LabVIEW系統(tǒng)設(shè)計(jì)軟件能夠幫助您降低風(fēng)險(xiǎn),、節(jié)省開支并免除不必要的麻煩。在這里我并非暗示LabVIEW是比C語言“更好”的編程語言——特別是考慮到LabVIEW大部分內(nèi)容不僅僅由G語言編寫,,還由C和C++語言組成,。 恰恰相反,這兩種語言各自具有不同的優(yōu)勢,,程序員應(yīng)合理擇取才能達(dá)到自己的目的,。

http://zone.ni.com/cms/images/devzone/pub/Capture.jpg

為什么要把LabVIEW比作面包? 請(qǐng)繼續(xù)閱讀

LabVIEW和C語言相比起來就好比面包和面粉的關(guān)系,。 如果您想做一個(gè)三明治,,就必須先選用面包。 如果您想做一個(gè)蛋糕,,先用的自然是面粉,。 如果用面粉從頭烘烤面包,即昂貴又費(fèi)時(shí)(尤其是當(dāng)你只想吃些小點(diǎn)心時(shí)),,但若做的是蛋糕,,面粉就必不可少了。 同樣的,,你會(huì)發(fā)現(xiàn),,要選擇最適合的編程語言并非易事,它歸結(jié)為使用正確的工具來完成適合的工作,。

C語言提供了低級(jí)別的控制

當(dāng)應(yīng)用資源有限,,必須嚴(yán)格管理時(shí),C語言的使用效果更好,。 由于C語言是相對(duì)低級(jí)別的語言,,因此,即便是最細(xì)微的細(xì)節(jié),,如內(nèi)存分配和線程,,都必須考慮周全。優(yōu)秀的程序員能夠使用低級(jí)別的控制,,省去大部分高級(jí)別應(yīng)用帶來的間接開銷,。此外,還能充分利用目標(biāo)體系構(gòu)架或主機(jī)操作系統(tǒng)屬性,,實(shí)現(xiàn)更高的性能,。

正是由于上述原因,NI程序員使用C或C++編寫了LabVIEW庫中的大部分內(nèi)容,。LabVIEW與C語言在文件I/O和分析等操作的運(yùn)行速度上旗鼓相當(dāng),,因?yàn)檫@些操作都是基于低級(jí)語言編寫的,,并對(duì)LabVIEW支持的不同平臺(tái)和操作系統(tǒng)進(jìn)行了優(yōu)化。

效率Vs控制

有時(shí),,若開發(fā)人員的效率足夠高的話,,就無需手動(dòng)優(yōu)化代碼了。 減少一點(diǎn)控制,,借鑒類似問題的解決方案,,可極大地促進(jìn)項(xiàng)目的高質(zhì)量開發(fā)。 編程語言不斷朝更高級(jí)抽象方向發(fā)展,,讓您更專注于手頭的問題,,而不是被計(jì)算細(xì)節(jié)所困擾。         

LabVIEW: 并行執(zhí)行和真實(shí)I/O

無論使用何種語言,,高級(jí)系統(tǒng)設(shè)計(jì)與低級(jí)執(zhí)行都是獨(dú)立的,。

在測控應(yīng)用中,編程只是系統(tǒng)設(shè)計(jì)者的任務(wù)之一,。 工程師很少有時(shí)間為了計(jì)算和測量硬件,,或是操作系統(tǒng)上的改進(jìn),去更新或重寫舊版本軟件,。 他們通過獲取、處理和呈現(xiàn)真實(shí)數(shù)據(jù)進(jìn)行改進(jìn)——而不是去挖掘新方法處理內(nèi)存分配和線程池,。 使用LabVIEW,,您可以使用經(jīng)測試、支持,、維護(hù)的NI底層代碼庫來創(chuàng)建應(yīng)用,。 而選擇C語言意味著您需要實(shí)現(xiàn)、支持和維護(hù)自己的底層庫,,或從供應(yīng)商處購買(NI提供NI LabWindows ™/CVI 軟件與NI Measurement Studio


從語法角度來說,,C語言指令連續(xù)執(zhí)行的能力非常強(qiáng),CPU能以最快的速度處理它們,。 對(duì)于純粹的數(shù)據(jù)計(jì)算,,在執(zhí)行單一任務(wù)且指令相對(duì)基本的情況下,C語言非常適用,。 而LabVIEW采用的是圖形化語法,,更適用于有真實(shí)時(shí)間約束的并行執(zhí)行任務(wù)。

http://zone.ni.com/cms/images/devzone/pub/Capture2.JPG

使用LabVIEW,,您可以跳過基礎(chǔ)構(gòu)建的步驟,,直接進(jìn)行自定制。

LabVIEW不僅僅是一種編程語言及相關(guān)的代碼庫,。 結(jié)合使用LabVIEW集成開發(fā)環(huán)境(IDE)與NI硬件,,由此所帶來的開發(fā)體驗(yàn)是各個(gè)部分的總和無法企及的,。LabVIEW可以準(zhǔn)確識(shí)別可用的硬件資源,并以下拉菜單和項(xiàng)目名稱顯示可用的I/O通道與執(zhí)行目標(biāo),。 在編輯過程中,,您可以防止或察覺錯(cuò)誤的配置,以避免代價(jià)高昂,、又難以調(diào)試的運(yùn)行時(shí)錯(cuò)誤,。 新一代測量硬件(如NI PXIe-5644R矢量信號(hào)收發(fā)器)甚至可以允許LabVIEW對(duì)其固件進(jìn)行重新定義,達(dá)到傳統(tǒng),、不同的編程語言和儀器無法實(shí)現(xiàn)的性能水平,。

有很多項(xiàng)目都會(huì)延期或超預(yù)算完成,主要是因?yàn)楣こ處煹凸懒司奂匈Y源所需的開銷,。 若您使用LabVIEW,,硬件驅(qū)動(dòng)程序會(huì)以與數(shù)據(jù)分析庫相同的格式返回?cái)?shù)據(jù),UI小部件則以相同的格式顯示技術(shù)數(shù)據(jù),,無需再拼湊不同組件,。

到底哪個(gè)更好: LabVIEW還是C語言?  

這個(gè)問題的最佳答案是:“一切皆有可能,。” 正如《銀河系漫游指南》中所說的,, 除非您明確自己的問題或了解正試圖解決的問題,否則得到的答案也是無意義的,。 對(duì)于熟練的用戶來說,,LabVIEW和C都是非常有用的工具,幾乎可以解決任何問題:LabVIEW適用于高級(jí)測試,、測量和控制應(yīng)用,,而C更容易實(shí)現(xiàn)低級(jí)計(jì)算密集型任務(wù)。

若再有人問起LabVIEW好還是C語言好,,您就回答一切皆有可能,。 這也許是將問題朝著正確的方向引導(dǎo)的唯一途徑了。


進(jìn)一步了解LabVIEW與NI集成開發(fā)環(huán)境,,請(qǐng)?jiān)L問ni.com/labview/zhs,。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。