📄 2.2.2.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>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.1c.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2b.htm'"></img></td>
</tr>
</table>
<br><br>
<font class="title2"><b>2.2.2 文法和语言的形式定义</b></font>
<table><tr><td>    </td>
<td class="content">
<p>程序语言的语法,通常用上下文无关文法描述,所谓上下文无关文法是这样一种文法,它所定义的语法单位(或称语法范畴,或称语法实体)是完全独立于这种语法单位可能出现的上下文环境的。我们知道,在自然语言中,一个句子,一个词乃至一个字,它们的<font class="emphasize">语法性质</font>和所处的上下文往往有密切的关系。因此,上下文无关文法虽然不足以描述任何自然语言,但对于现今的程序语言来说,上下文无关文法基本上够用了。以后,凡“文法”一词若无特别说明,则均指上下文无关文法。
</p>
<p>
一个上下文无关文法包括四个组成部分:一组<font class="emphasize">终结符号</font>,一组<font class="emphasize">非终结符号</font>,一个<font class="emphasize">开始符号</font>,以及一组<font class="emphasize">产生式</font>。
</p>
<p>
终结符号是组成语言的基本符号。如在程序语言中的基本字、标识符、常数、运算符和分界符等。从语法分析的角度来看,终结符号是一个语言的不可再分的基本符号。
</p>
<p>
非终结符号(也称语法变量)用来代表语法单位。例如程序语言中常见的语法单位有"分程序”、“过程”、“赋值语句”、“表达式”等等。
</p>
<p>
开始符号是一个特殊的非终结符号,它代表所定义的语言中我们最终感兴趣的语法单位
</p>
<p>
产生式(也称产生规则或简称规则)是一有序对(A,α),通常写作: <br>
<center>A→α (或A::=α) </center>
其中A是非终结符号,α是由终结符号和非终结符号组成的符号串。A是产生式的左部,α是其右部。
</p>
</td></tr></table>
<br>
<table align=right width=300>
<tr>
<td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.1c.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='2.2.2b.htm'"></img></td>
</tr>
</table>
</BODY>
</html>
<html><script language="JavaScript">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -