编译原理基础(1)——文法

本文深入探讨编译原理的基础概念,包括字母表与符号串的定义和运算,文法的详细解释,如0型到3型文法的特性,以及上下文无关文法的分析树。此外,还讨论了二义性文法及其消除方法。
摘要由CSDN通过智能技术生成

目录

1.字母表和符号串

1.1 字母表

(1)什么是字母表

(2)字母表运算

1.2 符号串

(1)什么是符号串

(2)符号串的运算

2.文法

2.1 文法的定义

2.2 符号约定

2.3 示例和注意事项

3.推导和规约

4.语言

4.1 句型和句子

4.2 语言的定义

4.3 语言上的运算

5.文法分类

5.1 0型文法

5.2 1型文法

5.3 2型文法

5.4 3型文法

5.5 四种文法之间的关系

6.上下文无关文法的分析树

7.二义性文法


以下截图大部分来自于《中国大学mooc中哈尔滨工业大学编译原理课程》,基础知识的文章均是自己学习的笔记

1.字母表和符号串

1.1 字母表

(1)什么是字母表

  • 符号:字母、数字、标点符号、.......
    • 例如:a,b,c......
  • 字母表:符号的非空有限集,一般用来表示
    • 例如:以下都是字母表
      • 二进制字母表:{0,1}
      • ASCII字符集
      • Unicode字符集

(2)字母表运算

乘积:

  • 例如:
    • {0,1}{a,b} = {0a,0b,1a,1b}

幂运算:

  • 字母表的幂运算是n个相乘
  • 例如:
    • {0,1} ^3 = {000,001,010,011,100,101,110,111}
  • 结论:
    • 字母表的n次幂,就是字母表中的所有字符(每个字符出现的个数不限)能组成的长度为n的符号串构成的集合(n可以为0,

正闭包

  • 的正闭包是的各个正数次幂的并集
  • 例:
    • 长度为1的字母的集合长度为2的字母的集合长度为3的字母的集合长度为4的字母的集合
  • 结论:
    • 字母表的正闭包,就是长度为正数的符号串构成的集合

字母表的克林闭包

  • 的基础上并上一个
  • 例:
  • 结论:
    • 字母表的克林闭包,就是任意长度(长度可以为0)的符号串构成的集合

1.2 符号串

(1)什么是符号串

定义:

  • 符号串:符号的有穷序列

    • 例如:a,ac,aa,abc......

    • 空符号串:无任何符号的符号串,用表示

    • 符号串集合:符号串组成的集合

  • 符号串s的长度:

    • 记作|s|,指s中的符号的个数

  • 符号串相等:

    •  若x x 、y y 是集合上的两个符号串 ,则x x =y y当且仅当组成xx的每一个符号和 组 成y y的每 一个符号依次相等

  • 表示:

(2)符号串的运算

连接(符号串的乘法运算)

  • 定义:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值