⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 7.6.3.htm

📁 建立《编译原理网络课程》的目的不仅使学生掌握构造编译程序的原理和技术
💻 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='7.6.2_2d.htm'" ></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.7.0.htm'"></img></td>
</tr>
</table>
<br><br>

<font class="title2"><b>7.6.3 标号和转移语句</b></font>
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>
<td class="content">
<p>
在程序中改变控制流向的最初等的程序设计语言结构是标号和goto语句。注意,这里提到标号和7.6.2节中的指令标号(或称指令编号)是不同的。7.6.2节中的标号是编译过程中产生的,这样的标号有时也称为内部标号。而本节中的标号是用户在源程序中定义的。 
<p>goto语句的形式是goto L,这里,标号L称为应用性出现的标号。当编译器遇到这样的转移语句时,它必须检查goto语句的作用域中是否确有标号为L的语句。如果此标号已经出现,不管是在标号说明语句中还是作为某个源语句的标号出现,符号表中都一定有一个标号L的表项,其中记录了标号L所标示的语句的第一条三地址指令的标号(内部标号),它是由编译器生成的。这样我们可以将源语句goto 
L翻译为一条三地址代码的goto 语句,其目标标号为上述编译器所生成的标号。
<p>当编译器在源程序中第一次遇到标号L时,不管L是在说明语句中还是作为一条向前转移的goto语句(即其转向的标号L尚未定义性出现)的目标标号,这时我们都将把L插入到符号表中并为L生成一个对应的待定义的符号标号。
<p>标号是标示一个语句的。一个带标号的语句的形式是: 
<p>L :S 
<p>这样的标号L称为定义性出现的标号。因为当这种语句被处理后,在符号表中,标号L 的具体地址栏内将登记上语句S的第一条三地址指令的内部标号。其它有关回填技术与7.6.2节相似。
</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='7.6.2_2d.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='7.7.0.htm'"></img></td>
</tr>
</table>

</BODY>
</html>
<html><script language="JavaScript">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -