简单优先分析和算符优先分析的联系与比较

概述

  • 简单优先分析的基本思想是对一个文法按照一定的原则求出该文法所有符号之间的优先关系,按照这种关系确定规约过程中的句柄。算符优先分析的基本思想是只规定算符之间的优先关系,在规约过程中只要找到可规约串就规约。

简单优先分析

      • 1 :优先关系定义

      (1):若X优先级等于Y, 当且仅当G中含有产生式规则A->.... XY..... 。
      (2):若X优先级小于Y,当且仅当G中含有产生式规则A->....XB....,且B是Y的短
          语。
      (3):若X优先级大于Y,当且仅当G中含有产生式规则A->...BD....,且B是X的短
          语,D是Y的短语。

        2:简单优先分析的操作步骤

       1: 将输入符号串依次逐个压入符号栈中,直到遇到栈顶符号的优先级大于下一个待输入符号的优先级。
       2: 栈顶当前符号为句柄尾,由此向左在栈中找到句柄的头符号。  3: 将句柄产生式和文法右部产生式匹配,若找到,进行替换,若找不到,则出错。
       4: 重复上述步骤,直至栈中只剩下文法的开始符号为止。

算符优先分析法

  • 算符优先只分析终结符之间的优先级,且文法必须满足两个相邻的非终结符之间必有一个终结符,FIRSTVT代表第一个终结符,LASTVT代表最后一个终结符。
  • 实例分析
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 最左素短语
    定义:句型至少包含一个终结符,并且自身外不包含其他素短语,最左边的素短语陈给最左素短语。其实寻找最左边的终结字符或者两个非终结字符夹着一个终结字符的形式,看下面的例子。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Leader_wang/article/details/82857405
今日推荐