编译原理-第四章 语法分析-4.1 语法分析引论

语法分析概述


一、语法分析器的作用


  • 语法分析器读取词法分析器提供的记号流,检查它是否能由源语言的文法产生,输出分析树的某种表示。
  • 语法错误处理:例如分号放错地方、花括号“{”,“}”多余或缺失等语法错误的处理。

二、语法分析器的类型


1.通用语法分析

  • 定义:CYK算法、Earley算法
  • 特点对任意上下文无关文法进行语法分析效率很低,不适合编译器,主要用于自然语言处理领域

2.自顶向下语法分析

  • 定义:从语法分析树的根节点开始向叶子节点构造语法分析树
  • 特点:适合手工实现,如LL文法(从左向右扫描左推导、不能处理左递归、一般较小)

3.自底向上语法分析

  • 定义:从叶子结点开始,逐渐向根节点方向构造语法分析树
  • 特点:适合自动实现,如LR文法(从左向右扫描右推导、能处理左递归、一般较大)

三、上下文无关文法


1.定义

运算符具有结合性和优先级


2.编写的方法

  • 表达式文法左递归
  • 表达式文法右递归

3.作用

4.例


四、语法错误处理


1.语法错误恢复策略


参考——慕课-苏州大学

原文地址:https://www.cnblogs.com/fangzhiyou/p/12652360.html