编译原理 概念小结

一、概论。

  1. 将某一种 程序设计语言 写的 程序 翻译成等价的 另一种语言程序 的程序, 称之为编译程序(compiler) 。
  2. 遍:对源程序或源程序的中间形式从头到尾扫描一遍,并做有关的分析加工,生成新的源程序的中间形式或生成目标程序。

二、形式语言与自动机基础

  1. BNF : 用来表示语法 eg. <句子> -> <主语><谓语>

  2. 字母表(符号集):字母表是元素的非空有穷集合。字母表中的元素
    称为符号或字符,因此字母表也称为符号集,用大写字母A希腊字母∑表示

  3. 符号串:由字母表中的符号组成的任何有穷序列称为符号串,也称为串或字符串。用小写希腊字母表示符号串,如如 ω =STR

    1. 前缀: ω 是一个符号串,从 ω 的尾部删去0个或若
      干个符号之后剩余的部分称为 ω 的前缀。 (真前缀不是原符号串)
    2. 后缀:从 ω 的首部删去0个或若干个符号之后剩余的部 分称为ω 的后缀。(真后缀不是原符号串)
    3. 子符号串:从一个符号串中删去它的一个前缀 和一个后缀之 后剩余的部分称为该符号串的子符号串或子串。
  4. 符号串的连接:设 ω 和 υ是两个符号串,如果将符号串 υ 直接拼接在符号串 ω 之后,则称此操作为符号串 ω 和 υ的连接,记作 ω υ。

    eg. ω=abc,υ =xyz则 ω υ=abcxyz

  5. 符号串的方幂:设 ω 是某字母表上符号串,把 ω 自身连接 n 次得 到符号串 υ ,即 υ = ω ω … ω (n个 ω ) ,称 υ 是符号 串 ω 的n次幂,记作 υ = ω ^n。

  6. 符号串集合的乘积:设A、B 是两个符号串集合,AB表示A与B的乘积,则有定义 AB={ ω υ| ( ω ∈A)∧( υ∈B) }

    如:设A={ab,c}, B={d,ef}, 则 AB={abd, abef, cd, cef}

  7. 符号串集合的方幂:设A是符号串集合,A自身的乘积可以用方幂表示。A0= { ε } A^1=A A^2=AA A^3= A^2A =AAA

  8. 符号串集合的并(并集)

  9. 符号串集合的闭包:

    1. 正闭包:设A为符号串集,A的正闭包记作A+,有 A+= A1∪ A2∪…∪ An∪…
    2. 自反闭包:A*定义为A的自反闭包,有 A*= A0∪ A+= { ε }∪ A+= A+∪{ ε }
  10. 文法:一部文法G是一个四元组 G =( VN, VT, S, P)

    1. VN:非空有限的非终结符号集(一般用大写字母表示)。其中 的元素称为非终结符,或语法变量,代表了一个语法范畴
    2. VT:非空有限的终结符号集(一般用小写字母表示)。
    3. S:文法的开始符号或识别符号,亦称公理,S ∈VN。S代表 语言最终要得到的语法范畴。
    4. P:有限产生式集。
      产生式就是按一定格式书写的定义语法范畴的文法规则,它是一部文法的实体。
  11. 语言的非形式化定义:给定一部文法G, 从G的开始符号S出发,反复使 用产生式对非终结符进行替换,最后所得到的终结符 号串的全体,即为文法G所描述的语言L(G)。

    如:设有文法G: S → P | aPb,P → ba | bQa,Q → ab ;

    L(G)={ba, baba, abab, ababab}

  12. 直接推导=>:有 ν = α Aβ=> α γβ= ω ( α ,β,γ∈(VN∪VT)*),当且 仅当P中存在一条规则A ->γ,称 ν 直接推导出 ω (或 ω 直接归约到 ν ),记作: ν => ω 。

  13. 直接推导序列: 则 ν 经过n步(n>0)可以推导出ω ,记作:ν =(+)>ω 。当ν=>ω 或 ν=ω ,记作: ν(*)=>ω

  14. 句型:设有文法G[S],若 S =(*)> α ( α ∈(VT∪VN)*),则称
    α 为G[S]的句型

  15. 句子:设有文法G[S] , 若S =(*)>α ( α∈VT*) ,则称 α 为G[S]的句子。

  16. 最左(右)推导

  17. 规范推导/规范句型/规范归纳:最右推导也称为规范推导 。仅用规范推导得到的句型称为规范句型 。规范推导的逆序为规范归约。

  18. 递归文法:设有文法G,A→ γ是G的产生式,若 γ 具有 α A β的形式,或 γ
    =(+)>α A β ,则称G是递归文法。

    1. 若 α = ε ,则G为左递归文法。
    2. 若 β=ε ,则G为右递归文法
  19. 语言:文法 G所产生(描述)的语言L(G): L(G) = { α | α ∈VT*∧ S =(+)> α ,S是文法 G 的开始符号 }

  20. 文法等价:若 L(G1)= L(G2),则称文法G1和G2是等价的

  21. EBNF:扩充BNF,假如{} () []

  22. 语法图:

    1. 由一组图组成,每个图定义了一个非终结符的产生式 。
    2. 每个图都有一个起始结点和一个终止结点,其他的结点标记为 文法符号。
  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值