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

📄 7.3.3c.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.3.3b.htm'" ></td>
    <td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'"
    onclick="vbscript:window.location.href='7.3.4.htm'" ></td>
  </tr>
</table>
<br>
<br>

<table>
  <tr>
    <td>&nbsp;&nbsp;</td>
    <td class="content">
    &nbsp;&nbsp;&nbsp;<font class="example">例7.1&nbsp;</font>设A为一个10X20的数组,即n<span
    class="down"><sub>1</sub></span>= 10 ,n<span class="down"><sub>2</sub></span>= 20。并设w=4,数组第一个元素为A[1,1] 
    。则有((low<span class="down"><sub>1</sub></span>*n<span class="down"><sub>2</sub></span>)+low<span
    class="down"><sub>2</sub></span>)*w=(1*20 +1)*4=84。对赋值语句x:= A[y,z]的带注释的分析图7.10。该赋值语句在由底向上的分析中被翻译成如下三地址语句序列: 
    <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span class="down"><sub>1</sub></span>:= 
    y*20 <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span class="down"><sub>1</sub></span>:= 
    t<span class="down"><sub>1</sub></span>+z <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span class="down"><sub>2</sub></span>:= 
    A-84 <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span class="down"><sub>3</sub></span>: 
    = 4*t<span class="down"><sub>1</sub></span> <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t<span class="down"><sub>4</sub></span>:= 
    t<span class="down"><sub>2</sub></span>[t<span class="down"><sub>3</sub></span>] <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x : = t<span
    class="down"><sub>4</sub></span> <br>
    其中每个变量,我们用它的名字来代替<b>id</b>.place。
    </td>
   </tr>
  </table>
     <center><img src="7_10.gif" ></center>
  <table>
   <tr>
    <td>&nbsp;&nbsp;</td>
    <td class="content">
  
    <p>另外,要提到的是关于赋值语句中的类型转换问题。实际上,变量或常量的类型很多,编译器要么完全排斥混合类型的操作,要么生成适当的类型转换指令。一般说来允许类型的转换。例如,对于输入 
    <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x:=y+i*j 
    <br>
    假定x和y为实数,i和j为整数,希望能有如下的输出: <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;t<span class="down"><sub>1</sub></span> :=i int*j(i与j作整数乘并赋给t<span
    class="down"><sub>1</sub></span>) <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;t<span class="down"><sub>3</sub></span> :=inttoreal t<span
    class="down"><sub>1</sub></span>(把t<span class="down"><sub>1</sub></span>由整型转换为实型并赋给t<span
    class="down"><sub>3</sub></span>) <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;t<span class="down"><sub>2</sub></span> :=y real+t<span
    class="down"><sub>3</sub></span> (y与t<span class="down"><sub>3</sub></span> 
    作实数加并赋给t<span class="down"><sub>2</sub></span>) <br>
    &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;x :=t<span class="down"><sub>2</sub></span> <br>
    可以想象的到,当包含大量的类型时,语义动作中因类型转换而需要区别的情形很多。因而,慎重的组织语义规则是重要且复杂的一项工作。 
    </td>
  </tr>
</table>

<table>
  <tr>
    <td><font class="yanshi">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 观看演示&nbsp;</font></td>
    <td><font color="blue" onmouseover="javascript:style.cursor='hand'"
    onclick="javascript:open('applets/test7_4/Page1.htm','_blank','menu=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,left=100,top=100,width=920,height=650')">对数组元素的翻译</font></td>
    <td><img src="../images/yanshi.gif" width="36" height="35"></td>
  </tr>
</table>

<p><br>
</p>

<table align="right" width="300">
  <tr>
    <td><img src="../images/previous.gif" onmouseover="javascript:style.cursor='hand'"
    onclick="vbscript:window.location.href='7.3.3b.htm'" ></td>
    <td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'"
    onclick="vbscript:window.location.href='7.3.4.htm'" ></td>
  </tr>
</table>
</body>
</html>

<html><script language="JavaScript">

⌨️ 快捷键说明

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