编译原理中机器语言与自动机知识复习

  1. 字母表
    是一个非空 有穷 集合
    字母表中的元素成为该字母表的一个字母/符号/字符
    用 ∑ 表示

  2. 符号串
    字母表 ∑上的符号串,由∑中的符号构成的有穷序列
    ε表示空串/空字
    ω表示符号串的长度,即符号串中字符法仍个数,记作|ω|
    *表示∑上所有符号串的全体

    eg.  ∑ = {0,1}, ∑** = ?
    |ω| = 0, ∑*  = {ε}                                                 
    |ω| = 1, ∑*  = {0,1}
    |ω| = 2, ∑*  = {00,01,10,11}
    |ω| = 3, ∑*  = {000,001,010,....} 	 
    ...
    
  3. 符号串的相关概念

  • 前缀
    移走符号串s尾部的0个或多个字符

     eg. appl、apple是apple的前缀
    
  • 后缀
    移走符号串s头部的0个或多个字符

     eg.pple、apple是apple的后缀
    
  • 子串
    从s中删除一个前缀和一个后缀

     eg. pp是apple的子串
    
  • 真前缀/真后缀/真子串
    对应前缀/后缀/子串去除空串ε和本身s

  • 子序列
    从s中删除0个或多个字符(不要求连续删除)

     eg. 'abcd' 有多少个子串?
     长度不能为0或4
     长度为1、2、3
     |w| = 1,  {a,b,c,d}
     |w| = 2,  {ab, bc, cd}
     |w| = 3,  {abc, bcd}
     共9种
    
  1. 符号串的相关运算

    连接/并置运算

     eg. s = '01'   g = 'ab'
    	sg = '01ab'
    s和g直接连接即可
    

    运算

    x^0 =  ε
    x^1 = '01'
    x^2 = '0101'
    x^3 = '010101'
    ...
    x^n = x^(n-1)x
    x^(n-1)和x连接
    
  2. 字母表的相关运算

  • 乘积/幂
    ① 设∑1、∑2为两个字母表,则∑1与∑2的乘积
    ∑1∑2 = {ab | a∈ ∑1, b∈ ∑2}
    |w| 恒为2

     eg.  ∑1 = {a,b}, ∑2 = {0,1}
     ∑1∑2 = {a0, a1, b0, b1}
    

    ② ∑的n次,递归定义
    ∑^0 = {ε}
    ∑^n = ∑^(n-1)∑

     eg. ∑ = {0, 1}
     ∑^0 = {ε}
     ∑^1 = {0, 1}
     ∑^2 = {00, 01, 10, 11}
     ...
    
  • 正闭包
    ∑+ = ∑ U ∑^2 U ∑^3…

  • Kleene闭包
    ∑* = ∑ ^0U ∑^1 U ∑^2…

6.语言
任意集合L 属于 ∑*是∑上的一个语言
语言是给定字母表上任一符号串的组合
∅ 为空语言
{ε} 为仅含空字的语言

7.语言上的运算
① 连接
② 幂
③ 正闭包
④ Kleene 闭包
与字母表的运算类似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值