首页> 中国专利> 工具命令语言集成开发系统

工具命令语言集成开发系统

摘要

本发明涉及计算机语言集成开发环境,公开了一种工具命令语言集成开发系统,使得采用进程方式的命令行方式得到支持,编辑器能完善地支持汉字编码,解释器异常不影响主框架,用户能以工程方式进行开发。这种工具命令语言集成开发系统给解释器创建独立的进程独立于主框架运行,并创建重定向输入、输出管道与主框架连接,实现了命令行方式的运行;在编辑模块中增加了专门针对汉字的判别和处理,采用了剪贴库实现智能化编辑功能,通过定时保存实现了自动备份和恢复功能;设计专门的工程管理模块用于实现工程开发和模板快速创建功能。

著录项

  • 公开/公告号CN1740968A

    专利类型发明专利

  • 公开/公告日2006-03-01

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200410075312.5

  • 发明设计人 张彤旭;

    申请日2004-08-27

  • 分类号G06F9/44(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 17:03:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-01

    未缴年费专利权终止 IPC(主分类):G06F 9/44 专利号:ZL2004100753125 申请日:20040827 授权公告日:20080102

    专利权的终止

  • 2008-01-02

    授权

    授权

  • 2006-05-24

    实质审查的生效

    实质审查的生效

  • 2006-03-01

    公开

    公开

说明书

技术领域

本发明涉及计算机语言集成开发环境,特别涉及工具命令语言集成开发系统。

背景技术

工具命令语言(Tool Command Language,简称“TCL”)是一种一种解释执行的脚本语言(Scripting Language)。它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。由于TCL的解释器是用一个C\C++语言的过程库实现的,因此在某种意义上又可以把TCL看作一个C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,可以很容易就在C\C++应用程序中嵌入TCL,而且每个应用程序都可以根据自己的需要对TCL语言进行扩展。用户可以针对某一特定应用领域对TCL语言的核心命令集进行扩展,加入适合于自己的应用领域的扩展命令,如果需要,甚至可以加入新的控制结构,TCL解释器将把扩展命令和扩展控制结构与固有命令和固有控制结构同等看待。扩展后的TCL语言将可以继承TCL核心部分的所有功能,包括核心命令、控制结构、数据类型、对过程的支持等。根据需要,甚至可以屏蔽掉TCL的某些固有命令和固有控制结构。通过对TCL的扩展、继承或屏蔽,用户用不着象平时定义一种计算机语言那样对词法、语法、语义、语用等各方面加以定义,就可以方便的为自己的应用领域提供一种功能完备的脚本语言。

TCL良好的可扩展性使得它能很好地适应产品测试的需要,测试任务常常会由于设计和需求的改变而迅速改变,往往让测试人员疲于应付。利用TCL的可扩展性,测试人员就可以迅速继承多种新技术,并针对产品新特点迅速推出扩展TCL命令集,以用于产品的测试中,可以较容易跟上设计需求的变化。

另外,因为TCL是一种比C\C++语言有着更高抽象层次的语言,使用TCL可以在一种更高的层次上编写程序,它屏蔽掉了编写C\C++程序时必须涉及到的一些较为烦琐的细节,可以大大地提高开发测试例的速度。而且,使用TCL语言写的测试例脚本,即使作了修改,也用不着重新编译就可以调用TCL解释器直接执行。可以省却不少时间。

目前测试语言基本上以TCL语言为主,TCL已成为自动测试中事实上的标准。由于TCL集成开发环境的发展不够完善,因此对于很多测试工程师都还在使用编辑器+Tcl解释器的工作模式,TCL开发时需要在两个程序之间反复切换,从而导致效率降低。现有的一些Tcl语言的开发工具,如ITT等,使用起来很不方便。因此,一个基于TCL语言的方便易用的集成开发系统将能满足大多数TCL语言开发者的迫切需要。

现有的Tcl语言开发工具采用的总体框架所包含的各个部分是图形用户接口(Graphic User Interface,简称“GUI”)、脚本编辑器和自行开发的脚本解释器。用户通过GUI在脚本编辑器里编辑程序,完成后由自行开发的脚本解释器解释运行。由于这里的脚本编辑器往往采用的是普通的编辑控件,使得其对编码的支持不够,比如对于汉字的处理可能会出现乱码的情况。由于自行开发的脚本解释器是开发者自己编写的解释器,其通用性不够好,往往会存在一些代码问题,出现异常的可能性比通用的脚本解释器要高。更为致命的是,由于脚本解释器和程序主框架整合在一起,由一个进程调用,因此脚本解释器的异常将导致主框架的异常,整个开发工具将终止运行,不但会影响开发效率,而且还可能导致不可挽回的损失。

现有的一些功能增强的文本编辑软件,比如Source Insight等,已经具备利用已有解释器运行脚本的功能,通过配置可以调用已有解释器来运行用户编辑的脚本,然后将解释器的输出重定向回本编辑软件,完成解释运行的功能。由于采用已有的解释器,无法提供更多的扩展命令,即无法适应更多的使用场合。由于现有的编辑软件只能调用解释器运行,不能将输入定向到解释器,因此也不支持命令行方式,造成对初学者的极大不方便。由于编辑软件本质上是针对一个脚本文件的编辑,因此只能以文件为单位解释运行,而不能支持工程的开发。另外,由于编辑软件只是将解释器的输出简单地重定向回本软件,因此用户不能完全控制解释器的输出,且不支持多种信息(如告警信息和错误信息)的输出和显示。

在实际应用中,上述方案存在以下问题:对于采用GUI+自行开发解释器的方案,主要问题是解释器的稳定性不够、解释器对GUI的依赖性较强,支持新脚本语言需要重新开发新解释器的代价较大。

对于利用已有编辑器运行文件的商业编辑软件方案,主要问题是不可扩展,不支持命令行方式,不支持工程方式执行,不支持多种信息输出和显示。

发明内容

有鉴于此,本发明的主要目的在于提供一种工具命令语言集成开发系统,使得采用进程方式的命令行方式得到支持,编辑器能完善地支持汉字编码,解释器异常不影响主框架,用户能以工程方式进行开发。

为实现上述目的,本发明提供了一种工具命令语言集成开发系统,包含用户界面模块、工程管理模块、文本编辑模块、脚本解释器接口模块、脚本解释器,其中

所述工程管理模块用于实现工程开发;

所述文本编辑模块用于实现所述工具命令语言脚本编辑功能;

所述脚本解释器接口模块用于实现所述脚本解释器的重定向输入管道和重定向输出管道;

所述脚本解释器通过建立独立进程而独立于所述系统中其它模块运行,用于对所述工具命令语言进行解释和执行;

所述用户界面模块用于实现所述系统的主框架,调用所述工程管理模块完成所述工程开发相关操作,调用所述文本编辑模块提供脚本编辑环境,通过所述脚本解释器接口模块控制所述脚本解释器的运行,通过所述重定向输入管道向所述脚本解释器输入参数,通过所述重定向输出管道从所述脚本解释器获得运行结果。

其中,在命令行方式下,所述用户界面模块通过所述重定向输入管道向所述脚本解释器发送命令,所述重定向输出管道包含标准输出管道和标准错误管道,所述用户界面模块通过所述标准输出管道从所述脚本解释器获得输出结果和通过扩展命令输出的带错误标记的错误信息,所述用户界面模块通过所述标准错误管道从所述脚本解释器获得脚本本身因语法错误导致的错误信息。

还包含智能数据备份模块,用于实现所述脚本文件和所述文本编辑模块中尚未保存的数据的定时备份和恢复,所述文本编辑模块可通过所述智能数据备份模块实现脚本编辑时所述脚本文件和所述文本编辑模块中尚未保存的数据的定时备份和恢复。

所述智能数据备份模块还用于根据设定参数定时备份所述脚本文件和所述文本编辑模块中尚未保存的数据并加入时间戳,用户通过所述时间戳选择恢复相应时刻所备份的所述脚本文件和所述文本编辑模块中尚未保存的数据;

所述智能数据备份模块还用于在备份所述脚本文件之前,先判断当前的所述脚本文件的内容和所述文本编辑模块中尚未保存的数据与所有已经备份的所述脚本文件的内容是否相同,如果是则不进行备份,否则备份当前的所述脚本文件和所述文本编辑模块中尚未保存的数据。

还包含脚本解释器增强模块,用于实现所述脚本解释器的多线程运行,所述用户界面模块可通过所述脚本解释器接口模块和所述脚本解释器增强模块支持单个脚本中的至少两个线程的运行或者至少两个脚本的并行。

还包含适配器接口模块,用于实现非工具命令语言的工具命令语言接口,所述脚本解释器增强模块可通过所述适配器接口模块调用所述非工具命令语言的代码。

所述脚本解释器增强模块还用于实现对所述适配器接口模块的调用函数接口。

所述用户界面模块还用于实现用户操作界面,通过所述工程管理模块提供所述工程的创建、修改、删除的功能,提供所述工程属性和运行参数的设置的功能,提供根据模板快速创建所述工程的功能;

所述文本编辑模块通过汉字编码判断以及双字节、单字节区别处理实现多汉字编码的支持;

所述文本编辑模块采用不同颜色显示所述脚本文件中的语法相关语句和用户自定义的关键词。

所述文本编辑模块通过任意指定字符加上注释字符实现区别于用户注释的系统注释,所述系统注释用于实现多行代码的自动注释和恢复功能;

所述文本编辑模块通过剪贴库实现高频输入的自动输入功能。

所述脚本解释器接口模块通过在日志中添加的标记,采用至少两种颜色在日志显示工具中显示所述脚本解释器的输出结果。

通过比较可以发现,本发明的技术方案与现有技术的区别在于,本发明给解释器创建独立的进程独立于主框架运行,并创建重定向输入、输出管道与主框架连接,实现了命令行方式的运行;在编辑模块中增加了专门针对汉字的判别和处理,利用不同的注释符实现多行可恢复性注释的功能,采用了剪贴库实现智能化编辑功能,通过定时保存实现了自动备份和恢复功能;设计专门的工程管理模块用于实现工程开发和模板快速创建功能;通过Tcl适配器提供面向各种模块的开发接口,实现Tcl语言对于其他模块的调用;通过多线程解释器的设计,实现对多脚本并行和多线程的支持。

这种技术方案上的区别,带来了较为明显的有益效果,即解释器是由独立的进程运行的,能够支持命令行方式运行,大大方便了初学者学习,解释器与其他模块构成的主框架的分离使得主框架不受解释器异常的影响,提高了效率和可靠性;编辑模块对汉字的支持、多行可恢复性注释功能及智能化编辑功能都大大提高了用户编辑脚本的效率;工程开发和模块快速创建的实现也极大地方便了用户开发;开发接口和多线程的实现使得开发系统的功能更加完善。

附图说明

图1是根据本发明的一个实施例的TCL集成开发工具(TCL Builder,简称“TB”)模块结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

本发明的TCL集成开发系统首先通过建立独立进程运行脚本解释器,使得脚本解释器与主框架无关,从而程序主框架可以豁免于脚本解释器异常的影响;在此基础上通过重定向输入输出管道的建立,使得主框架能够利用脚本解释器解释运行脚本文件或者命令,从而支持命令行方式;其次,通过功能强大的文本编辑器,可以实现完善的汉字编码支持、高效的脚本编辑,再联合智能数据备份模块可以实现脚本的自动备份和智能恢复;另外,通过专门的工程管理模块,可以提供工程开发的功能;通过适配器接口模块,可以实现其他语言到TCL语言的接口,方便与TCL脚本调用其他语言编写的模块;最后,通过脚本解释器增强模块,可以管理脚本解释器的多个线程的运行,可以提供适配器接口模块的调用函数接口。

在本发明的一个实施例中,TCL集成开发系统称为TB,图1示出了根据本发明的一个实施例的TB模块结构示意图。TB包含用户界面模块101、工程管理模块102、文本编辑模块103、智能数据备份模块104、脚本解释器接口模块105、脚本解释器增强模块106、适配器接口模块107以及脚本解释器108。

其中程序主框架由用户界面模块101搭建,因此用户界面模块101可以调用工程管理模块102实现工程开发相关的功能,可以调用文本编辑模块103处理用户的脚本编辑工作,通过脚本解释器接口105完成解释运行。而其中的智能数据备份模块104又给文本编辑模块提供脚本文件和文本编辑模块中未保存的内容的自动保存和恢复功能;脚本增强模块106负责脚本解释器108的多线程运行,负责脚本解释器108的输入输出,与脚本解释器接口模块105通信,还实现了适配器接口模块107的调用函数接口;适配器接口模块107则提供其他语言的TCL接口给脚本解释器增强模块106调用;脚本解释器108即简单地完成脚本解释运行的功能。

下面进一步详细描述各个功能模块的具体功能及其实现方法。

用户界面模块101主要提供了GUI供用户直接操作,同时搭建了主框架,处理用户界面的操作命令,并将结果返回显示在GUI上,它的主要功能包含提供用户操作所需的菜单、工具栏、工程窗口和输出窗口等。一般GUI可以简易的通过工具实现。

工程管理模块102用于支持工程开发。工程是指一项由多个相互协作的脚本文件组成的实现复杂功能的软件开发任务。因此工程的管理必须要包含对多个脚本文件的管理、对工程的属性和运行参数的设置等功能。工程管理模块102实现工程的创建、打开、修改和删除等功能,对应与GUI上的菜单命令。还可以设置工程的属性、修改运行参数。可以根据模板快速创建工程。这里模板是指一些典型的常用的工程框架,可以用户自己创建,也可以采用厂家提供的通用模板。对于模板的支持可以大大提高用户的开发效率。在本发明的一个较佳实施例中,采用模板库来固化已有的成型组件,当用户需要在此基础上进行开发时,继承此组件模块即可,因此在创建工程时,如果采用了某个模板,则会向工程目录自动添加所需文件,由此大大提高开发效率。

文本编辑模块103实现的功能包含:多种文件类型的语法敏感颜色显示,比如关键字和用户自定义关键字用蓝色显示、注释用深绿色显示等;书签功能,比如当代码太长而不方便查找时,可以在某些关键地方如函数声明处定义书签,这样可是大大的方便用户查找;复杂的查找和替换功能,比如对通配符、正则表达式的支持;自动完成输入功能,对高频输入语句可以自动预测输入;多种编码格式的支持,比如对汉字的支持;多行代码的自动注释和恢复;剪贴库功能等。

在本发明的一个较佳实施例中,文本编辑模块103对于汉字编码的支持,首先对字符进行判断是否为汉字编码,可以采用判断函数,比如Visual C++中的ismbstrail()函数,然后即可决定是否采用双字节处理,对于汉字编码必须要用双字节处理,普通字符编码用单字节处理。

在本发明的一个较佳实施例中,文本编辑模块103采用任意字符+TCL注释符“#”作为特殊的注释符,比如将“;#”作为系统注释符,而常用的“#”为用户注释符,这样即可将自动注释和用户注释区分开,得到的好处是当用户采用多行代码自动注释时,系统添加的注释符为系统注释符,此时系统对于用户注释过的行不加系统注释符,此后当用户需要恢复时,系统将所有系统注释符取消,而用户注释符保留,这样便完成了对多行代码的临时注释和恢复功能。这项功能对于程序调试是非常有用的。

在本发明的一个较佳实施例中,文本编辑模块103支持剪贴库功能,比如在编写脚本语言时,有很多都是重复性的操作,如判断语句、循环语句等,将这些使用频率较高的语句升级为剪贴库,在使用时直接插入剪贴,即可提供脚本编写效率。

智能数据备份模块104提供两项功能为:根据设定参数,定时保存数据至指定目录,并能实现数据恢复;保存数据时还进行智能判断,判断当前目录下保存过的文件中是否有与当前需要保存的文件内容和文本编辑模块中尚未保存的数据完全相同的文件,如果有则说明不需要再保存,可以提高效率,节省存储空间。智能数据备份模块104被文本编辑模块104调用即可实现对编辑中的脚本文件和文本编辑模块中尚未保存的文件数据的自动备份和恢复。

在本发明的一个较佳实施例中,智能数据备份模块104在进行备份时,添加时间戳,则用户恢复时可以根据时间戳来选项需要还原的数据。

脚本解释器接口模块105创建脚本解释器108的输入输出重定向管道,使得主框架可以解释运行工程、文件以及部分文本,并将输出结果显示,还可以以命令行方式的解释运行。脚本解释器接口模块105还要负责在脚本运行时调用已设置的解释器执行文件,并将结果输出到GUI的“输出窗口”、“执行结果”中。在这里用到了重定向技术,在执行文件时,需要创建一个新的进程来执行脚本解释器108,并将其标准输出通道用自己的创建的管道替代。

在本发明的一个较佳实施例中,脚本解释器接口模块105中创建标准输入管道、标准输出管道和标准错误管道,其中标准输入管道为重定向输入管道,标准输出管道和标准错误管道为重定向输出管道。通过标准输入管道向解释器发送命令,如果运行结果正常则从标准输出管道输出。如果脚本自身有语法错误,则从标准错误管道输出错误信息,同时脚本执行将会中断。如果脚本执行过程中出现结果与预期结果不同,则可以在脚本中使用工具提供的扩展命令从标准输出管道输出带错误标记的错误信息,脚本可以继续向下进行而不会中断。所述用户界面模块将其也认为是错误信息,去除错误标记后以不同的颜色显示出来。这样可以进一步增强命令行的功能。

在本发明的一个较佳实施例中,脚本解释器接口模块105在日志中加上了特征字符串,在显示日志时分析特征字符串,然后决定显示为何种颜色,即可实现输出结果的多颜色显示功能。在本发明的一个较佳实施例中,采用的是三种颜色,普通信息为黑色,告警信息为蓝色,错误信息为红色。

适配器接口模块107用于提供其他语言到TCL的接口,这样即可实现TCL脚本中字节调用其他语言写的代码或模块,这样即可实现对于ITT等成熟测试工具的兼容,大大方便了程序开发,有利于多语言兼容,提高TCL的性能。

脚本解释器增强模块106则为适配器接口模块107提供了函数调用接口。比如对于ITT等测试工具,根据协议,适配器需要Open、Close、Read、Write、Get和Set这6个函数接口,对应地适配器接口根据TCL指令调用所需的适配器函数。

在本发明的一个较佳实施例中,脚本解释器增强模块106还用于管理脚本解释器108的多线程运行,这样不但可以实现多个脚本的并行、多线程脚本的运行等,还可以兼容ITT等测试工具。比如对于ITT测试工具,根据协议,脚本解释器增强模块106需要实现parallel、fork、waitfork等命令。

脚本解释器108用于完成脚本解释运行功能,并且在每次运行时都是通过创建独立进程运行的,这样的好处是主框架与解释器是相互独立,解释器的运行异常不会影响主框架的运行,避免由于解释器不稳定等而导致主框架终止运行的危险。另外,独立运行的解释器即可通过重定向管道高效地与主框架通信,实现命令行方式。

通过上述各个功能模块之间的相互协作可以提供一套完善的TCL集成开发系统。

虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号