如果工具A和工具B可以被用于一定的任務集,但是工具B具有更多的功能有助于它完成額外的任務,那么哪一種工具是事實上更為通用的呢?這正是我們關于LabVIEW問題。通常,測量和自動化的程序必須處理所有與通用程序一樣的問題,如數據結構和算法、文件I/O、網絡I/O、用戶I/O和數據庫存取、打印等等這些常見的問題。而且,測量和自動化程序也必須處理比通用程序更多的問題,例如物理I/O、實時性約束和硬件配置。它們也可以具有一些最為苛刻的用戶界面要求。LabVIEW適于測量和自動化應用程序的能力不是因為其基本編程能力受某種方式所限制,而是因為它們經過了增強和擴展。
這就是為什么有必要提出“LabVIEW能夠被用來創建通用的應用程序嗎?”而不是“LabVIEW是一種通用編程語言嗎?”。我們不希望通過把LabVIEW僅視為一種編程語言而限制了它的范圍或它將來的發展。LabVIEW不僅僅是一種編程語言。它是一種高度交互式的開發環境,用來快速設計原型和應用程序的漸進式開發,從測量和自動化到實時嵌入式系統,再到通用場合。而且現在LabVIEW具有了對FPGA編程下載的能力,所以LabVIEW也是一個硬件設計工具。
數據流
LabVIEW的核心是結構化的數據流圖。數據流已存在了很長一段時間而且深入人心。事實上,它是一個比流行的基于文本語言的控制流更為豐富的計算模型,因為它的本質是并行的,而C/C++和BASIC則不是——它們必須依賴于對操作系統的庫函數調用來實現并行機制。因此,編譯器不能確保代碼的共享部分被適當地保護,這使得它難以建立并行程序。這些問題在LabVIEW中則不存在。甚至一個初學者都可以設計一個高度并行的應用程序,而且無需額外的知識就可以自動地將它擴展至多個緊密連接的處理器。
數據流一直被視為一個用于商業應用程序的設計工具。它被改進為一種備選的計算機體系結構來避免馮·諾依曼(Von Neumann)瓶頸。數據流分析是優化編譯器的核心。為什么應用程序不使用數據流?一個數據流的自然表示是一個圖形或圖表,因此在鼠標和計算機圖形產生之前,它幾乎是不實際的;一個數據流圖的文本描述與對一個街道地圖的文本描述類似,既耗時又容易產生錯誤。但是現在,計算機速度不斷加快,存儲容量不斷增長,計算機屏幕不斷加大,直接進行交互式的數據流圖編輯是十分簡單的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/