zoukankan      html  css  js  c++  java
  • 编译原理复习

    课程内容:
    介绍程序设计语言编译程序构造的基本原理和基本实现技术

    1.引论

    什么是编译程序

    什么是翻译程序?

    把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序
    在这里插入图片描述

    什么是编译程序?

    把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序

    在这里插入图片描述

    什么是解释程序?

    把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序。

    抽象

    保留最为重要的信息

    编译过程

    在这里插入图片描述

    词法分析

    在这里插入图片描述

    语法分析

    在这里插入图片描述

    中间代码生成

    在这里插入图片描述

    优化

    在这里插入图片描述

    目标代码生成

    在这里插入图片描述

    编译程序的结构

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    编译程序的生成

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总结

    在这里插入图片描述

    2.高级语言机器语法描述

    程序语言的定义

    在这里插入图片描述
    在这里插入图片描述

    语法

    在这里插入图片描述
    在这里插入图片描述

    语义

    在这里插入图片描述

    高级语言的一般特性

    在这里插入图片描述
    在这里插入图片描述

    程序语言的语法描述

    文法

    在这里插入图片描述
    句法单位用尖括号括起
    箭头表示定义
    整个句子代表语法规则

    语言描述的几个基本概念

    在这里插入图片描述

    在这里插入图片描述
    V的闭包和V的正规闭包的区别:
    如果V中没有空字,闭包当众会有空字,正规闭包中没有空字。
    在这里插入图片描述

    上下文无关文法

    在这里插入图片描述
    在这里插入图片描述

    符号约定

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    例题

    在这里插入图片描述
    在这里插入图片描述

    文法生成语言

    中心思想

    从文法的开始符号出发,反复连续使用产生式,对非终结符施行替换和展开。

    例子

    在这里插入图片描述

    推导与推出

    在这里插入图片描述

    句型句子语言

    在这里插入图片描述

    例题

    在这里插入图片描述

    推导与语法树

    最左最右推导

    在这里插入图片描述
    在这里插入图片描述

    语法分析树

    在这里插入图片描述
    在这里插入图片描述

    文法的二义性

    在这里插入图片描述
    在这里插入图片描述
    注意
    在这里插入图片描述

    语言的二义性

    在这里插入图片描述
    也就是说语言的二义性来源于语言本身,一个二义的语言中找不到无二义的文法。

    形式语言概述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总结

    在这里插入图片描述

    3.词法分析

    在这里插入图片描述

    对于词法分析器的要求

    功能和输出形式

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    例子:
    在这里插入图片描述

    接口设计

    在这里插入图片描述
    在这里插入图片描述

    词法分析器的设计

    在这里插入图片描述

    1.输入和预处理

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.单词符号的识别

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.状态转换图及实现

    在这里插入图片描述
    一张转换图只包含有限个状态,其中有一个为初态至少要有一个终态
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    正规表达式与有限自动机

    在这里插入图片描述
    在这里插入图片描述

    一、单词符号的描述

    正规式与正规集

    在这里插入图片描述
    就像英文单词是由字母拼接而成,但单词字母拼接并不一定是单词。
    在这里插入图片描述
    在这里插入图片描述

    正规式的运算

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    正规式的等价

    在这里插入图片描述
    在这里插入图片描述

    正规式的性质

    在这里插入图片描述
    在这里插入图片描述

    正规文法

    在这里插入图片描述
    在这里插入图片描述

    二、有限自动机

    在这里插入图片描述

    1.DFA

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.NFA

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    区别

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.DFA与NFA的等价

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200624101328910.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hpZGVfb25fcnVzaA==,size_16,color_FFFFFF,t_70

    4.DFA的化简

    正规式与有限自动机的等价性

    在这里插入图片描述

    有限自动机=>正规式

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    正规式=>有限自动机

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    正规文法与有限自动机的等价性

    4.语法分析-自上而下

    在这里插入图片描述

    4.1语法分析器的功能

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.2自上而下分析面临的问题

    在这里插入图片描述
    在这里插入图片描述
    过程中可能出现问题,需要回溯。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.3LL(1)分析法

    一、左递归的消除

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、消除回溯,提取公共左因子

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.3.2消除回溯、提左因子

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    FIRST和FOLLOW集合的求法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    LL(1)文法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.4递归下降分析程序构造

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.5预测分析程序

    在这里插入图片描述
    在这里插入图片描述

    1.预测分析表的构造

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.预测分析程序

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.练习

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    4.6LL(1)分析中的错误处理

    在这里插入图片描述

    总结

    在这里插入图片描述

    5.语法分析-自下而上

    在这里插入图片描述

    5.1自下而上分析基本问题

    一、规约

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、规范规约简述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、符号栈的使用

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.2算符优先分析

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.算符优先文法及优先表构造

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    练习

    在这里插入图片描述
    在这里插入图片描述

    2.算符优先分析算法

    1.最左素短语

    在这里插入图片描述
    在这里插入图片描述

    练习

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.算法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.优先函数

    在这里插入图片描述

    5.3LR分析法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.LR分析的逻辑结构

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.分析表的组成

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3.LR分析过程

    在这里插入图片描述
    在这里插入图片描述

    例题

    在这里插入图片描述
    在这里插入图片描述

    二、LR(0)分析表的构造

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    构造识别活前缀的NFA

    在这里插入图片描述

    求文法对应的活前缀

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    构造识别活前缀的DFA

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    构造LR(0)项目集规范族

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    构造LR(0)分析表

    在这里插入图片描述
    在这里插入图片描述

    LR(0)文法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    SLR分析表的构建

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    规范LR分析表的构建

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.4语法分析器的自动产生工具YACC

    6.属性文法和语法制导翻译

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.1属性文法

    在这里插入图片描述

    一、基本概念

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.2基于属性文法的处理方法

    在这里插入图片描述

    1.依赖图

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    例题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、树遍历的属性计算方法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    一遍扫描的处理方法

    在这里插入图片描述
    在这里插入图片描述

    6.3S---属性文法的自下而上计算

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    例题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.4L---属性文法和自顶向下翻译

    6.5自下而上计算继承属性

  • 相关阅读:
    电子论文写作不发愁
    美化 Blog
    The problem with install redhat linux
    Unknown hard error.stop:c000021a.
    .NET集合类:定义,用途及使用条件
    linux ftp 命令详解
    [转]MVC和MVP的区别
    一次谷歌面试趣事(转)
    全文索引原理及其示例(sqlserver)【转】
    “什么是团队精神”——《海贼王》里的一段台词
  • 原文地址:https://www.cnblogs.com/xiuzhublog/p/13196435.html
Copyright © 2011-2022 走看看