论文部分内容阅读
该论文研究的主题是如何将用TTCN-3描述的测试控制数据转变为能够被测试系统执行的可执行测试控制数据的技术.出于多方面考虑,作者没有采用较为普遍的解释方式,而采用了编译的方式.为了便于与测试系统中其他部件融为一体,首先TTCN-3语言转换成C这种高级语言,相关C代码再与其他部分进行联合编译,最终生成机器代码.作者开发的编译器的处理过程分为4个阶段:词法分析、语法分析、语义分析及代码生成.由于不生成最终的机器码,因此,TTCN-3/C编译器生成的代码可以视为中间代码(如许多程序设计编译器的生成汇编语言代码),因此也不需要考虑最终代码优化问题.该编译器采用两遍扫描.第一遍扫描读入TTCN-3源程序,并对其进行词法分析、语法分析和语义分析.第二遍通过遍历第一遍输出的语法树来完成代码生成.由于时间关系,该论文中反映的工作仅涵盖词法分析、语法分析、语义分析、构造语法树、符号表的建立以及相关的错误处理.代码生成部分的具体工作由TTCN-3编译器小组的另一位同学完成.为了减少编译器的开发周期,并考虑到其它的一些因素,词法分析部分是用自动构造词法分析的工具LEX的FLEX版本生成的,语法分析部分是用语法分析器的生成器YACC的BISION版本生成的.语义分析部分作为语法分析的子程序,嵌入了YACC的语法规则部分.其中,语法分析是作者研究的核心部分.语法分析的难点是如何解决YACC语法规则部分的冲突问题.作者针对这一问题总结了三种通过改变TTCN-3语法规则部分的书写格式来减少冲突的办法.在语法分析和语义分析阶段设计了语法树和符号表这两个编译器中重要的数据结构.并且作者抽象出了TTCN-3中和语义相关的内容.最后简要介绍了错误处理,以及代码生成的设计思路.