词法分析程序
一、目的和要求
通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。确定词法分析器的输出形式及标识符与关键字的区分方法。加深对课堂教学的理解;提高词法分析方法的实践能力。通过本实验,应达到以下目标:
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—非空有限的终结符号集,即Σ;