LabVIEW编译程序设计

2011-06-30 09:07:36来源: 互联网

  编译程序设计是一个复杂的话题,即使对内行的软件工程师来说也要考虑很多专业知识。

  NI LabVIEW软件是一种多规范的图形化编程环境,含有多种概念,包括数据流,面向对象,以及事件驱动编程。LabVIEW也是跨越多种平台的,能够很好地用于多种操作系统(OSs),芯片组,嵌入式设备,以及现场可编程门阵列(FPGAs)。LabVIEW编译程序是一种精密的系统,在过去的20年中具有令人瞩目的发展。探索NI公司的LabVIEW编译程序的处理过程以及近来编译程序的创新。

  LabVIEW编译程序处理过程

  首先一个VI的编译是类的扩展,主要负责将隐含的类解析为适于终端输出与检查句法错误的类型。在类扩展之后,VI从编辑模型转化为可以被编译程序使用的数据流中间表示(DFIR)图表。编译程序执行几种变换,例如在DFIR图表分解过程中的死码删除,优化,并为代码生成做好准备。DFIR接下来被转化成底层的虚拟机(LLVM)中间表示(IR),有关IR的一系列扫描被运行,以利于更进一步的优化与底层化——最终——变为机器码。

  DFIR提供一种高级的中间表示

  DFIR是一种分级的,结构图代码的,基于图表的IR。类似于G代码,DFIR包含很多具有端点的节点,能够与其它端点相连。一些节点,例如框图,含有图表,这些图表也可以依此类推地包含其它节点。

  图1显示了一个简单VI的最初DFIR。当LabVIEW首次为VI创建一个DFIR时,这是一种G代码的直接翻译,DFIR图表中的节点具有像G 代码中节点一样的一对一的对应性。随着编译程序的执行,DFIR节点有可能被移动,部分分离,或者是增加,然而编译程序将仍然保留原有的特性,例如 LabVIEW代码中固有的并行特性。

  

 
查看一个简单VI 的初始 DFIR 图表 www.elecfans.com

  图 1. 查看一个简单VI 的初始 DFIR 图表

  DFIR能够为LabVIEW编译程序提供两种可观的优势:

  1. DFIR将编辑程序从编译程序的表示中分离——在DFIR出现以前,LabVIEW具有一个单独的VI表示,由编辑程序和编译程序共享。这样在编译过程中,阻止了编译程序修改表示,也会使引入编译程序优化很困难。DFIR引入了一系列的优化与分解措施,能够极大地提高LabVIEW代码的性能,仅要求结构图节点与连线被断开并可以移动。

  2. DFIR作为多个编译程序的前段与后段的公用连接点——今天,LabVIEW能处理很多明显不同的任务。类似地,LabVIEW也为用户提供了多种算法模式,例如LabVIEW MathScript,C一体化,仿真图表,以及状态表(statecharts)。DFIR提供了一种常用IR,它由前端生成而由后端使用,使不同组合的重新使用更加便利。

  DFIR分解与优化

  一旦进入DFIR,VI运行一系列的分解变换,来缩减或标准化DFIR图表。在DFIR图表彻底分解后,DFIR优化扫描开始。有超过30种分解与优化能够提高LabVIEW代码的性能。请仔细查看图2和3显示的简单VI,它被称为Trim Whitespace VI(Trim Whitespace.vi),来自vi.lib。

  

 
2.png

  图 2. 这是任意 DFIR分解前的 VI

  

 
Trim Whitespace.vi 结构图的定义 www.elecfans.com

  图 3. 上面是Trim Whitespace.vi 结构图的定义

  首先,Trim Whitespace.vi被内联到调用VI,如图4所示。现在,不可达代码与死码删除运算可以简化代码。第一个条件结构将总是执行相同的分支,因为输入的是一个恒定值。因此,其余的分支可以同整个第二个条件结构一起移走,因为它们从不执行。循环不变式代码移动将匹配模式基元(Match Pattern primitive)移出循环框,确保其只被执行一次,如图5所示。

  

 

  图 4. subVI内联到调用程序,导致一个 DFIR图表等价于该 G代码

  

 
5.png

  图 5. 一次执行产生优化的 DFIR图表

[1] [2]

关键字:LabVIEW  编译程序

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2011/0630/article_2845.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
编译程序

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved