我这个人比较喜欢把繁琐机械的事情自动化,而为很多小事情写C/C++程序还是比较麻烦的。因为是编译型语言,所以修改必须编译成二进制文件,除了二进制文件还要保留源码和工程。万一哪天找不到源码了又得重写。脚本语言则没有这些问题,写完了源码,直接丢给解释器执行即可,完全没有编译的烦恼。正是因为这些原因,我经常使用各种脚本语言。
有的时候,写脚本之前会犹豫,那么多脚本语言,用哪种好呢?常常是用某种写好了,过了些天觉得还是用另一种好,结果又写一遍。我想问题的关键在于很好的区别各种语言的优缺点,根据各自的特点觉得其适合于何种应用。所以正好今天有空 ,索性对各种脚本做个透彻的比较。
我用过的脚本语言主要是 Tcl/Tk, Perl, VBS/VBA这几种,以下一一描述吧。
Tcl/Tk
Tcl 的最大特点我觉得就其语法格式极其简单甚至可以说僵化,纯粹的 [命令 选项 参数] 形式,名副其实的 Tool Command Language。不过正因为如此,学习掌握起来就极为容易了,而且这种形式上的简单却大大简化了解析器的复杂性,使得对Tcl 脚本的支持非常容易实现,这些应该也是大多数EDA工具采用Tcl 为其脚本环境的原因吧。但另一方面说,这种形式的简单不太对一些很喜欢使用语法技巧的人的胃口。
Tcl 的另一特点就是通过Tk对跨平台用户界面的支持了,一来有丰富的用户界面元素,二来又可以跨平台。这两点合在一起就非常吸引人了,难怪很多流行的EDA工具也采用Tk来实现其用户界面了,比如Mentor的ModelSim。不过就ModelSim的使用经验来看,Tk界面似乎不太稳定,而且个人认为Tk 用户界面有些难看:p
效率方面,我觉得Tcl是很慢的,不过既然是脚本语言,这也是通病,就算比其他脚本慢一般也不会太在意。
Perl
Perl 我觉得是脚本语言当中,语法,功能,效率三方面的赢家。
Perl的语法源自C/C++,所以对于为数众多的C/C++程序员来说,上手非常容易。而且设计者在设计之初就特别考虑了语法的灵活性和多样性,目标就是使其能够媲美自然语言,正是这种考虑成就了今天Perl语法的灵活而多样。
在数据类型和动态性方面,Perl也支持的不错。
功能上,Perl的扩展模块之多可说是脚本之最,虽然Perl本身没有用户界面支持,但是通过Tk扩展包完美地嵌入了Tk,弥补了这方面的缺憾。
效率方面,Perl解释器的执行速度是比较快的,而且可以通过PerlCC等转为C程序编译为本地执行文件,这就大大超越了一般脚本所能提供的运行效率。
VBS/VBA
出于对VB语言的厌恶,我对VBS/VBA一直不怎么顺眼,我一直觉得拘泥于BASIC这种早期的语言衍生出来的Visual Basic天生就不会如C/C++般好用。也许很多人会强调VB的简易性,动态性和功能的丰富。但简易性和动态性,我可以去用脚本语言,功能的话,只能用在Win32平台上的VB能够走多远呢?而其运行效率更是不能和C/C++相比。所以说VB其实就是编译型语言和脚本语言结合的产物。若不是微软的大力推广,这门语言很难到达现在这个高度。
VBS是VB的一个脚本化版本,弥补命令行功能的缺陷。VBA则是作为诸如 Office 之类的应用程序当中的脚本环境。我对他们的评价如同VB。这两种语言都只能用于特定环境,远不及Tcl的通用性。
总结一下以上的叙述,我觉得选脚本语言的时候要考虑几个方面:
1. 是否需要某种特殊的功能?
文字处理是否复杂?如果很复杂,Perl是最好的字处理语言,如果不太复杂,Tcl足够处理了。
是否需要用户界面?需要的话,Tcl/Tk是唯一选择,不过既然Perl可以内嵌Tk,那用Perl也没问题。
是否需要通过OLE操作其他软件?OLE的最佳排档是VB,但是Perl也通过Win32::OLE包提供了完整的OLE支持。
2。使用环境是否有要求?
如果在某个应用程序内部使用,自然是使用其支持的脚本环境最为方便了。比如要操作Office文档,用其内部提供的VBA是最方便的。不过如果程序能够提供外部接口,比如Office文档也可以通过外部OLE接口操作,功能等同VBA,这时这个要求就不是那么重要了。
3。语言的通用性
我想大多数人还是希望只用一种语言解决所有问题的,个人觉得担当这个人物的最佳人选是Perl。尽管Perl本身不支持界面,不支持OLE,但是他提供的丰富的Package足以对付各种应用。而且我最习惯用的就是Perl,毕竟写了多年的C/C++, 所以还是Perl的语法写来舒服一些。
不过Tcl的地位仍然无法被取代,芯片领域几乎所有的EDA工具都只提供了Tcl脚本环境,而且不提供诸如OLE的外部接口。对于这些应用,Tcl是唯一可选的语言。至于VBS/VBA, 我在发现其可以被Perl替代之后就再也没有用过他们,可以抛弃。
所以,最终结论:在日常应用当中,Perl是王者。但专用领域,如EDA工具环境中,Tcl无可替代。
分享到:
相关推荐
紧接着进入对自动化测试工具所用的.NET编程技术的讨论,然后,使用这些技术完成了能够自动生成测试脚本以进行单元测试、集成测试以及回归测试的自动化测试工具的开发。在对.NET的介绍中,主要涉及了命名空间、类、...
自动化测试脚本自动化测试脚本自动化测试脚本自动化测试脚本自动化测试脚本
脚本是软件测试自动化技术中的一个重要组成部分。本文对不同类型的脚本技术进行了比较和总结,同时阐述了脚本在软件测试自动化技术中的应用情况。
软件测试自动化是软件测试中的一种重要环节,它通过使用特殊的软件测试工具和脚本来实现测试的自动化,以提高测试的效率和准确性。本章节将介绍软件测试自动化的概述、原理和方法,并对常用的自动化测试工具进行分类...
软件测试基础,自动化测试脚本 文档全部来源于互联网,非原创
Jmeter自动化测试脚本录制工具
自动化测试脚本
软件测试自动化 软件测试自动化是软件测试中的一种重要技术,能够提高测试效率、降低测试成本、提高测试质量。本章节将详细介绍软件测试自动化的基础知识、为什么要进行自动化测试、自动化测试的局限性、测试自动化...
TCL语言是自动化测试工具的脚本语言,希望对自动化的同学们有帮助。
自动化脚本编写 简单易学 Auto编辑软件 测试脚本编写 自动化测试软件
软件测试PPT,有需要的来下载使用,包括软件的测试用例、测试脚本、测试报告等软件测试PPT,有需要的来下载使用,包括软件的测试用例、测试脚本、测试报告等软件测试PPT,有需要的来下载使用,包括软件的测试用例、...
实验课前准备一个系统,选择QTP进行功能自动化测试或选择Loadrunner进行性能自动化测试。 实验步骤 1、 拟定测试计划。 2、 撰写测试方案。 3、 设计测试用例。 4、 录制或编写脚本。 5、 执行自动化测试。 6、 填写...
Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。...《Selenium自动化测试 基于Python语言》适合任何软件测试人员阅读,也适合作为大专院校师生的学习用书和培训学校的教材。
软件自动化测试项目也像普通的软件开发项目一样,有编码阶段,自动化测试的编码阶段主要是编写测试脚本实现所设计的自动化测试用例。自动化功能测试脚本地开发方法主要有以下几种:1.线性的2.结构化的3.共享的4.数据...
软件测试PPT,有需要的来下载使用,包括软件的测试用例、测试脚本、测试报告等软件测试PPT,有需要的来下载使用,包括软件的测试用例、测试脚本、测试报告等软件测试PPT,有需要的来下载使用,包括软件的测试用例、...
自动化测试技术--TCL脚本做自动化测试自动化测试技术--TCL脚本做自动化测试自动化测试技术--TCL脚本做自动化测试
android 平台 camera 自动测试脚本,可以支持连续拍照500次以上,次数可以自己修改
基于TCL脚本语言的AT指令自动化测试技术的研究