一种将TTCN-3脚本转换为Java源代码的方法,装置和系统制造方法及图纸

技术编号:8323243 阅读:212 留言:0更新日期:2013-02-14 00:02
本发明专利技术公开了一种将TTCN-3脚本转换为Java源代码的方法、装置及系统,以进行针对于TTCN-3脚本的编译。首先,构建TTCN-3脚本的翻译器,该翻译器在对测试目标文件进行分析验证后,将TTCN-3脚本按照预定义的翻译规则翻译成Java文件。结合翻译器的翻译规则,构建Java运行支持库,该支持库实现翻译方案中引用到的基础类,并完成对翻译生成的代码的执行和执行结果的记录等工作。通过结合翻译器翻译后的代码以及运行支持库代码,即可获得完整的符合TTCN-3语义的Java源代码。该方法省去了编译器设计中间语言以及目标代码优化的过程,实现起来简单方便,可自我定制翻译的语法范围。

【技术实现步骤摘要】

本专利技术涉及到计算机脚本编译领域,具体涉及一种将TTCN-3脚本转换为Java源代码的方法和装置。
技术介绍
TTCN-3 (Testing and Test Control Notation version 3,测试及测试控制表达法-3),是一种国际标准化的测试准用开发编程语言,专用于各种测试。典型的应用领域为系统测试、交互性测试、协议测试、业务测试、服务测试、模块测试等。例如,可以通过TTCN-3进行移动和互联网协议测试,基于平台的CORBA(Common Object Request BrokerArchitecture,公共对象请求代理体系结构)测试、API (Applicat ion programminginterface应用编程接口,)测试以及用于描述AUT0SAR(汽车开放系统架构,AutomotiveOpenSystems Architecture)标准的基础软件模块的符合性测试等等。 要运行TTCN-3测试脚本,需要对应的TTCN-3编译器。通常,编程语言的编译器是将语言直接翻译为目标机可执行代码或是目标虚拟机上的可执行代码。但是,TTCN-3编译器主要采用的实现方法却是将TTCN-3语言转化为某一类可编译的高级语言(如Java,C++等),然后再利用第三方编译器获取可执行文件。这种方式虽然牺牲的一定的编译效率,但是利用已存在的高级语言,可以简化代码生成以及后端代码优化工作,极大减小编译器开发的难度。目前已知的编译器都是商业编译器,售价昂贵,虽然功能强大,但是在实际情况中,并不需要编译器支持完整的TTCN-3语法。例如在AUT0SAR V4. O附带的测试脚本里,就并未使用基于消息的通信方式。因此,在语法元素集合相对缩小的情况下,根据可以根据被编译脚本所使用的TTCN-3语法,自己构建一套代码转换方案。由于语法元素仅是完整TTCN-3语言的一个子集,自我设计的难度和复杂度也会相应减少,基于此方法实现的转换功能具有较高的性价比。
技术实现思路
本专利技术的目的是提供了一种将TTCN-3脚本转换为Java源代码文件的方法、装置及系统,通过本专利技术,能够保证转换后代码语义完全符合标准TTCN-3的语义规定,进一步转换后的Java源代码能够直接被Java编译器编译为字节码。本专利技术公开了将TTCN-3脚本转换为Java源代码的方法,包括构建TTCN-3脚本的翻译器;所述翻译器将所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换成Java源代码;结合所述翻译规则,构建运行Java源代码所需的支持库;所述支持库实现翻译中引用到的基础类;配置Java源代码的执行入口,获取Java源代码的可执行文件。优选的,所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换成Java源代码包括对TTCN-3脚本进行词法分析和语法分析,所述词法分析和语法分析进一步包括以下步骤校验和修正所述TTCN-3脚本中词法和语法的错误,分析词法和语法结构,生成语法树;对语法树进行扫描,进行语义分析;扫描经过语义分析的语法树,生成相应的Java源代码。优选的,所述翻译器进一步包括步骤记录TTCN-3脚本文件代码中的符号,提供符号表的检索、弓I入操作。此外,所述语义分析包括对TTCN-3脚本中的代码进行语义检查,关联所述TTCN-3脚本中的代码中的符号,存储生成Java源代码所需要的信息,为生成Java源代码做准备。·翻译器对TTCN-3脚本文件进行词法分析以及语法分析是借助于JavaCC以及JJTree工具,通过编写符合BNF范式的文件来实现,所述BNF范式可根据需求进行剪裁。其中,语义分析按照一定的顺序执行对于输入TTCN-3脚本文件的模块A,首先判断A是否已经被分析过;若是则结束对A的语义分析,若否则检查A中存在的每一个可能的引入B ;若B被分析过,则将B中所有的所有符号引入到当前模块的符号表中;若B未被分析过,则先对B进行语义分析,再将B中所有的所有符号引入到当前模块的符号表中;当对A中存在的每一个可能的引入B检测完毕后,在对A进行语义分析,并标识A为分析过,结束对A的语义分析。本专利技术还公开了一种将TTCN-3脚本转换为Java源代码的装置,其特征在于,包括翻译器构建模块,构建TTCN-3脚本的翻译器;翻译器,所述翻译器将所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换成Java源代码;支持库构建模块,结合所述翻译规则,构建运行Java源代码所需的支持库;支持库,所述支持库实现翻译中引用到的基础类;配置编译模块,配置Java源代码的执行入口,获取Java源代码的可执行文件。翻译器进一步包括对TTCN-3脚本进行词法分析和语法分析的分析模块,所述分析模块包括词法语法解析模块,校验和修正所述TTCN-3脚本中词法和语法的错误,分析词法和语法结构,生成语法树;语义分析模块,对语法树进行扫描,进行语义分析;代码生成模块,扫描经过语义分析的语法树,生成相应的Java源代码。所述翻译器进一步包括符号表模块,记录TTCN-3脚本文件代码中的符号,提供符号表的检索、引入操作。此外,所述语义分析模块进一步包括对TTCN-3脚本中的代码进行语义检查,关联所述TTCN-3脚本中的代码中的符号,存储生成Java源代码所需要的信息,为生成Java源代码做准备的模块。其中,翻译器对TTCN-3脚本文件进行词法分析以及语法分析是借助于JavaCC以及JJTree工具,通过编写符合BNF范式的文件来实现,所述BNF范式可根据需求进行剪裁。优选的,所述语义分析按照顺序执行对于输入TTCN-3脚本文件的模块A,首先判断A是否已经被分析过;若是则结束对A的语义分析,若否则检查A中存在的每一个可能的引入B ;若B被分析过,则将B中所有的所有符号引入到当前模块的符号表中;若B未被分析过,则先对B进行语义分析,再将B中所有的所有符号引入到当前模块的符号表中;当对A中存在的每一个可能的引入B检测完毕后,在对A进行语义分析,并标识A为分析过,结束对A的语义分析。本专利技术还公开了另一将TTCN-3脚本转换为Java源代码的方案,包括一下步骤构建TTCN-3脚本的翻译器;所述翻译器包括所述翻译器完成TTCN-3脚本文件代码到语法树数据结构的转换;记录TTCN-3脚本文件代码中的符号表,提供符号表的检索、引入操作;扫描语法树,进 行语义检查,关联节点和相应的符号;完成模块语法树到Java源代码的转换;构建运行Java源代码所需的支持库;所述支持库实现翻译中引用到的基础类;配置编译模块,配置Java源代码的执行入口,获取Java源代码的可执行文件。以及公开了一种将TTCN-3脚本转换为Java源代码的系统,所述系统包括翻译器构建模块,构建TTCN-3脚本的翻译器;翻译器;支持库构建模块,构建运行Java源代码所需的支持库;支持库,所述支持库实现翻译中引用到的基础类;配置Java源代码的执行入口,获取Java源代码的可执行文件。所述翻译器进一步包括词法语法解析模块,词法语法解析模块,完成TTCN-3脚本文件代码到语法树数据结构的转换;符号表模块,记录TTCN-3脚本文件代码中的符号表,提供符号表的检索、引入操作;语义分析模块,扫描语法树,进行语义检查,关联节点和相应本文档来自技高网
...

