免费智能真题库 > 历年试卷 > 软件设计师 > 2010年下半年 软件设计师 上午试卷 综合知识
  第21题      
  知识点:   编译过程概述
  关键词:   编译程序   源程序   编译        章/节:   计算机软件知识       

 
编译程序分析源程序的阶段依次是(21)。
 
 
  A.  词法分析、语法分析、语义分析
 
  B.  语法分析、词法分析、语义分析
 
  C.  语义分析、语法分析、词法分析
 
  D.  语义分析、词法分析、语法分析
 
 
 

 
  第22题    2010年上半年  
   32%
编译程序对C语言源程序进行语法分析时,可以确定(22)。
  第50题    2012年下半年  
   43%
以下关于程序错误的叙述中,正确的是(50)。
  第48题    2013年下半年  
   27%
将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是(48)。
   知识点讲解    
   · 编译过程概述
 
       编译过程概述
        编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段,实际的编译器可能会将其中的某些阶段结合在一起进行处理,比如说表格管理和出错处理与上述6个阶段都有联系。
        1)词法分析阶段
        词法分析阶段的任务是对源程序从前到后(从左到右)逐个字符进行扫描,从中识别出一个个"单词"符号。"单词"符号是程序设计语言的基本语法单位,如关键词、标识符等。词法分析程序输出的"单词"常常采用二元组的方式,即单词类别和单词自身的值。
        2)语法分析阶段
        语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如"表达式""语句"和"程序"等。
        词法分析和语法分析本质上都是对源程序的结构进行分析。
        3)语义分析阶段
        语义分析阶段主要是审查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能翻译成正确的目标代码。语义分析的一个主要工作是进行类型分析和检查。
        4)中间代码生成阶段
        中间代码是一种结构简单且含义明确的记号系统,可以有多种形式。中间代码的设计原则主要有两点:一是容易生成;二是容易被翻译成目标代码。中间代码生成阶段的工作就是根据语义分析的输出生成中间代码。
        语义分析和中间代码生成所依据的是语言的语义规则。
        5)代码优化阶段
        代码优化阶段的任务是对前阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间。优化过程可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行。
        6)目标代码生成阶段
        目标代码生成阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与具体的机器密切相关。
        7)符号表管理
        符号表管理阶段的任务是在符号表中记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。符号表的建立可以始于词法分析阶段,也可以放到语法分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。
        8)出错处理
        用户编写的源程序中的错误大致可分为静态错误和动态错误。动态错误也称为动态语义错误,指程序中包含的逻辑错误。静态错误是指编译阶段发现的程序错误,可分为语法错误和静态语义错误。出错处理程序的任务包括检查错误、报告出错信息、排错、恢复编译工作。
   题号导航      2010年下半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第21题    在手机中做本题