登录
首页 嵌入式系统 嵌入式系统
回帖 发帖
正文

主题:技术更新太快,程序开发迎来"G"时代

点击:903 回复:2

图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
     现在最流行的么就是LabView .
     G 语言是图形化编程语言(Graphical Programing Language)的缩写。LabVIEW 有的时候也被叫做 G 语言。我们可以这样理解:LabVIEW 是一个开发环境(类似的如 Visual Studio 也是一个开发环境),在这个环境下编写的代码就是 G 语言代码(类似的如在 Visual Studio 下写出的C代码)。
     目前在中国,很多工程师认为 LabVIEW 是一个应用在工业测控领域的应用软件,并不理解他是一个编程语言。原因有两个,首先是因为它和以往其它的编程语言差距太大,第一次看到它的人倒是更容易联想到电路板布线、工业总线配置软件等;其次是因为 LabVIEW 在中国使用的年头不多,大多数用户仅用到了 LabVIEW 的一小部分功能,还没有真正体验到 LabVIEW 的强大。
既然是一门编程语言,在使用 LabVIEW 的时候,就应该按照程序设计的思想来解决问题。举一个例子来说明如果用程序设计的思想来解决问题:
      我们需要解决的问题是求两个正整数的最大公约数,这是一个非常常见的编程例子。
用 LabVIEW 来解决这个问题,应当与用其他语言求解这个问体的思路是一致的。按照程序设计的一般方法,解决这个问题可以三个步骤:
      第一:确定问题的需求,给出需求的详细说明。对于这个求最大公约数的问题,我们在这一步需要做的就是写出程序输入输出的详细定义。如果是用普通的文本语言编程,你至少应该以文档的方式吧问题需求记录下来。但是 LabVIEW 程序员在这一步有个更方便的设计方法——直接在 VI 的前面板上定义程序输入输出:程序需要两个输入值(a, b),用 Numeric control 代表,一个输出(x)用 indicator 代表。输入要求是正整数,我们可以把 Numeric control 的数据类型设置为 U32,并在这个控件的属性中设置最小值为1。再为 VI 和它每个控件添加上帮助信息,VI 的前面板就可以用户提供一个详细的 VI 的功能描述以及接口定义。
     第二:设计解决问题的算法。一个问题通常不只会有一种解决方法(算法),比如说我们的求最大公约数问题,你可以采用穷举算法,把1到a之间所有的整数都试一遍,然后找到那个最大的公约数;也可以使用g.c.d.算法。
多数情况下这一步骤和具体的语言环境无关,比如说我们的问题不论采用哪种语言编写,g.c.d.算法的效率都高于穷举法。但是某些时候可能要考虑 G 语言不同与文本语言的特性,在 G 语言下使用不同于其他语言的算法。比如要遍历一棵树,可以使用递归的算法,也可以使用循环的算法。在C语言下,一般会选择递归的算法,因为递归算法的思维方式更自然,更容易掌握,实现起来也比较方便;但是在 G 语言下,递归的实现并不那么容易,效率也比较低,所以在 G 语言中,选择循环的算法更加适合。
对于我们要解决求最大公约数问题,我们还是选用g.c.d.算法,它的运算过程如下:
      Step1: If (a mod b == 0) goto Step3; else goto Step2;
      Step2: (a, b) = (b, a mod b); goto Step1;
      Step3: x=a; return;
第三:在 LabVIEW 下实现设计好的算法。G 语言之所以被称之为图形化的编程语言,并不仅仅是因为它的程序又图形化的界面(前面板),最本质的原因是因为它的代码也是通过画图的方式来编写的(程序框图)。
针对本例,可以使用 while 循环,a 和 b 分别用循环上的两对移位寄存器表示。在循环体内首先判断 a 是否被 b 整除,如果是,结束循环;否则把 b 和 a mod b 赋给两个移位寄存器,进入下一次循环。
     图形化编程语言是数据流驱动(以后再解释)的,与一般文本编程语言的过程驱动机制有很大差别,因而在程序设计的思路上也与文本编程语言有所区别。尤其是有过文本编程经验的程序员开始使用 LabVIEW 的时候,会感觉 LabVIEW 缺失了很多文本语言常用的功能,比如使用局部变量、跳出循环等等,因而 LabVIEW 用起来不是太方便。另外 LabVIEW 编写出来的的代码连线乱七八糟,造成程序阅读和维护的困难。不过这些问题其实不能算是 LabVIEW 本身的问题,主要是由于编程者还没有掌握 G 语言的编程思想造成的。
     LabVIEW 虽然不能覆盖所有文本语言的优点,但它具有自己的特色。在编写与工业领域设计、测量、控制等相关的程序或系统时,其开发效率大大高于其它语言。
在 LabVIEW 中可以为代码添加图文并茂的注释,再加上人类对图形的识别速度远远超过对文本的分析速度,一个优秀程序员编写的 G 语言代码的可读性要高于文本语言一个层次。
     用习惯了C语言,但效率总是提不起来,特别是一些模块的编写,更是令人头痛.突然发现这么好的语言,开心不已.希望"G"语言迅速普及起来,开启程序开发者的另一遍天地.
09-08-08 13:56
很喜欢LabVIEW,大学里认真学过一阶段,感觉LabVIEW功能太强大了。
09-08-08 14:01
抽象,请问在学这个之前,我需要学习一些什么课程?
09-08-08 14:50

工控新闻

更多新闻资讯