词法分析程序自动生成的困难有如下:
1、某些语言允许程序员编写程序时,不写空格,或可以将基本字再定义。给程序员带来了便利,却给词法分析带来的困难。
2、一张转换图只包含有限个状态,其中有一个为初态,至少要有一个终态。
3、所有基本字都是保留字,用户不能用它们作自己的标识符。
4、如果基本字、标识符和常数(或标号)之间没有确定的运算符或界符作间隔,则必须使用一个空白符作间隔。
正规文法。
由正规文法G的各个产生式写出对应的正规方程式,得到联立方程组。
把方程组中的非终结符当作变元。
求此正规式方程组的解,得到关于开始符号S的解:S=w , w ∈VT*,w就是所求正规式。
词法分析时单词的识别根据构词规则识别单词。
1、词法分析的任务
词法分析是编译的第一个阶段,其任务是:从左至右逐个字符地对源程序(用高级语言编写的)进行扫描,产生一个个单词符号,把字符串形式的源程序改造成为单词符号串形式的中间程序。
2、词法分析器
执行词法分析的程序称为词法分析程序,也称为词法分析器或扫描器。词法分析器的功能是输入源程序,输出单词符号。
3、词法分析的两种处理结构
(1)把词法分析程序作为主程序。即,把词法分析与语法分析明显分开,由词法分析程序将字符串形式的源程序改造成单词符号串形式的中间程序,以这个中间程序作为语法分析程序的输入。在这种处理结构中,词法分析和语法分析实际上是分别实现的。
(2)把词法分析程序作为语法分析程序调用的子程序。在进行语法分析时,每当语法分析程序需要一个单词时,便调用词法分析程序,词法分析程序每一次调用便从字符串源程序中识别出一个单词交给语法分析程序。词法分析和语法分析实际上是交替进行的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)