📄 3.4.1d.htm
字号:
<html>
<head>
<title>编译原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link type="text/css" rel="stylesheet" href="../css/specification.css">
</head>
<BODY bgColor=lavender>
<table align=right width=300>
<tr>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.4.1c.htm'" src="../images/previous.gif"></IMG></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.4.1e.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
<br><br>
<table border=0>
<tr>
<td width=10></td>
<td>
<p><br>
例如,可以证明例3.4之(b)中的正规表达式(a|b)(a|b)与aa|ab|ba|bb等价。在前面我们引进的一目后缀运算符*称为<font class="definition3">Kleene闭包</font>,为了表示上的方便,现在还要引进另一个一目后缀运算符+,称之为<font class="definition3">正闭包</font>,其含义是“一次或多于一次的引用”。因此,如果,r是表示语言L(r)叫的正规表达式,则(r)<sup>+</sup>是表示语言(L(r))<sup>+</sup>的一个正规表达式。例如,a<sup>+</sup>表示由一个或多于一个的a所组成的符号串的全体所构成的集合。一目运算符+与一目运算符*具有同样的优先级,同样是左结合的,根据定义有以下两式成立:</p>
<center>r<sup>*</sup>=r<sup>+</sup>|ε <br>
r<sup>+</sup>=rr<sup>*</sup></center>
<p>此两式说明了kleene闭包运算符和正闭包运算符之间的关系,是经常要用到的。 <br><br>
为了利用正规表达式方便地表示单词结构,我们给正规表达式命令,用每个正规表达式的名字代表相应的正规表达式作符号,利用它再去定义正规表达式。如果Σ是一个字母表,所谓<font class="definition3">正规定义式</font>就是下述形式的定义的序列:</p>
<center>d<sub>1</sub>→r<sub>1</sub> <br>
d<sub>2</sub>→r<sub>2</sub> <br>
d<sub>n</sub>→r<sub>n</sub>
</center>
<p>其中d<sub>i</sub>表示不同的名字,每一个r<sub>i</sub>是Σ∪{d<sub>1</sub>,d<sub>2</sub>,…,d<sub>i-1</sub>)上的符号所构成的正规表达式,即r<sub>i</sub>中不能含有d<sub>i</sub>,d<sub>i+1</sub>,…,d<sub>n</sub>。这样,对于任何r<sub>i</sub>,我们可以构造一个Σ上的正规表达式,只要反复把式中出现的名字代之以他们所代表的正规表达式即可。如果正规表达式r<sub>i</sub>中用到某些d<sub>j</sub>,其中j≥i则r<sub>i</sub>有可能循环地定义,并且这样的替换过程将不终止。 </p>
</td>
<tr></tr>
</table>
<table align=right width=300>
<tr>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.4.1c.htm'" src="../images/previous.gif"></IMG></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.4.1e.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
</BODY>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -