全部科目 > 软件设计师 >
2021年下半年 上午试卷 综合知识
第 21 题
知识点 编译过程概述  
关键词 编译   代码生成   语言   语义   源程序   正确性  
章/节 计算机软件知识  
 
 
对高级程序语言进行编译的过程中,使用()来记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。
 
  A.  决策表
 
  B.  符号表
 
  C.  广义表
 
  D.  索引表
 
 




 
 
相关试题     编译程序的基本原理 

  第48题    2009年下半年  
以下关于编译系统对某高级语言进行翻译的叙述中,错误的是(48)。

  第22题    2022年下半年  
对高级语言源程序进行编译或解释过程中需进行语法分析,递归子程序分析属于()的分析法。

  第49题    2015年上半年  
某非确定的有限自动机(NFA)的状态转换图如下图所示(q0既是初态也是终态),与该NFA等价的确定的有限自动机(DFA)是(49)。

 
知识点讲解
· 编译过程概述
 
        编译过程概述
        编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段,实际的编译器可能会将其中的某些阶段结合在一起进行处理,比如说表格管理和出错处理与上述6个阶段都有联系。
        1)词法分析阶段
        词法分析阶段的任务是对源程序从前到后(从左到右)逐个字符进行扫描,从中识别出一个个"单词"符号。"单词"符号是程序设计语言的基本语法单位,如关键词、标识符等。词法分析程序输出的"单词"常常采用二元组的方式,即单词类别和单词自身的值。
        2)语法分析阶段
        语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如"表达式""语句"和"程序"等。
        词法分析和语法分析本质上都是对源程序的结构进行分析。
        3)语义分析阶段
        语义分析阶段主要是审查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能翻译成正确的目标代码。语义分析的一个主要工作是进行类型分析和检查。
        4)中间代码生成阶段
        中间代码是一种结构简单且含义明确的记号系统,可以有多种形式。中间代码的设计原则主要有两点:一是容易生成;二是容易被翻译成目标代码。中间代码生成阶段的工作就是根据语义分析的输出生成中间代码。
        语义分析和中间代码生成所依据的是语言的语义规则。
        5)代码优化阶段
        代码优化阶段的任务是对前阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间。优化过程可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行。
        6)目标代码生成阶段
        目标代码生成阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与具体的机器密切相关。
        7)符号表管理
        符号表管理阶段的任务是在符号表中记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。符号表的建立可以始于词法分析阶段,也可以放到语法分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。
        8)出错处理
        用户编写的源程序中的错误大致可分为静态错误和动态错误。动态错误也称为动态语义错误,指程序中包含的逻辑错误。静态错误是指编译阶段发现的程序错误,可分为语法错误和静态语义错误。出错处理程序的任务包括检查错误、报告出错信息、排错、恢复编译工作。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有