LabVIEW——Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器集成环境)应该包含两种含义:其一,LabVIEW是一种图形化的编程语言,所以LabVIEW也被称为:G(graphical)语言;其二,LabVIEW也包含了支持图形化编程语言进行应用软件设计开发的开发环境(开发平台)。
LabVIEW经过二十多年的发展已经充分证明:LabVIEW是极具威力的自动化测试、测量工程设计、开发、分析及仿真试验的最佳软件系统。现在已被广泛应用在汽车、电子、化工、生物及生命科学、航空、航天等等许许多多的领域。
当前,随着LabVIEW本地化进程的不断深入,许多大学(大专)都相继开始设置LabVIEW课程,越来越多的人们(学生)希望更多地了解和深入学习LabVIEW。同时,为什么要学习LabVIEW?谁应该学习LabVIEW?学习LabVIEW会给我们带来什么好处?等等这些问题也会困扰着他们,我想根据两年来的学习体会谈谈自己的认识与看法。
既然LabVIEW是一种编程语言,那么不妨就从编程语言的一些基本概念来开始讨论。
语言:
语言是用来表达我们的思想及进行相互交流和沟通的一种手段。
程序语言:
程序语言是用来指挥计算机表达我们的想法(意念)并能够被计算机执行的程序代码。
程序语言(直接面对物理层的程序语言)我们称之为:机器语言。
机器语言(Machine language):
机器语言,也就是机器码是可被处理器(CPU)加载并执行的由0和1组成的序列。由于硬件处理器的不同,所以机器码序列也会是不一样的。可以讲,机器码是处理器(CPU)可识别的唯一语言,并且是执行速度最高的语言。它与计算机的硬件(CPU)有着最为直接的关系。
但是,当人们看到或使用由0和1组成的序列(程序),实在是感到毫无规律、枯燥无味,并且无法理解和记忆。特别是,当计算机处理器的性能不断提高时(位数增加),机器语言可能被视为世界上最无法读懂和记忆的语言。试想一下,由64位0和1组成代码,如何记忆和理解它们。
为了解决这个问题,使更多地人能够使用计算机,并提高编程效率充分发挥计算机的作用,人们对机器语言进行抽象处理,从而导致了汇编语言的诞生。
汇编语言(Assembly language):
汇编语言,是从机器语言中抽象出来的使用缩写或助记符进行编程的低级编程语言,并且提供较少的控制指令和数据类型,其中的每一条语句都对应于一条相应的机器指令(代码)。通过汇编程序开发环境可以将汇编语言翻译成机器语言,汇编语言同样与给定的处理器相关。
在早期,包括操作系统在内的许多系统软件都是用汇编语言编写的(比如:UNXI操作系统)。使用汇编语言的好处在于可以提高执行速度,并且程序员还可以直接访问系统硬件。但是,汇编语言由于其开发环境和汇编程序都依赖于给定的处理器,并且其指令和数据类型很少,同时程序的可读性和可移植性都很差无法广泛使用。于是人们再次对汇编语言进行抽象处理,从而导致了高级语言的诞生。
高级语言:
高级语言,是从低级的机器语言抽象而来的计算机程序语言。高级语言通常使用和英文单词类似的关键词,这些关键词可以被翻译成多条机器指令。实际上,比汇编语言高级的计算机语言都是高级语言。
C语言是目前最为广泛使用的高级语言。它既具有一般高级语言的特性,同时又具备了一些低级语言特性(某些汇编语言的特点)。
当然,高级语言还有很多种比如像我们所熟悉的:面向对象的C++、Java及具有可视化编程环境的VC、VB、Delphi等等。这些高级编程语言的存在和发展说明,除了各自的特点不相同,应用领域不同外,还有编程方式的不断改进的推动。
比如:从Basic演变到Quick Basic然后又演变到Visual Basic。
从C演变到C++然后又演变到Java(号称没有指针和头文件的C++)及后来的VC。
这些已不在我们讨论的范围内,有兴趣者可以看相关的书籍自来了解。
从“机器语言”抽象到“汇编语言”,又从“汇编语言”抽象到“高级语言”。那么问题是:“高级语言”是否还可以进一步进行抽象出“某种超级编程语言”呢? 从计算机语言的发展规律来看,回答是肯定的。并且,二十年前这种语言就已经出现,那就是:LabVIEW——一种图形化编程语言。
图形化编程语言:
LabVIEW发展到今天,我认为:LabVIEW是从“高级语言”中抽象提炼出来的超级编程语言(到目前为止我还没有从哪本中外LabVIEW书籍中看到这样的提法或概念)。
这种将“高级语言”传统的写代码的编程方式,抽象变为以“图形、节点、连线”方式的编程语言,的确具有超级编程语言的特点。
用C和C++编写的LabVIEW具有比C和C++更明显得优点。
LabVIEW本身的易学易用、即学即用的特点也充分的证明了这个观点。
问题在于:图像化的编程方法是否真的就会比“高级语言”代码编程方法更高级?我的回答应该是肯定的。下面通过两个例子来进一步说明:
例1:
小时候,在我们刚刚开始会说话时,大人通常是用“看图说话”的方式来教我们认识什么是苹果?什么是梨?什么是香蕉?显然,利用图形或图像的概念使我们很快认识了这些水果。试想如果用文字或拼音来教我们认识这些水果,效果决不会好的。换句话说,图形或图像由于简洁明确,的确要比文字或拼音更适合初学者来认识和区分。事实上,编程语言也是具有相同的规律。
对于学习过某种高级语言的人来讲,对复杂的语法规则、指针、内存、类库等等的掌握根本谈不到轻松易学。
LabVIEW做到了这一点,用LabVIEW编程根本无需考虑什么:语法规则、指针、内存、类库等。LabVIEW这种图形化语言将许多复杂的事情抽象的极为简单明了。
例2:
时光倒退回二十多年前,那时人们对计算机的操作、控制还基于称为DOS的磁盘操作系统(Diskette Operating System),即便是一个很简单的操作人们也会噼噼啪啪的敲击一阵键盘,对于复杂操作人难免还要认真仔细的查阅DOS手册。那时的MicroSoft还是一个编写DOS的小公司。后来,Mac(苹果电脑)首先实现了计算机的图形化操作,点击鼠标、利用拖拽即可完成对计算机的一些操作控制。LabVIEW大概也是受到了图形操作系统的启发(不知是否真的如此),开始了LabVIEW的设计,并在Mac机上完成了LabVIEW1.0版的发布。直到MicroSoft也设计出图形化操作系统时,LabVIEW才发布了Windows版。这大概是LabVIEW2.0,到LanVIEW3.0发布时它已经全面支持跨平台使用了。
计算机操作系统的图形化无疑加快了计算机使用的普及和使用的大众化(当然也包含硬件发展的推动),使计算机由过去的专供专业人员操作使用,而真正变成了不分年龄、不分专业的大众工具。其中,真正起核心作用的还是图形化操作系统得简洁、方便和易学。
编程语言的图像化应该与操作系统图形化一样,给那些不善于使用代码编程的人带来了实现复杂程序设计的机会(我就是其中的一个受益者)。
其实许多学习过LabVIEW的人都回有这样的体会:图形化编程的确大大降低了程序设计的复杂度,LabVIEW的确是比那些“高级语言”更好的超级编程语言。
LabVIEW的跨平台特点,以及在同一个平台下对FPGA、DSP及嵌入式微处理器的开发提供图形化编程的支持,难道不可以称之为:超级编程语言吗。
LabVIEW是从“高级语言”中利用图形化的抽象方法抽象出来的超级编程语言。那么,还能对它继续进行抽象处理,进一步提高它的简洁性和方便性吗?
Express VI
DAQ助手
仪器I/O助手
视觉助手
难道这些不是吗?
这就是我给出的:为什么要学习LabVIEW的理由之一。