编译原理——语法分析

语法分析

语法分析,词法分析,语义分析直接将我拍在了沙滩上,我已经懵了,这篇不建议看,我只是从书中取出一个大概的框架,深层次的东西还没有挖掘。

  • 简介

    • 作为编译过程的核心部分,语法分析根据一定的语法规则,通过语法分析程序进行分析,识别出各类语法成分,进行语法检查
  • 语法分析程序

    • 作用
      在这里插入图片描述
      • 输入:记号流/记号序列
      • 输出:分析树
      • 功能:将记号组合成语法成分,语法检查
  • 分析方法

    • 自顶向下的方法

      • 递归下降分析

        • 从文法的开始符号出发,视图推出要分析的输入串的过程,自顶向下的为输入串建立一棵分析树
        • 文法的每一个非终结符号对应一个递归过程,即可实现这种带回溯的递归下降分析方法。
        • 每个过程作为一个布尔过程,一旦发现它的某个产生式与输入串匹配,则用该产生式展开分析树,并返回true,否则分析树不变,返回false。
      • 递归调用预测分析

        • 特点:确定的,不带回溯的递归下降分析方法
        • 牵涉到转换图,不展开来说了
      • 非递归预测分析

        • 使用一张分析表和一个栈联合控制,实现对输入符号串的自顶向下分析。
        • 模型
          在这里插入图片描述
          • 输入缓冲区:存放用于分析的符号串
          • 符号栈:存放文法符号,$存放栈底,作为标识
          • 分析表:在分析表中找到被调用的产生式
          • 输出流:用于不断产生的产生式序列
  • 自底向上的方法

    • 分析方法
      • 从输入符号串开始分析
      • 查找当前句型的可归约串
      • 使用规则,将其规约成相应的非终结符号
  • LR分析法

    • 简介
      • L——表示自左至右扫描
      • R——表示输入符号串构造一个最右腿到的逆过程
      • K——表示做出分析决定,向前看的输入符号个数
    • 作用
      • 无回溯
      • 能分析无关上下文
      • 及时发现错误
    • 模型
      在这里插入图片描述
  • 软件工具

    • YACC(Yet Another Compiler-Compiler)
    • 过程
      在这里插入图片描述
发布了46 篇原创文章 · 获赞 75 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/UNIONDONG/article/details/105013065