编译原理概述

编译原理概述

思维导图

  • 编译原理入门
    • 基本概念
      • 机器语言
      • 汇编语言
      • 高级语言
    • 编译器结构
      • 词法分析器
      • 语法分析器
      • 语义分析器
      • 中间代码生成
      • 机器无关代码优化器
      • 目标代码生成器
      • 机器相关代码优化器
  • 程序运行时的逻辑存储空间
    • 代码区
    • 数据区
      • 静态数据区(全局数据区)
      • 动态数据区
        • 堆区
        • 栈区
      • 分配规则
        • 动态存储分配
          • 堆式存储分配
          • 栈式存储分配
        • 静态存储分配

相关概念

  • 编译逻辑过程

    • image-20230627195504669
  • 语法

    • 合法的程序(语言的合法性),定义什么样的符号系列是合法的。主要侧重结构是否完整。

    • 如: A:=B+C (编译时,语法正确)

      A := B+ (编译时,语法错误)image-20230627200201184image-20230627200208243

  • 符号串

    • 字母表中的符号组成的任意有穷系列。

    • 字符的运算

      image-20230627214359573

  • 符号串特性

    • 顺序:ab与ba不同

    • 长度

    • eg:

      image-20230627201746982

  • 头尾

    • 前后缀
  • 固有头

    • 真前缀
  • 固有尾

    • 真后缀
  • eg:

    • image-20230627202458522
  • 乘积

    • image-20230627202630257
  • 连接

    • image-20230627202728717
    • image-20230627202833321
  • 字母表的闭包:字母表中字符形成的有穷长的串的集合

    • 正闭包
      • image-20230627202944938
    • 克林闭包
      • image-20230627202951900
  • 规则

    • image-20230627203123487
  • 文法

    • 语言描述规则,用来定义句子的结构,用有限的规则把语言的全部句子描述出来,是以有穷的集合刻划无穷的集合的工具。

    • 以一种形式(文法)给出无穷多句子的有穷表达;

    • eg:

      image-20230627201328393

  • 文法的表示

    • 四元组形式

      • image-20230627203319256

      • eg:

        image-20230627203622771

        image-20230627203707079

  • 符号的约定

    • image-20230627203942817
    • image-20230627203951898
  • 推导

    • image-20230627204059286
    • 直接推导
      • image-20230627204258181
    • 长度为n的推导(n>0)
      • image-20230627204421201
    • eg:
      • image-20230627204507097
  • 句子和句型

    • image-20230627204609040

    • 句型的短语

      • image-20230627211352945

      • eg:

        image-20230627211528119

  • 语法范畴(非终结符)A的集合

    • image-20230627204939481
  • 文法G生成的语言

    • image-20230627205652849

    • eg:

      image-20230627205702929

  • 文法的等价性

    • image-20230627205834895
  • 文法的分类

    • 0型文法

      • image-20230627210226101
    • 1型文法

      • image-20230627210316862

      • eg:

        image-20230627210451034

    • 2型文法

      • image-20230627210557745

      • 语法树

        image-20230627211005411

        • eg:

          image-20230627211108585

          image-20230627211128839

          image-20230627211209979

        • image-20230627211256037

    • 3型文法

      • image-20230627210739677
    • 四种文法之间的关系

      • image-20230627210820705
  • 最左(最右)推导、规范推导

    • image-20230627212135427image-20230627212045331
  • 语法树和推导的作用: 句型的分析

    • 定义

      image-20230627212233112

    • 算法分类

      • 定义

      image-20230627212451823

      • 自上而下的语法分析

        image-20230627212555015

      • 自下而上的语法分析

        image-20230627212624860

      • 句型分析的有关问题

        image-20230627212719942

      • 自顶向下方法中的主要问题

        image-20230627212855631

      • 自底向上方法中的主要问题

        image-20230627212940599

        image-20230627213005733

  • 文法二义性

    • 定义

      image-20230627213054451

    • eg:

      image-20230627213121034

      image-20230627213204659

    • 消除二义性

      • 定义

      image-20230627213245208

      • 消除二义性

        image-20230627230328641

        image-20230627230349490

        image-20230627230415576

  • 文法实用中的一些说明

    • image-20230627213318525

    • 上下文无关文法中的ε规则

      image-20230627213435567

    • 文法的多余规则

      image-20230627213516362

  • 左递归

    • 定义
      • image-20230627230616151
    • 消除左递归
      • image-20230627230653150
      • image-20230627230721630
      • image-20230627230737037
      • image-20230627230837598
        • image-20230627230853497
    • eg
      • image-20230627231022047
  • 正则表达式

    • 定义

      image-20230627214216011

    • 正则式等价

      image-20230627214702074

    • 正规式、它所表示的正规语言/正规集

      image-20230627214507895

      image-20230627214515579

    • eg

      image-20230627214818855image-20230627214951164

      image-20230627215102722

    • 正则文法和正则式的等价性

      image-20230627215220686

      image-20230627215255245

    • 正则文法转正规式

      image-20230627220240904

      image-20230627220230500

    • 正则式转正规文法

      image-20230627220912100

      image-20230627221216271

      image-20230627221337495

      image-20230627221450601

      image-20230627221514451

      image-20230627221618708

有穷自动机

  • 定义

    image-20230627222023086

确定的有穷自动机DFA(Determinstic Finite Automata,DFA)

  • 定义image-20230627222222242

    image-20230627222236877

    image-20230627222331458

    • eg

      image-20230627222549638

    • DFA状态转换图表示

      image-20230627222623277

      image-20230627222726361

      image-20230627222755380

      • eg:

        image-20230627223406174

  • 正则式转换为DFA状态转换图

    • 规则和定义

      • image-20230627223556389

      • image-20230627223635165

      image-20230627223651793

      image-20230627223806238

      image-20230627223754158

      image-20230627223927057

      image-20230627223944741

    • 正则式转DFA的过程

      • image-20230627224149362
    • eg:

      • image-20230627224217662
      • image-20230627224228721
    • 正则文法 构造DFA状态转换图

      • 规则和定义

        image-20230627224434939

      • eg:

        image-20230627224528444

三个重要定义

首符号集FIRST

  • 定义

    • image-20230627231804522

    • image-20230627231949616

    • image-20230627232031642

      image-20230627232127218

  • eg

    • image-20230627232726804

后随符号集FOLLOW

  • 定义
    • image-20230627233410038
    • image-20230627233446030
  • eg
    • image-20230627233518786
    • image-20230627233604471

选择集合SELECT (重要:补充的定义)

  • 定义
    • image-20230627234745692
    • image-20230627234910682
  • eg
    • image-20230627235509781
    • image-20230627235714077
    • image-20230627235800139

练习题

image-20230627213627869

image-20230627213636743

image-20230627213643124

image-20230627213657709

image-20230627213706449

image-20230627213717708

image-20230627213723845

image-20230627213732063


编译原理概述
http://example.com/2023/06/27/编译原理概述/
作者
子川
发布于
2023年6月27日
许可协议