目录
以下截图大部分来自于《中国大学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)符号串的运算
连接(符号串的乘法运算)
- 定义: