词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。第三章词法分析及其自动构造•单词的描述工具•单词的识别系统•设计词法分析程序,实现词法分析程序的自动构造回顾什麽是词法分析程序实现词法分析(lexicalanalysis)的程序–逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。词法分析程序和语法分析程序的关系源程序词法分析程序语法分析程序Tokengettoken….源程序词法分析程序语法分析程序源程序词法分析程序语法分析程序源程序词法分析程序的主要任务:–读源程序,产生单词符号词法分析程序的其他任务:–滤掉空格,跳过注释、换行符–追踪换行标志,复制出错源程序,–宏展开,……词法分析工作从语法分析工作独立出来的原因:–简化设计–改进编译效率–增加编译系统的可移植性•单词的描述工具-正规表达式•单词的识别系统-有穷自动机•设计词法分析程序,实现词法分析程序的自动构造令={a,b},上的正规式和相应的正规集的例子aabab(ab)(ab)a(ab)(ab)(aabb)(ab)正规式正规式也称正则表达式,是定义正规集的数学工具。正规表达式(regularexpression)是说明单词的模式(pattern)的一种重要的表示法(记号),我们用以描述单词符号。令={a,b},上的正规式和相应的正规集的例子aabab(ab)(ab)a(ab)(ab)(aabb)(ab){a}{a,b}{ab}{aa,ab,ba,bb}{,a,aa,……任意个a的串}{,a,b,aa,ab,bb……所有由a和b组成的串}{上所有含有两个相继的a或两个相继的b组成的串}讨论两个例子例3.1令={l,d},则上的正规式r=l(ld)定义的正规集为:{l,ll,ld,ldd,……},其中l代表字母,d代表数字,正规式即是字母(字母|数字),它表示的正规集中的每个元素的模式是“字母打头的字母数字串”,就是Pascal和多数程序设计语言允许的的标识符的词法规则.例3.2={d,,e,+,-},则上的正规式d(dd)(e(+-)dd)表示的是无符号数的集合。其中d为0~9的数字。程序设计语言的单词都能用正规式来定义.有穷自动机有穷自动机(也称有限自动机)作为一种识别装置,它能准确地识别正规集,即识别正规式所表示的...