1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > VBA是脚本语言吗 – PHP基础 – 前端 apache打开php乱码

VBA是脚本语言吗 – PHP基础 – 前端 apache打开php乱码

时间:2022-02-06 04:40:07

相关推荐

VBA是脚本语言吗 – PHP基础 – 前端 apache打开php乱码

正好笔者有几篇关于这个主题的讨论,索性就再总结一下,希望给读者朋友们一个更客观的视角。

一、什么是脚本语言

学术界将『为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言』称之为脚本语言(Script languages)。

其中编写和运行不能省,也省不掉,那就只能在编译和链接环节省。但脚本最终也是由机器执行,所以总有一个源码到机器码的过程,所以编译还是有的,也省不掉的。所以说,产品没有链接环节的编程语言,就是学术意义上的脚本语言。

二、有哪些常见的误解?

很多人,习惯将解释机制的编程语言称之为脚本语言,其实是不准确的。解释机制,虽然普遍为脚本所采纳,但并非脚本独有。比如JAVA,它不仅有源码到字节码的虚拟机伪指令编译过程,更有打包过程。比如C#/,还有变态的二进制编译机制。

更有甚者,按源码存在的形态,发挥作用的方式来确定是否为脚本,显然过于粗暴。比如,大家熟悉的VBA,网络上能够看得到的,几乎都认为这是一种脚本语言。

三、为何VBA不算脚本语言?

认为VBA是脚本的,大抵是因为它可以录制宏,而且也无法脱离Office环境,运行时不需要编译和链接。初看,的确像那么回事。毕竟宏语言就是脚本语言的重要分支,既然VBA至少是宏语言,那VBA是脚本语言,没毛病啊。但事实上,VBA只是统一了Office的宏语言,也就是通过VBA的语法形式兼容原有宏功能,而Office真正的宏功能,依然被保留着,只是大家很少用了而已,相信用过的朋友是清楚的。

VBA采用了解释机制,而且提供了强大的逐句解释功能,所以运行时不需要编译和链接,完全也是可以的。但并不意味着,VBA就没有编译和链接功能,相反编译和链接是提升VBA性能中,最低门槛的方法。在早期的Office专业版中,微软官方提供了VBA的编译链接工具,不知道的朋友可关注BtOfficer相关文章,也可搜索相关主题。所以,VBA是拥有完整的编写、编译、链接和运行环节的传统独立开发工具。不能脱离Office环境的说法,就不攻自破了,不然VBA是如何授权给AutoCAD,WPS等一众软件商的呢?

VBA不脱离Office环境,主要还是因为便捷。大家都知道,Office从03之前的二进制格式,到现在的OpenXML格式,Office的VBA源码始终是以复合文档格式存储的。而复合文档中,比如Excel中包括工作簿/工作表/VBA工程加密,都仅仅是防止随意修改,因此Office自带的加密体系都很脆弱。很多人抱怨微软为何不弄个强加密,提升Office用户文件的安全性。对于Office而言,容易的编辑环境,是便捷的重要组成形式,提供强加密只会破坏这种便捷性,更何况这对Office本身的安全性并无影响。VBA以源码形态存储,并最终使用逐行解释,就是在贯彻这一思想。

VBA不脱离Office环境,其次是因为定制的某些特性,需要上下文环境。比如在VBA中可以在工作表模块中使用[a1]来代表A1单元格对象及其默认属性,但是其他使用Office对象接口的开发工具,就不能这么干。VBA的代码执行可以实时反馈到Office的操作UI上面,使得VBA代码的编写、调试和运行之间关系更加紧凑直接,沉浸式体验非常好。这是脱离Office的开发工具,很难有的体会。

VBA不脱离Office环境,以闭源著称的微软,真的不知道开源的好处么?VBA以源码形式存储,和可有可无的加密,其实就是变相构建自己的开源生态。想想,为什么地球上有那么多围绕VBA的生意?即便VBA已经比很多人都要老,自媒体时代,还是有大量围绕VBA的话题?

总之,VBA兼容宏功能,具有脚本语言的特征。同时,VBA可以通过编译链接成可执行文件,而脱离Office环境,是一款独立开发工具。但是,因为微软Office的产品定位,VBA又不得不回到源码存储,逐行解释执行的独有方式上来。这便是VBA本来的样子!

更多论述,详见:

1、居然还有不少人认为VB/VBA是脚本语言,偏见害人啊!

2、什么是脚本语言?为何VBA不算脚本语言?

欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,更有便捷的工具,期待你的加入哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。