LabVIEW是编译型语言还是解释型语言
更新时间:2023-04-20 14:04:01 阅读量: 实用文档 文档下载
LabVIEW 是编译型语言还是解释型语言
LabVIEW 和常用的VC++、VB 一样,是编译型语言。LabVIEW 的语法定义比较严格,在程序运行之前会检查所有语句的语法,一旦查出有差错,程序会报错,不能运行。
在LabVIEW是否是编译型语言的问题上容易引起混淆的原因,一是用户看不到编译时生成的目标文件(在LabVIEW 的环境中,可以直接运行一个VI,并不生成任何其他可执行文件);二是LabVIEW 没有编译这个按钮。此外,VI 运行前似乎也没有占用编译时间。
我们可以把LabVIEW 和 C 语言的存储与编译方法作一比较:C 语言的原文件存储在.c 文件中。需要编译时,要显式地告知编译器进行编译。在耗费一段编译时间后,可以看到编译后生成的含有可执行二进制代码的.obj 文件。而LabVIEW 的原代码是存储在.vi 文件中的。
一个.c 文件中通常保存了多个函数,一个由几十个函数构成的 C 语言工程,也许只由两三个.c 文件组成。而通常情况下,一个.vi 文件只存储一个VI,即相当于 C 语言中的一个函数。所以,一个小型LabVIEW 工程也可能由几十个.vi 文件组成。
但在某些情况下,一个.vi 文件也可能包含了某些子VI(子函数),即这些子函数没有他们自己的.vi 文件。这样的子VI 被称为实例VI(Instance VI)。LabVIEW 7版本中出现的、目前很常用的Express VI就是这种Instance VI。他们都是被存储在调用他们的VI 中的。
.c 文件只保存程序的原代码;而.vi 文件不仅保存了LabVIEW 程序的原代码,也保存了程序编译之后生成的目标代码。在LabVIEW 的工程中看不到类似.obj 这样的文件,就是因为编译后的代码也已经被保存在了.vi 中的缘故。
LabVIEW 在运行VI 之前无需编译,是因为LabVIEW 在把VI 装入内存的时候、以及在编辑VI 的同时进行了编译。
当把一个VI 装入内存时,LabVIEW 先要判断一下这个VI 是否需要被编译。一般情况下,如果不对VI的代码做改动,是不需要重新编译的。但是在两种情况下需要重新编译。第一种,是在高版本LabVIEW 中打开一个用低版本LabVIEW 保存的VI;第二种,是在不同的操作系统下装入和打开了同一个VI。
比如,要在LabVIEW 8.0 中打开一个原来用LabVIEW 7.0 编写保存的VI,则被装入的VI 需要被重新编译,因为不同版本的LabVIEW 生成的目标代码会稍有不同。如果你的工程包含有上百个VI,在新版本的LabVIEW 中打开顶层VI,就会明显地察觉到编译所占用的时间。第二种情况的例子是,在Linux 中打开一个原来是在Windows XP 下编写保存的VI,LabVIEW 也需要重新编译。LabVIEW 为不同操作系统生成的目标代码也是不同的。
在以上两种情况下,打开一个VI 后,会发现VI 窗口的标题栏中的标题后面出现一个星号,这表示需要重新保存VI。此时,虽然VI 中的程序原代码没有改变,但是编译生成的目标代码已经变了,所以需要重新保存。
在LabVIEW 安装了升级补丁之后(比如从8.0升级到8.01),程序会提示你是否需要把LabVIEW 自带的VI 全部批量编译(mass compile)。如果你选择“是”,则可能需要占用几个小时的时间才能完成编译。
LabVIEW 在你编辑程序原代码的同时,就会对它进行编译。LabVIEW 只编译你当前正在编辑的这个VI,它的子VI 已经保存有已编译好的目标代码,所以不需要重新编译了。因为每个.vi 只相当于一个函数,代码量不会很大,编译速度就相当快,用户基本上是察觉不到的。你在编写一个LabVIEW程序时,假如你把两个类型不同的接线端联在一起,会看到程序的运行按钮立即断裂,它表示程序已经编译了,并且编译后的代码不可执行。程序编写完毕,所有VI也都已是被编译好了,程序直接运行即可。
有时会出现这种情况:打开一个VI,VI 左上方运行按钮上的箭头是断裂的,表示VI 不能运行。但是点击断裂的箭头,在错误列表里却没有列出任何错误信息。此时箭头断裂是由于VI 保存的编译后的代
码不能执行引起的。例如在上一次打开这个VI 时,有一个被此VI 调用的DLL 文件没有找到,编译后的代码自然不能执行。而后关闭VI 再把缺失的DLL 文件放回去。下次打开始VI 时,理论上VI 应当可以运行了,但是这时LabVIEW 没有重新编译这个VI,VI 中保存的是上一次不可执行的代码,所以运行按钮的箭头仍然断裂。而程序原代码没有任何错误,所以错误列表中什么都看不到。
修复箭头状态的方法是按住Ctrl + Shift 键,再用鼠标左键点击运行按钮(断裂的箭头)。在LabVIEW 中按住Ctrl + Shift 键+ 鼠标左键点击运行按钮表示编译,但不运行,这相当于其他语言的Compile 按钮。
LabVIEW 采用的把可执行代码与源程序保存在同一文件,分散编译的方式,与其它语言相比是相当特殊的。它既有优点也有缺点。
它最大的缺点是不利于代码管理。比较正规的做法,程序代码需要每天都上传至代码管理服务器。因此,源代码管理需要占用大量的硬盘空间。如果只是程序代码还好,把编译好的执行代码也存在同一个文件里,这就大大加重了代码管理的负担。程序开发的时候,经常需要回头查看过去的修改历史。如果某个文件发生了变化,代码管理软件就会意识到这是代码作了修改。但是VI中有时只是它包含的执行代码发生的变化,因此代码管理软件无法正确的判断出是否代码有变化。
它的优点主要有两条:1. 运行子VI 极为方便。其它语言要运行,只能从主入口进入,不能够单独运行某一个函数。而LabVIEW 则可以直接运行任何一个VI;2. 分散了编译时间。大型的C++程序,编译起来很花时间,有时要用几天。LabVIEW 把编译时间分散到了写代码的同时,因此用户基本感觉不到LabVIEW 编译占用的时间。
正在阅读:
LabVIEW是编译型语言还是解释型语言04-20
工地标准化建设标准05-06
村级脱贫攻坚总结报告12-13
医学论文_医学论文范文08-01
学校校长个人总结报告05-08
钢结构参观总结报告05-30
我的偶像作文600字_初三写人作文08-01
建筑概论01-29
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语言
- 编译
- 解释
- LabVIEW
- 还是
- 八年级地理第二学期期末考试试卷 人教版
- 2022年安徽省安庆市中考数学一模试卷带解析
- 工程机械设备维护保养记录表
- (试卷合集5份)2022届湖南省邵阳市高二化学下学期期末学业质量监
- 第12章直流稳压电源的知识题目解析
- 湖南省益阳市箴言中学2014-2015学年高一上学期期中考试 数学 Wo
- MZ900S移动模架预压方案(DOC)
- 金利科技2012年年度报告
- 2022-2022学年河南省天一大联考高二(下)期末数学试卷(理科)(A卷)
- 江苏宏宝年报(002071)年度报告2011年(冶金工业资金筹集)江苏宏宝
- 部编版小学语文二年级下册第四单元测试题(含答案)
- 2022数学中考模拟试题
- 人教版高中语文作文《如何打开时评议论思维》优课教学设计(配套A
- 希望小学家长会主持稿
- 粤教版高中语文选修唐宋散文选读陆文学自传教学设计
- 会计学本科毕业论文参考题目
- 电气安全防护用具的使用和管理程序
- 幼儿户外活动总结3篇
- 家乡教案下册六年级
- 2022年度机电工程考试及答案