zoukankan      html  css  js  c++  java
  • 编译原理-第四章 语法分析-4.1 语法分析引论

    语法分析概述


    一、语法分析器的作用


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

    二、语法分析器的类型


    1.通用语法分析

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

    2.自顶向下语法分析

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

    3.自底向上语法分析

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

    三、上下文无关文法


    1.定义

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


    2.编写的方法

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

    3.作用

    4.例


    四、语法错误处理


    1.语法错误恢复策略


    参考——慕课-苏州大学

  • 相关阅读:
    DZY Loves Sequences
    Boredom easy dp
    floyd算法 poj1125
    poj3259 Bellman_Ford算法
    poj1860 Bellman_Ford算法
    Java 获取资源文件路径
    CLion 2020.1.2 激活
    Kotlin学习笔记
    Kotlin Hello World
    WebStorm 2020.1.2 激活
  • 原文地址:https://www.cnblogs.com/fangzhiyou/p/12652360.html
Copyright © 2011-2022 走看看