文档介绍:西南交通大学
研究生学位论文
-3编译技术研究与实现
年级二○○一级
姓名钱向红
申请学位级别硕士
专业计算机应用技术
指导教师曾华燊教授
二○○四年十一月
Classified Index: TP314
:
Southwest Jiaotong University
Master Degree Thesis
RESEARCH ON -PILING
TECHNIQUES AND IMPLEMENTATION
Grade: 2001
Candidate: Qian Xianghong
Academic Degree Applied for: Master
Major: Computer Application
Supervisor: Prof. Zeng Huashen
Nov. 2004
摘要
本论文的研究背景是:①IPv6协议集的测试,向基于IPv6的NGI(Next Generation )过渡的关键技术之一;②现代路由器以多端口和高速化为特征,对路由器产品的符合协议标准的测试、性能测试难度增加。为了能够模拟路由器的真实工作环境,对路由器的功能与性能指标进行全面的测试,四川省网络通信重点实验室开展了对多端口路由器并发测试技术的研究和测试系统的开发工作。本论文反映的工作是该项目的子系统“双端口测试系统”(TPT – Two Port Tester)中的“测试支撑工具研究”,-3语言描述的测试控制数据转变为测试系统中的可执行测试数据。
传统上这一转换过程可以采用两种方式:解释与编译。目前已有的测试系统中采用解释方式的较多,即“边解释边执行”的测试方法。笔者及其同事在分析了现代高速路由器的测试需要的基础上,在存储空间的占用量和可执行代码修改的方便性,与测试实时性要求的矛盾中,选择了“缩短联机处理时间”优先的策略,-3描述的测试控制数据进行编译的技术路线。
-3的编译过程与传统的编译过程类似,包括词法分析、语法分析、语义分析和代码生成4个阶段。为了与测试系统中其它部件整合,编译器采用两步编译的方式,-3语言转换成C语言代码,第二步将C代码与测试系统的其它组成部分联合编译,最终生成可执行代码。由于最终的可执行代码将由C编译器完成,-3/C的编译过程中没有考虑代码生成的优化问题。编译器采用两遍扫描,-3源程序,并对其进行词法分析、语法分析和语义分析。第二遍遍历第一遍输出的语法树,结合符号表来生成目标C代码。
笔者的工作涉及词法、语法和语义分析,但研究重点在于代码生成部分的设计与实现。-3编译器是双端口测试系统的支撑工具,因此与测试系统相关。编译后的C代码将与单测试例遍历软件(Traverser)和编解码器(E/D – Encoder/Decoder)联合进行C编译,最终形成可执行的单测试例测试代码,-3/C编译器还需要充分考虑与二者的结合问题。鉴于研究中的多端口并发测试必须依赖双端口测试器作为基本测试单元,使其能够集中于对多端口并发测试的控制问题,
而本文反映的工作主要是双端口测试系统支撑工具的研究与开发,也是下一阶段的多端口并发测试系统的基础。
关键词:编译器;-3;语法分析;代码生成
Abstract
The background of the research work presented in this dissertation include: A) Testing of IPv6 protocol stack, especially IPv6 routers, has e one of the key technologies to migrate from the existing to the emerging Next Generation , and B) Existing techniques in conformance and performance testing for modern high-speed routers with multiple ports are inadequate. In order to test a router thoroughly, it is prerequisite to emulate its external real working conditions. However, existing testing techniques are not fledged for this purpose. munication Key Laboratory (COM LAB) has been researching on the techniques for multi-por