词法分析程序
一.目的和要求
熟悉词法分析程序中使用的刀具自动机,通过设计和调试词法分析程序,实现从源程序中分离各种单词的方法,进一步了解自动机理论。 掌握将语法转换成机器人的技术和贫穷机器人实现的方法。 确定词法分析器的输出格式以及如何区分标识符和关键字。 提高加深课堂理解的词法分析方法的实践能力。 通过本实验,应该实现以下目标。
1 .了解如何从源程序文件中读取有效字符和生成源程序的内部显示文件。
2、掌握词法分析的实现方法。
3、上机调试编写的词法分析程序。
二.背景知识
词法分析是在相对独立的阶段进行的(从头到尾扫描源程序和中间结果,进行相应的加工处理,生成新的中间结果和目标程序)。 在词法分析过程中,编译器通过操作系统从外部介质读取源程序文件中的每个字符。 此外,为了正确识别单词,可能需要进行字符的先行检索和倒带等操作。 因此,为了提高磁盘的读取效率,使扫描仪的操作变得容易,通常在存储器中设置适当大小的输入缓冲器,操作系统直接将磁盘上的源程序字符串分割传送给该缓冲器,以便扫描仪能够处理
词法分析程序的一般设计方案如下。
1、编程语言词法规则? 正规语法? FA;
还是字句规则? 正则表达式? FA;
2、NFA确定化? DFA;
3、DFA最简化
4、确定单词符号的输出形式;
5、简化的DFA单词符号输出形式? 构建词法分析程序。
从设计方案中可以看出,构建词法分析程序需要掌握语法、正则表达式、FA三个知识点。
语法和语言的形式定义如下。
一形式语法g是由以下要素组成的组(V N,V T,p,s )。 其中:
1、V T—非空有限终止符集,即;