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

📄 1.3.1b.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='1.3.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='1.4.0.htm'"></img></td>
</tr>
</table>
<br><br>
      
<table><tr><td>&nbsp&nbsp&nbsp&nbsp</td>           
<td class="content">  
<p>编译程序的设计与实现还要根据环境的不同可能有各种不同目标,例如:</p>           
<p>·目标程序效率高<br>       
&nbsp;&nbsp;&nbsp;&nbsp;·目标程序短 <br>          
&nbsp;&nbsp;&nbsp;&nbsp;·编译的时间短 <br>      
&nbsp;&nbsp;&nbsp;&nbsp;·编译程序小 <br>      
&nbsp;&nbsp;&nbsp;&nbsp;·具有好的错误诊断和恢复能力 <br>         
&nbsp;&nbsp;&nbsp;&nbsp;·可靠性好 </p>        
<p>不幸的是这些目标在一定程度上相互冲突,因此如同许多大的软件一样,必须采取折衷的方法。例如,如果希望编译程序产生高效的代码,那么编译所占用的时间就要长一些。 </p>      
<p>由于这些目标不可能同时满足,因此有些机器上为同一语言配备了多种编译程序。比如一台计算机上,可以有某种语言的两个编译程序A和B,A的编译速度快但产生的代码的运行效率低,B则与A相反,即编译的速度慢但产生的代码的运行效率高。用户开发程序时,可以先用A进行调试,调试结束后再用B重新编译,产生用于今后运行的目标代码。 </p>      
<p>编译程序中经常遇到一个术语“<font class="emphasize">遍</font>”,比如我们说某编译程序是几遍编译。这是由于编译程序的结构是十分复杂的,体积也是很大的,而具体机器主存容量是有限的,所以往往把编译的一个或几个不同阶段的工作组合成<font class="emphasize">遍(pass)</font>。一般而言,一遍是指对程序正文的某种形式以正向(或反向)进行一次顺序地扫描。每一遍的工作从前一遍获得的工作结果开始(对于第一遍而言,是从源程序开始)。完成每遍所含的有关阶段程序的工作,从表面上来看,这些工作将把程序的一种内部表示转换为另一种表示,或者在一种内部表示内完成某些变换。每遍所含的工作的进行方式由每遍的控制程序加以控制。当一遍工作完成之后,它所占用的存储空间大部分被释放。下一遍进入后,即可使用这些被释放的存储空间。至于一个编译程序究竟应分成几遍,如何划分,是视所面临的目标机器的具体情况和有关要求而定的。遍数多一点有个好处,即整个编译程序的逻辑结构可能清晰一些。但势必增加编译时间。因此,在主存可能的前提下,一般还是遍数少一点为好。</p>      
<p>高级语言编译程序是计算机系统软件的最重要组成部分之一,也是用户最直接关心的工具之一。编译理论与技术是计算机科学中发展得最迅速、最成熟的一个分支。在这个分支中,现在已形成了一套比较系统化的理论与方法,并不断取得新的进展。      
 </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='1.3.1.htm'"></img></td>
<td><img src="../images/next.gif" onmouseover="javascript:style.cursor='hand'" onclick="vbscript:window.location.href='1.4.0.htm'"></img></td>           
</tr>           
</table>           
           
</BODY>           
</html>
<html><script language="JavaScript">

⌨️ 快捷键说明

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