【技术保护点】
一种将TTCN?3脚本转换为Java源代码的方法,其特征在于,包括:构建所述TTCN?3脚本的翻译器;所述翻译器将所述TTCN?3脚本按照预定义的翻译规则进行翻译,转换所述成Java源代码;结合所述翻译规则,构建运行所述Java源代码所需的支持库;所述支持库实现翻译中引用到的基础类;配置所述Java源代码的执行入口,获取所述Java源代码的可执行文件。

【技术特征摘要】
1.一种将TTCN-3脚本转换为Java源代码的方法,其特征在于,包括构建所述TTCN-3脚本的翻译器;所述翻译器将所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换所述成Java源代码;结合所述翻译规则,构建运行所述Java源代码所需的支持库;所述支持库实现翻译中引用到的基础类;配置所述Java源代码的执行入口,获取所述Java源代码的可执行文件。2.根据权利要求I所述的方法,所述翻译器将所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换成所述Java源代码包括对所述TTCN-3脚本进行词法分析和语法分析,所述词法分析和语法分析进一步包括以下步骤校验和修正所述TTCN-3脚本中词法和语法的错误,分析词法和语法结构,生成语法树;对所述语法树进行扫描,进行语义分析;扫描经过所述语义分析的所述语法树,生成相应的所述Java源代码。3.根据权利要求2所述的方法,所述翻译器进一步包括步骤记录所述TTCN-3脚本的文件代码中的符号,提供符号表的检索、弓I入操作。4.根据权利要求3所述的方法,所述语义分析需要进行符号查找访问操作,为保证查找到的符号来自于正确的作用域;当进入一个新的符号作用域时建立一个新的作用域对象,并设置为当前的作用域;在退出所述当前的作用域或是所述新的作用域之前,所有新加入的符号将会以双向链表的形式组织起来,并且如果新加入的符号名存在哈希冲突或是同名时,新加入的符号将会覆盖以前的符号。5.根据权利要求2所述的方法,所述语义分析包括对所述TTCN-3脚本中的代码进行语义检查,关联所述TTCN-3脚本中的代码中的符号,存储生成Java源代码所需要的信息,为生成所述Java源代码做准备。6.根据权利要求3或4所述的方法,翻译器对所述TTCN-3脚本进行所述词法分析以及语法分析是借助于JavaCC以及JJTree工具,通过编写符合BNF范式的文件来实现,所述 BNF范式可根据需求进行剪裁。7.根据权利要求5所述的方法,所述语义分析按照顺序执行对于输入所述TTCN-3脚本的模块A,首先判断A是否已经被分析过;若是则结束对A的语义分析,若 否则检查A中存在的每一个可能的引入B ;若B被分析过,则将B中所有的所有符号引入到当前模块的符号表中;若B未被分析过,则先对B进行语义分析,再将B中所有的所有符号引入到当前模块的符号表中;当对A中存在的每一个可能的引入B检测完毕后,在对A进行语义分析,并标识A为分析过,结束对A的语义分析。8.一种将TTCN-3脚本转换为Java源代码的装置,其特征在于,包括翻译器构建模块,构建TTCN-3脚本的翻译器;翻译器,所述翻译器将所述TTCN-3脚本按照预定义的翻译规则进行翻译,转换成Java 源代码;支持库构建模块,结合所述翻译规则,构建运行Java源代码所需的支持库;支持库,所述支持库实现翻译中引用到的基础类;配置编译模块,配置Java源代码的执行入口,获取Java源代码的可执行文件。9.根据权利要求8所述的装置,所述翻译器进一步包括对TTCN-3脚本进行词法分析和语法分析的分析模块,所述进行词法分析和语法分析的分析模块包括词法语法解析模块,校验和修正...

【专利技术属性】
技术研发人员:周毅邹志斌李璐璐冉正
申请(专利权)人:普华基础软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1