LabVIEW是一種通用的編程語言嗎?
發(fā)布時(shí)間:2008/5/26 0:00:00 訪問次數(shù):1741
    
    
     作者自傳 jeff kodosky,1976年ni的合作創(chuàng)始人而且從那時(shí)起一直擔(dān)任總經(jīng)理。他在1978年被任命為公司的副董事長。從1980年到2000任r&d部門的副董事長,而且最近被任命為ni 商業(yè)和技術(shù)伙伴。他之所以聞名是因?yàn)樗麆?chuàng)建了labview,即公司的圖形化儀器技術(shù)軟件包。在1976年之前,他任職于ut austin 的arl。jeff從rensselaer理工學(xué)院獲得物理學(xué)士學(xué)位。 我經(jīng)常聽到,甚至有時(shí)關(guān)注于對(duì)labview的爭論,即labview是一種通用的語言還是一種用于測量和自動(dòng)化的特定應(yīng)用程序的開發(fā)環(huán)境。一方面,有經(jīng)驗(yàn)的程序員指出了labview缺乏的流行編程語言所具有的特性,但是另一方面,一些用戶詳細(xì)闡述了他們使用labview所建立的通用應(yīng)用程序,而完全沒有使用任何數(shù)據(jù)采集或分析。 對(duì)labview用戶的調(diào)查可能與最近一個(gè)非正式的對(duì)一個(gè)團(tuán)隊(duì)中的開發(fā)者的調(diào)查一致,這個(gè)團(tuán)隊(duì)中的絕大多數(shù)人都認(rèn)為labview已具有足夠的功能來被歸為通用語言類,而且事實(shí)上,正是以這種方式在使用它。labview被提到次數(shù)最多的不足是常用的遞歸和遞歸式數(shù)據(jù)類型,以及面向?qū)ο蟮慕Y(jié)構(gòu),但是這些都不是建立通用應(yīng)用程序的嚴(yán)重障礙。錯(cuò)誤的問題 盡管有了調(diào)查結(jié)果,但是我認(rèn)為這是一個(gè)錯(cuò)誤的問題而且試圖回答它會(huì)導(dǎo)致錯(cuò)誤的方向。對(duì)我來說,這有點(diǎn)像在問:汽車是不是用來就座的地方?當(dāng)然你可以在汽車?yán)锞妥,但是如果那是你利用它所做的全部,那么你失去了擁有它可以得到的主要用途。一個(gè)較好的問題是:labview可以被用作通用編程語言嗎?或者更好的是:labview能夠被用來創(chuàng)建通用的應(yīng)用程序嗎? 這個(gè)問題的新表述在什么被視為通用這個(gè)方面仍然是同樣模糊的,但是它沒有強(qiáng)調(diào)有時(shí)顯得嚴(yán)謹(jǐn)?shù)臓幷,即labview是不是一種編程語言?一些人并不認(rèn)為它是一種語言,因?yàn)樗皇腔谖谋镜亩宜皇琼樞蚧摹8鼮槠婀值氖,關(guān)于什么被看作是一種編程語言的這個(gè)問題上,那些具有計(jì)算機(jī)科學(xué)背景的人持有最為狹隘的觀點(diǎn)。 但是,經(jīng)過改正后的問題最為重要的一個(gè)方面是它將包容性轉(zhuǎn)換到了正確的方向。換一種方式來表達(dá),即最初的問題間接地暗示了通用編程語言在某種程度上是一個(gè)更大的問題或者是測量和自動(dòng)化編程的一個(gè)父集,然而,實(shí)際上子集卻在其他的方向。 通常,測量和自動(dòng)化的程序必須處理所有與通用程序一樣的問題,如數(shù)據(jù)結(jié)構(gòu)和算法、文件i/o、網(wǎng)絡(luò)i/o、用戶i/o和數(shù)據(jù)庫存取、打印等等這些常見的問題。但是測量和自動(dòng)化程序也必須處理比通用程序更多的問題,例如物理i/o、實(shí)時(shí)性約束和硬件配置。它們也可以具有一些最為苛刻的用戶界面要求。測量和自動(dòng)化程序處理了一個(gè)通用程序所處理問題的父集。 如果工具a和工具b可以被用于一定的任務(wù)集,但是工具b具有更多的功能可使它益于完成額外的任務(wù),哪一種工具是事實(shí)上更為通用的呢?這正是我們關(guān)于labview問題。labview適于測量和自動(dòng)化應(yīng)用程序的能力不是來自于它的基本編程能力被某種方式所限制,而是因?yàn)樗鼈兘?jīng)過了增強(qiáng)和擴(kuò)展。 這就是為什么有必要提出“l(fā)abview能夠被用來創(chuàng)建通用的應(yīng)用程序嗎?”這個(gè)問題而不是“l(fā)abview是一種通用編程語言嗎?”。我們不希望通過把labview僅視為一種編程語言而限制了它的范圍或它將來的發(fā)展。 labview不僅僅是一種編程語言。它是一種高度交互式的開發(fā)環(huán)境用來快速設(shè)計(jì)原型和應(yīng)用程序的漸進(jìn)式開發(fā),從測量和自動(dòng)化到實(shí)時(shí)嵌入式系統(tǒng),再到通用場合。而且現(xiàn)在,labview具有了對(duì)fpga編程下載的能力,所以labview也是一個(gè)硬件設(shè)計(jì)工具。數(shù)據(jù)流 labview的核心是結(jié)構(gòu)化的數(shù)據(jù)流圖。數(shù)據(jù)流已存在了很長一段時(shí)間而且已被深入地理解。事實(shí)上,它是一個(gè)比流行的基于文本語言的控制流更為豐富的計(jì)算模型,因?yàn)樗谋举|(zhì)是并行的,而c/c++和basic則不是——它們必須依賴于對(duì)操作系統(tǒng)的庫函數(shù)調(diào)用來實(shí)現(xiàn)并行機(jī)制。因此,編譯器不能確保代碼的共享部分被適當(dāng)?shù)乇Wo(hù),這使得它難以建立并行程序。這些問題在labview中則不存在。甚至一個(gè)初學(xué)者都可以設(shè)計(jì)一個(gè)高度并行的應(yīng)用程序,而且無需額外的努力或知識(shí)就可以自動(dòng)地將它擴(kuò)展至多個(gè)緊密連接的處理器。 數(shù)據(jù)流一直被倡導(dǎo)為一個(gè)用于商業(yè)應(yīng)用程序的設(shè)計(jì)工具。它被改進(jìn)為一種備選的計(jì)算機(jī)體系結(jié)構(gòu)來避免馮·諾依曼(von neumann)瓶頸。數(shù)據(jù)流分析是優(yōu)化編譯器的核心。為什么應(yīng)用程序不使用數(shù)據(jù)流?一個(gè)數(shù)據(jù)流的自然表示是一個(gè)圖形或圖表,因此在鼠標(biāo)和計(jì)算機(jī)圖形產(chǎn)生之前,它幾乎是不實(shí)際的;一個(gè)數(shù)據(jù)流圖的文本描述與對(duì)一個(gè)街道地圖的文本描述類似,既耗時(shí)又容易產(chǎn)生錯(cuò)誤。但是現(xiàn)在,計(jì)算機(jī)速度不斷加快,存儲(chǔ)容量不斷增長,計(jì)算機(jī)屏幕不斷加大,直接進(jìn)行交互式的數(shù)據(jù)流圖編輯是十分簡單的。 有時(shí)
    
    
     作者自傳 jeff kodosky,1976年ni的合作創(chuàng)始人而且從那時(shí)起一直擔(dān)任總經(jīng)理。他在1978年被任命為公司的副董事長。從1980年到2000任r&d部門的副董事長,而且最近被任命為ni 商業(yè)和技術(shù)伙伴。他之所以聞名是因?yàn)樗麆?chuàng)建了labview,即公司的圖形化儀器技術(shù)軟件包。在1976年之前,他任職于ut austin 的arl。jeff從rensselaer理工學(xué)院獲得物理學(xué)士學(xué)位。 我經(jīng)常聽到,甚至有時(shí)關(guān)注于對(duì)labview的爭論,即labview是一種通用的語言還是一種用于測量和自動(dòng)化的特定應(yīng)用程序的開發(fā)環(huán)境。一方面,有經(jīng)驗(yàn)的程序員指出了labview缺乏的流行編程語言所具有的特性,但是另一方面,一些用戶詳細(xì)闡述了他們使用labview所建立的通用應(yīng)用程序,而完全沒有使用任何數(shù)據(jù)采集或分析。 對(duì)labview用戶的調(diào)查可能與最近一個(gè)非正式的對(duì)一個(gè)團(tuán)隊(duì)中的開發(fā)者的調(diào)查一致,這個(gè)團(tuán)隊(duì)中的絕大多數(shù)人都認(rèn)為labview已具有足夠的功能來被歸為通用語言類,而且事實(shí)上,正是以這種方式在使用它。labview被提到次數(shù)最多的不足是常用的遞歸和遞歸式數(shù)據(jù)類型,以及面向?qū)ο蟮慕Y(jié)構(gòu),但是這些都不是建立通用應(yīng)用程序的嚴(yán)重障礙。錯(cuò)誤的問題 盡管有了調(diào)查結(jié)果,但是我認(rèn)為這是一個(gè)錯(cuò)誤的問題而且試圖回答它會(huì)導(dǎo)致錯(cuò)誤的方向。對(duì)我來說,這有點(diǎn)像在問:汽車是不是用來就座的地方?當(dāng)然你可以在汽車?yán)锞妥,但是如果那是你利用它所做的全部,那么你失去了擁有它可以得到的主要用途。一個(gè)較好的問題是:labview可以被用作通用編程語言嗎?或者更好的是:labview能夠被用來創(chuàng)建通用的應(yīng)用程序嗎? 這個(gè)問題的新表述在什么被視為通用這個(gè)方面仍然是同樣模糊的,但是它沒有強(qiáng)調(diào)有時(shí)顯得嚴(yán)謹(jǐn)?shù)臓幷,即labview是不是一種編程語言?一些人并不認(rèn)為它是一種語言,因?yàn)樗皇腔谖谋镜亩宜皇琼樞蚧。更為奇怪的是,關(guān)于什么被看作是一種編程語言的這個(gè)問題上,那些具有計(jì)算機(jī)科學(xué)背景的人持有最為狹隘的觀點(diǎn)。 但是,經(jīng)過改正后的問題最為重要的一個(gè)方面是它將包容性轉(zhuǎn)換到了正確的方向。換一種方式來表達(dá),即最初的問題間接地暗示了通用編程語言在某種程度上是一個(gè)更大的問題或者是測量和自動(dòng)化編程的一個(gè)父集,然而,實(shí)際上子集卻在其他的方向。 通常,測量和自動(dòng)化的程序必須處理所有與通用程序一樣的問題,如數(shù)據(jù)結(jié)構(gòu)和算法、文件i/o、網(wǎng)絡(luò)i/o、用戶i/o和數(shù)據(jù)庫存取、打印等等這些常見的問題。但是測量和自動(dòng)化程序也必須處理比通用程序更多的問題,例如物理i/o、實(shí)時(shí)性約束和硬件配置。它們也可以具有一些最為苛刻的用戶界面要求。測量和自動(dòng)化程序處理了一個(gè)通用程序所處理問題的父集。 如果工具a和工具b可以被用于一定的任務(wù)集,但是工具b具有更多的功能可使它益于完成額外的任務(wù),哪一種工具是事實(shí)上更為通用的呢?這正是我們關(guān)于labview問題。labview適于測量和自動(dòng)化應(yīng)用程序的能力不是來自于它的基本編程能力被某種方式所限制,而是因?yàn)樗鼈兘?jīng)過了增強(qiáng)和擴(kuò)展。 這就是為什么有必要提出“l(fā)abview能夠被用來創(chuàng)建通用的應(yīng)用程序嗎?”這個(gè)問題而不是“l(fā)abview是一種通用編程語言嗎?”。我們不希望通過把labview僅視為一種編程語言而限制了它的范圍或它將來的發(fā)展。 labview不僅僅是一種編程語言。它是一種高度交互式的開發(fā)環(huán)境用來快速設(shè)計(jì)原型和應(yīng)用程序的漸進(jìn)式開發(fā),從測量和自動(dòng)化到實(shí)時(shí)嵌入式系統(tǒng),再到通用場合。而且現(xiàn)在,labview具有了對(duì)fpga編程下載的能力,所以labview也是一個(gè)硬件設(shè)計(jì)工具。數(shù)據(jù)流 labview的核心是結(jié)構(gòu)化的數(shù)據(jù)流圖。數(shù)據(jù)流已存在了很長一段時(shí)間而且已被深入地理解。事實(shí)上,它是一個(gè)比流行的基于文本語言的控制流更為豐富的計(jì)算模型,因?yàn)樗谋举|(zhì)是并行的,而c/c++和basic則不是——它們必須依賴于對(duì)操作系統(tǒng)的庫函數(shù)調(diào)用來實(shí)現(xiàn)并行機(jī)制。因此,編譯器不能確保代碼的共享部分被適當(dāng)?shù)乇Wo(hù),這使得它難以建立并行程序。這些問題在labview中則不存在。甚至一個(gè)初學(xué)者都可以設(shè)計(jì)一個(gè)高度并行的應(yīng)用程序,而且無需額外的努力或知識(shí)就可以自動(dòng)地將它擴(kuò)展至多個(gè)緊密連接的處理器。 數(shù)據(jù)流一直被倡導(dǎo)為一個(gè)用于商業(yè)應(yīng)用程序的設(shè)計(jì)工具。它被改進(jìn)為一種備選的計(jì)算機(jī)體系結(jié)構(gòu)來避免馮·諾依曼(von neumann)瓶頸。數(shù)據(jù)流分析是優(yōu)化編譯器的核心。為什么應(yīng)用程序不使用數(shù)據(jù)流?一個(gè)數(shù)據(jù)流的自然表示是一個(gè)圖形或圖表,因此在鼠標(biāo)和計(jì)算機(jī)圖形產(chǎn)生之前,它幾乎是不實(shí)際的;一個(gè)數(shù)據(jù)流圖的文本描述與對(duì)一個(gè)街道地圖的文本描述類似,既耗時(shí)又容易產(chǎn)生錯(cuò)誤。但是現(xiàn)在,計(jì)算機(jī)速度不斷加快,存儲(chǔ)容量不斷增長,計(jì)算機(jī)屏幕不斷加大,直接進(jìn)行交互式的數(shù)據(jù)流圖編輯是十分簡單的。 有時(shí)
熱門點(diǎn)擊
- 基于按鍵觸發(fā)方式的PDA壽命檢測系統(tǒng)
- DS1820及其高精度溫度測量的實(shí)現(xiàn)
- WLAN制造測試技術(shù)的發(fā)展
- 基于S3C44B0X的儀表以太網(wǎng)接口設(shè)計(jì)
- 基于光電控制的高精度可高度檢測系統(tǒng)
- 基于Internet的遠(yuǎn)程測控技術(shù)
- 基于信號(hào)接口的自動(dòng)測試系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)
- 測量并抑制存儲(chǔ)器件中的軟誤差
- 高速信號(hào)采集系統(tǒng)在超聲回波測量中的應(yīng)用
- LabVIEW是一種通用的編程語言嗎?
推薦技術(shù)資料
- 滑雪繞樁機(jī)器人
- 本例是一款非常有趣,同時(shí)又有一定調(diào)試難度的玩法。EDE2116AB... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究