(1) 有限自动机原理
(2) 词法分析器原理
(3)形式语言基础及其文法运算
(4) 语法分析原理以及3种常用的语法分析方法
(5) 语义分析原理
步骤:
按理说设计一个扫描器首先应该先定义一套形式文法,然后根据文法设计自动机,这些过程实验指导书中已经为我们准备好了;
在此基础上,我自己定义了一套数据结构对字符串插入查找的效率加以优化,并对整个程序的结构进行了调整优化;
在经过自动机状态、状态转移与每个状态所执行的动作后,该Scanner会将源程序解析成相应的Token序列,以作为下一步Translator的输入;
在Translator中,我根据指导书中给出的算数表达式文法结合课上所学内容,自己设计了基于自顶向下推导的Recursive Subroutine过程,并在相应位置添加了语义动作,根据这些进行Recursive Subroutine的代码实现;
我分别为Scanner和Translator设计了测试用例,对程序进行测试,结果和期望相吻合;