📄 3.1.2b.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.1.2a.htm'" src="../images/previous.gif"></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.2c.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
<br><br>
<table border=0>
<tr>
<td width=20></td>
<td>
<p>我们再来看前面给出的pascal程序段:<p>
<p>
<font color=#0000ff>while</font> i<>j <font color=#0000ff>do</font> <br>
<font color=#0000ff>if</font> i>j <font color=#0000ff>then</font> i:=i-j <font color=#0000ff>else</font> j:=j-i
</p>
假设其中的词类编码的记号和属性值表3.1所示,id表示任意一个标识符,num表示任意一个数。<br><br>
<center>表3.1<br></center>
<table style="font-size:9pt" width="75%" border="1" align="center" cellspacing=0 cellpadding=5>
<tr>
<td width="16%">
<div align="center">单词符号</div>
</td>
<td width="50%">
<div align="center">单词词类记号</div>
</td>
<td width="34%">
<div align="center">属性值</div>
</td>
</tr>
<tr>
<td height="302" width="15%" align=center>
<table border=0 style="font-size:9pt" >
<colgroup>
<col align=middle>
</colgroup>
<tr><td>begin</td></tr>
<tr><td>end</td></tr>
<tr><td>if</td></tr>
<tr><td>then</td></tr>
<tr><td>else</td></tr>
<tr><td>while</td></tr>
<tr><td>do</td></tr>
<tr><td>...</td></tr>
<tr><td>id</td></tr>
<tr><td>num</td></tr>
<tr><td>(</td></tr>
<tr><td>)</td></tr>
<tr><td>+</td></tr>
<tr><td>-</td></tr>
<tr><td>...</td></tr>
<tr><td><</td></tr>
<tr><td><=</td></tr>
<tr><td>=</td></tr>
<tr><td><></td></tr>
<tr><td>></td></tr>
<tr><td>>=</td></tr>
<tr><td>:=</td></tr>
<tr><td>;</td></tr>
<tr><td>:</td></tr>
<tr><td>...</td></tr>
</table>
</td>
<td height="302" width="50%" align=center>
<table border=0 style="font-size:9pt">
<colgroup>
<col align=middle>
</colgroup>
<tr><td>begin(保留字)</td></tr>
<tr><td>end(保留字)</td></tr>
<tr><td>if(保留字)</td></tr>
<tr><td>then(保留字)</td></tr>
<tr><td>else(保留字)</td></tr>
<tr><td>while(保留字)</td></tr>
<tr><td>do(保留字)</td></tr>
<tr><td>......</td></tr>
<tr><td>identifier(标示符)</td></tr>
<tr><td>number(数)</td></tr>
<tr><td>lpar(左括号)</td></tr>
<tr><td>rpar(右括号)</td></tr>
<tr><td>plus-op(算术运算符)</td></tr>
<tr><td>minus-op(算术运算符)</td></tr>
<tr><td>......</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>relational-op(关系运算符)</td></tr>
<tr><td>assign-op(赋值运算符)</td></tr>
<tr><td>semicolon(分号)</td></tr>
<tr><td>colon(冒号)</td></tr>
<tr><td>......</td></tr>
</table>
</td>
<td height="302" width="40%" align=center>
<table border=0 style="font-size:9pt">
<colgroup>
<col align=middle>
</colgroup>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>...</td></tr>
<tr><td>指向符号表入口的指针</td></tr>
<tr><td>指向符号表入口的指针</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>...</td></tr>
<tr><td>LT</td></tr>
<tr><td>LE</td></tr>
<tr><td>EQ</td></tr>
<tr><td>NE</td></tr>
<tr><td>GT</td></tr>
<tr><td>GE</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>——</td></tr>
<tr><td>...</td></tr>
</table>
</td>
</tr>
</table>
<br>那么,该源程序经词法分析器分析之后,将转换为如下页的二元式的单词符号序列:
<td>
</table>
<table align=right width=300>
<tr>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.2a.htm'" src="../images/previous.gif"></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.2c.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
</BODY>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -