[复习笔记]编译原理


第一章

以通识为主,不作重点整理

第二章 文法和语言

1. 各型文法判断

  • 按照从复杂到简单的顺序进行判断(3型→2型→1型→0型)
  • 重点掌握2、3型文法判断,其他不做要求
  • 3型文法(正规文法)要求:

    1. 左边有且仅有一个非终结符
    2. 其右边最多只能有两个字符,且当有两个字符时必须有一个为终结符而另一个为非终结符。当右边只有一个字>符时,此字符必须为终结符
    3. 对于3型文法中所有右边有两个字符的产生式,右边两个字符中终结符和非终结符的相对位置一定要固定,要么都是:终结符+非终结符,要么都是:非终结符+终结符
  • 2型文法(上下文无关文法)要求:

    1. 左边有且仅有一个非终结符
    2. 2型文法所有产生式的右边可以含有若干个终结符和非终结符(只要是有限的就行,没有个数限制)
  • 1型文法要求:

    1. 1型文法所有产生式左边可以含有一个、两个或两个以上的字符,但其中必须至少有一个非终结符。
    2. 与2型文法第二点相同。
  • 0型文法要求:
    不满足以上三类的文法都是0型文法

2. 语法树,短语及二义性判断

  • 判断短语前,先画语法树
    语法树图片
  • 短语:一个句型的语法树中任一子树叶节点所组成的符号串都是该句型的短语
    上图中短语有:a / S / (a) / S,(a) / (S,(a))

  • 直接短语(简单短语):当子树不包含其他更小的子树时,该子树叶节点所组成的字符串就是该句型的直接短语
    上图中直接短语有:a / S

  • 句柄:句柄是最左边的直接短语
    上图中句柄为:S

  • 素短语::不包含且不能推导出其他短语的短语为素短语
    上图中素短语为:a

  • 二义性文法:如果一个文法能画出两颗不同的语法树,则该文法是二义性文法

第三章 词法分析

1. 正规式到正规集

  1. L()={} L ( ) = { }
  2. L(ε)={ε} L ( ε ) = { ε }
  3. L(e1|e2)=L(e1)L(e2) L ( e 1 | e 2 ) = L ( e 1 ) ∪ L ( e 2 )
  4. L(e1e2)=L(e1)L(e2) L ( e 1 e 2 ) = L ( e 1 ) L ( e 2 )
  5. L(e1)=L(e1) L ( e 1 ∗ ) = L ( e 1 ) ∗
    例1:
    L((a|b))=L(a|b)={a,b}={ε,a,b,aa,bb,ab,ba...} L ( ( a | b ) ∗ ) = L ( a | b ) ∗ = { a , b } ∗ = { ε , a , b , a a , b b , a b , b a , . . . }

    例2例3

2. 从正规文法到正规式

规则正规文法正规式
规则1A→xB, B→yA=xy
规则2 AxA|y A → x A | y A=xy A = x ∗ y
规则3A→x, A→y A=x|y A = x | y

3. 从正规式到NFA

规则:
正规式到NFA的转换规则图片

例题:
从正规式到NFA-例题图片

4. 从NFA到DFA(子集构造法)

规则:
这里写图片描述

例题:
从NFA到DFA例题图片1
从NFA到DFA例题图片2
从NFA到DFA例题图片3

5. 最小化DFA(分割法)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值