📄 3.1.2a.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.1.htm'" src="../images/previous.gif"></IMG></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.2b.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
<br><br>
<table border=0>
<tr>
<td colspan=2>
<br>
<b>3.1.2 单词的词类和属性</b>
<br><br>
</td>
</tr>
<tr>
<td width=20></td>
<td>
<font class="definition3">单词</font>是程序的基本语言单位,和自然语言一样,它被划分成若干词类,因此,要准确地描述一个单词,不仅要给出它的词类,而且要给出它的词义,在这里,单词的语义称作<font class="definition3">属性值</font>。根据单词的结构和词性,一般把它分成下列五类:
<br><br>
<td>
<tr>
<td colspan=2>
<table>
<tr>
<td width=40></td>
<td>
<font class="definition3">关键字</font> 是由程序语言定义的具有固定意义的标识符。根据程序语言的各自特点,有的称这些标识符为保留字或基本字。例如,在Pascal中的begin,end,if,while等等都是保留字。这些字通常不用作一般标识符。<br><br>
<font class="definition3">标识符</font> 用来表示各种名字,如变量名、数组名、过程名等等。 <br><br>
<font class="definition3">常数 </font> 常数的类型一般有整型、实型、布尔型、文字型等等。 <br><br>
<font class="definition3">运算符</font> 如+、-、*、/ 等等。<br><br>
<font class="definition3">分界符</font> 单字符分界符如逗号,分号,冒号等;双字符分界符如/*,*/。分界符亦称界符。<br><br>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width=20></td>
<td>
一个程序语言的关键字、运算符和分界符都是确定的,一般只有几十个或上百个。而对于标识符或常数的使用个数通常都不加太多限制。
<P></P>
<p>词法分析程序把识别出的单词作为输出,每个单词表示成如下的二元式:</p>
<p align="center"><B><词类编码,单词的属性值></B></FONT></p>这个二元式将是语法分析及语义分析和转换的输入,单词的词类编码将用于语法分析,而单词的属性值将用于语义分析和转换。为了好读,每个词类编码也可用一个符号表示,称为词类记号。
<P></P>
<p>标识符一般可统归一类,也可分为若干类。常数可统归一类,也可按类型(整型、实型、布尔型等)分成若干类。关键字可将其全体视为一类,也可以一字一类。采用一字一类的分法,处理起来较为方便。运算符可采用一符一类的分法,但也可以把具有一定共性的算符视为一类。至于分界符一般用一符一类的分法。如果一个词类只含有一个单词符号,那么,对这个单词而言,词类编码就完全代表它自身了。若一个词类含有多个单词,那么,对于它的每个单词,除了给出词类编码之外,还应给出有关单词的属性的信息。 </p>
<p>所谓单词的<font class="definition3">属性</font>,是指单词符号的特性或特征。而<font class="definition3">属性值</font>则是反应特性或特征的值。一般说来,一个单词具有一个属性值。例如,对于某个标识符而言,常把指向存放它的有关信息的符号表入口的指针作为它的属性值。又如,对于某个常数而言,常把指向存放它的有关信息的常数表入口的指针作为它的属性值。</p>
<td></td>
</tr>
</table>
<table align=right width=300>
<tr>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.1.htm'" src="../images/previous.gif"></IMG></td>
<td><IMG onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='3.1.2b.htm'" src="../images/next.gif"></IMG></td>
</tr>
</table>
</BODY>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -