软考在线  |  计算机技术与软件专业技术资格(水平)考试   |   [请选择科目]
[ 成为 VIP会员 ]        登录  |  注册      我的  购物车
0
 
科目切换  联系我们 
    
  |   [请选择科目]

VIP:有效提升20分!  真题  历年真题 (可免费开通)/  百科全书/ 机考模拟平台/  最难真题榜/  自测/  攻打黄金十二宫/  真题检索/  真题下载/  真题词库
知识   必会知识榜/  最难知识榜/  知识点查询/      文档   学习计划/  精华笔记/  试题文档     纸质图书   《百科全书》HOT!!/         /        首页/  2025年上半年专区/  手机版/ 
免费智能真题库 > 历年试卷 > 程序员 > 2015年下半年 程序员 上午试卷 综合知识
  第29题      
  知识点:   编译程序基本原理
  关键词:   编译   代码生成   语义   源程序   正确性        章/节:   软件基础知识       
  错误率: 31%      难度系数:      

 
编译过程中使用 (29) 来记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。
 
 
  A.  散列表
 
  B.  符号表
 
  C.  单链表
 
  D.  决策表
 
 
 确定 并 查看答案解析     知识点讲解  我要标记      有奖找茬      上一题        下一题 
 

 
  第31题    2016年下半年  
   60%
某C语言程序中有表达式x%m(即x被m除取余数),其中,x为浮点型变量,m为整型非0常量,则该程序在(30)时会报错,该错误属于(3..
  第31题    2013年上半年  
   50%
在以阶段划分的编译器中,贯穿于编译器工作始终的是(31)。
  第30题    2014年下半年  
   46%
以下叙述中,正确的是(30)。
   知识点讲解    
   · 编译程序基本原理
 
       编译程序基本原理
        编译程序的功能就是把用某种高级语言书写的源程序翻译成与之等价的低级语言的目标程序,如下图所示。
        
        编译程序的功能
        编译程序一般可划分为前后衔接的6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,如下图所示。
        
        编译程序的结构
               词法分析阶段的主要任务
               词法分析阶段是编译过程的第一个阶段。词法分析的任务是:从左到右一个个字符地输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词符号(简称单词或符号)。单词是程序设计语言的基本语法符号,如保留字(begin、end、if、for和while等)、标识符、常数、算符及界符(标点符号和左右括号等)。
               在词法分析这一阶段的工作中,所依循的是语言的构词规则。
               语法分析阶段的主要任务
               语法分析的任务是:在词法分析的基础上,根据语言的语法规则(文法规则),把单词符号串分解成各类语法单位,如"短语""子句""句子"("语句")、"程序段"和"程序"。通过语法分解,确定整个输入串是否构成一个语法上正确的"程序"。在语法分析这一阶段的工作中,所依循的是语言的语法规则。
               语义分析阶段的主要任务
               语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能被翻译成正确的目标代码。语义分析的一个主要工作是进行类型分析和检查。程序语言中的一个数据类型一般包含两个方面的内容:类型的载体及其上的运算。
               中间代码生成阶段的主要任务
               中间代码产生的任务是根据语义分析的输出生成中间代码。中间代码是一种简单且含义明确的记号系统。中间代码设计原则有两点:一是容易生成;二是容易将它翻译成目标代码。
               代码优化阶段的主要任务
               代码优化的任务是:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生更为高效(省时间和省空间)的目标代码。优化的主要方面有:公共子表达式的提取、循环优化和算符归约等。在代码优化这一阶段的工作中,所依循的原则是程序的等价变换规则。
               目标代码生成阶段的主要任务
               目标代码生成的任务是:把中间代码(或者经优化处理之后)变换成特定机器上的绝对指令代码、可重新定位的指令代码或者汇编指令代码。这一阶段实现了最后的翻译,它的工作有赖于硬件系统结构和机器指令含义。这一阶段的工作也是最复杂的,涉及计算机硬件系统功能部件的运用,机器指令的选择,各种数据类型变量的存储空间分配,以及寄存器和后缓寄存器的调度等。
               在编译过程中,汇编源程序的各种信息被保留在各种不同的表格里,编译各阶段的工作都涉及构造、查找,或者更新有关的表格。因此,编译程序中必须含有一组管理各种表格的程序。
               如果汇编源程序有错误,编译程序应该设法发现错误,把有关信息报告给用户。这部分工作是由专门的一组出错处理程序完成的,它与编译各阶段都有联系。因此,编译程序中必须含有一组出错处理程序。
   题号导航      2015年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第29题    在手机中做本题
    在线人数   共计 8162人 在线 
    songweizlj..     zhangwodee..     85467468@q..     dengxiaole..     ykou001@16..     gu_zhongju..
    tjqin2008@..     msps275@16..     tjqin2008@..     75368957@q..     lqx.phy@16..     mayue_1206..
    ashun033@y..     liweisk102..     pcojj@163...     099804055@..     jinrifeng0..     ylsmagic20..
    lulz@sina...     jmsiti163@..     liuting_55..     chaochao_4..     ray3344529..     wuxuexin37..
    chenzx0629..     charles201..     wuzhonggxy..     yingqiango..     asdfoooo40..     583033869@..
    ljx103650@..     pangdong.2..     xuexiuli12..     jsmj666@16..     zhuangying..     zyqc1000@y..
    huang.cbcr..     du.xin@mw...     yizhutingy..     xuyong_67@..     hsl010@126..     gu_zhongju..

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。



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