编译原理 —— 正规式、正规集和正则定义

正规式的定义和运算定律

  • 正规式和正则表达式都是通过一定的语法规则来描述文法,但不是同一个概念。
  • 正规式是一种用来描述正则语言的更紧凑的表示方法
  • 正规式可以由较小的正规式按照特定规则递归地构建。每个正规式r定义(表示)一个语言,记为L(r)。

注意,运算的优先级为:*、连接、|


正规集的定义

  • 能用正规式或正规文法表示的集合称为正规集。
正规式正规集
a{a}
a|b{a,b}
ab{ab}
(a|b)*{ε,a,b,aa,ab,ba,bb,aaa,……}

注意:{a,b}*的任一子集,不能也认为是一个正规集。


正则定义

  • 为了方便起见,我们可以给某些正则表达式命名,然后像使用字母表中的符号一样使用这些名字来构造正规式,这就是正则定义。

参考地址

https://www.icourse163.org/learn/HIT-1002123007?tid=1003246005#/learn/announce

  • 32
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理中的定义常量是指使用则表达来描述编译原理中所需的常量。则表达是一种定义字符串模的强大工具,它可以用来匹配、搜索、替换字符串。在编译原理中,则表达被广泛应用于词法分析阶段,用来定义词法单元的模。 在编译器中,常量是指程序中固定不变的值,例如整数、浮点数、字符串等。通过编写则表达定义常量,可以方便地在词法分析中将它们识别出来,并生成对应的词法单元。则表达中的特殊符号和操作符可以用来描述常量的模,例如使用\d+匹配整数,使用[0-9]+(\.[0-9]+)?匹配浮点数,使用\".*\"匹配字符串等。 编译原理中的定义常量编译原理的具体步骤如下: 1. 分析语言中常量的模和规律,确定需要定义的常量类型。 2. 使用则表达来描述每个常量类型的模,使用特殊符号和操作符来表示常量的组成部分和限制条件。 3. 将每个常量类型的则表达编译成有限自动机(DFA)或非确定有限自动机(NFA)。 4. 在词法分析阶段,将输入的源代码按照则表达定义的常量类型进行分割和识别,生成对应的词法单元。 5. 将识别出的词法单元作为输入传递给下一个编译阶段,如语法分析、语义分析等。 总之,编译原理中使用定义常量的方法可以方便地识别和处理语言中的常量,并为后续的编译工作提供基础。通过适当定义和使用则表达,可以提高编译器的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值