`
RednaxelaFX
  • 浏览: 3049322 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

几个简答题

阅读更多
某题目 写道


龙书 写道
In addition to a compiler, several other programs may be required to create an executable target program, as shown in Fig. 1 .5. A source program may be divided into modules stored in separate files. The task of collecting the source program is sometimes entrusted to a separate program, called a preprocessor. The preprocessor may also expand shorthands, called macros, into source language statements.

The modified source program is then fed to a compiler. The compiler may produce an assembly-language program as its output, because assembly language is easier to produce as output and is easier to debug. The assembly language is then processed by a program called an assembler that produces relocatable machine code as its output.


嗯,帮朋友回答几个问题,太长了不方便发推,所以发这里了。

1、编译器一般不直接生成机器码,而是先生成汇编,再由汇编器转换为机器码。请简述其理由。

答:
因为汇编比机器码更容易生成一些,先生成汇编再转换为机器码有助将功能划分开,提高模块性。
汇编中可以保留符号信息,不必将最终的地址(或一些偏移量)计算出来;而机器码自身已经完全失去了符号信息,例如跳转目标必须是明确的数值形式的地址或偏移量。高级的汇编中也可以声明和使用宏,也可用于简化特定领域的代码生成过程。

2、编译器一般都有不进行优化以及进行优化两种模式。请简述其理由。

答:
首先,编译器要保证在翻译过程中保持语义的正确性。由于不进行优化时编译器做的是比较直观的翻译,其正确性容易得到保证。相对的,优化可能带来语义的偏差,所以在编译器开发中常以不优化的编译结果作为基准,对比验证优化的编译结果是否有bug。

其次,不优化的代码易于调试。由于优化过程中可能将原本用户代码中的一些变量削除掉,或者是将用户代码中的运算顺序打乱,这些都不利于调试。

第三,不进行优化比进行优化的编译速度高许多。

3、C语言编译器中的预处理器被认为可降低编译器的开发成本。请简述其理由。

答:
C语言通过预处理器来完成源码的引用、包含,便于将源码分散在不同源文件中;同时C语言的预处理器还实现了条件编译和宏的功能,可以实质上扩展C的语法;预处理器还会将注释剥离掉。经过预处理,编译器的后续部分就不需要关注源文件间的相互引用,只会看到完全符合C语言的语法的源码,简化了后续处理过程。

4、普通的Java语言编译器没有与C语言的预处理器对等的部分。请简述其理由。

答:
因为Java语言的功能与设计思路与C语言有差别,不需要像C语言一样使用预处理器。

首先,Java语言自身就有良好的分离编译的支持,每个源文件(*.java)就是一个编译单元(compilation unit);有依赖关系的源文件的编译,可以将相关的源文件一起交给编译器以便提供足够的符号信息,也可以单独编译其中一部分源码生成出Class文件,然后将这些Class文件交给编译器为剩下的源码的编译提供符号信息。因此,Java不需要通过预处理器来解决源文件间的引用、包含。

其次,Java语言通过if语句实现了条件编译,不像C语言需要使用预处理器指令(preprocessor directives)来实现条件编译。

第三,Java语言鼓励使用统一的语法,通过类、接口、方法等手段实现抽象,而不鼓励在源码中使用别的简写形式。因而Java语言没有实现类似C语言的宏,也就不需要相应的预处理。

============================================================

こんな解答しか出さなくてごめんね…`(°д°)′
  • 大小: 32.6 KB
分享到:
评论
3 楼 RednaxelaFX 2011-01-10  
lwwin 写道
为何问题日文?= =?

因为朋友在做入学考试的习题吧,日本的
2 楼 lwwin 2011-01-10  
为何问题日文?= =?
1 楼 kyfxbl 2011-01-10  
我勒个去,哥们懂日文,懂编译,还乐于助人,真是一位神级选手,赞!

相关推荐

    python简答题复习题库1

    "Python 简答题复习题库 1" 本资源摘要信息涵盖了 Python 语言的多个方面,包括内存管理、运算符、模块导入、脚本程序、列表操作、逻辑运算符、字符串驻留机制、异常处理、pdb 调试模块等。 1. 简单解释 Python ...

    软件工程简答题软件工程简答题

    * 逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能 * 时间内聚:把需要同时执行的动作组合在一起 * 通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的...

    《单片机》考试常见简答题(含答案).pdf

    但根据标题“《单片机》考试常见简答题(含答案)”,我们可以推测这些知识点可能涵盖了以下几个方面: 1. 单片机的基本概念:涉及单片机的定义、单片机的特点、单片机与微处理器的区别等。 2. 单片机的结构:包括...

    单片机自考简答题.pdf

    11. CS-51 单片机的存储器从物理结构上和逻辑上分别可划分哪几个空间? 12. 8155 有几种工作方式,各是什么? 13. 以 ADC0809 为例,说明 A/D 转换器转换数据的传送有哪几种方式,并作简要描述。 14. 51 单片机...

    Matlab简答题.docx

    ### Matlab简答题知识点详解 #### 一、Matlab常用操作界面 Matlab的用户界面集成了多种工具,便于用户高效地进行数据处理、算法开发和应用程序构建。主要包括以下几个部分: - **命令窗口**:用于输入命令和查看...

    2021中考物理简答题答题技巧.pdf

    简答题的答题技巧可以概括为三个环节: 第一环节是概括题意。在答题的开始阶段,考生应简洁明了地概括题目所描述的现象或问题。这是为了向阅卷老师清晰地展示考生对题目背景的理解,同时也是在为后续的物理原理分析...

    数据结构形考简答题.pdf

    数据结构的知识点可以从以下几个方面进行说明: 1. 基本概念:介绍数据结构的定义和目的,它如何帮助解决计算机程序中的问题。 2. 常见类型:详细解释线性结构(如数组、链表)、树形结构(如二叉树、堆、红黑树)...

    php面试常见简答题总结

    ### PHP面试常见简答题总结 #### Linux 命令及操作 **1. 尽可能多地写出你所熟悉的Linux命令** - **mkdir**: 用于创建一个或多个目录。 - `mkdir mydir`: 创建名为`mydir`的新目录。 - `mkdir -p mydir/subdir`...

    数据库系统概论老师给的简答题 sql语言题的复习题

    "数据库系统概论简答题" 本资源主要涉及数据库系统概论的基本概念、DBMS 的功能、数据模型、数据库系统的三级模式结构、关系运算符、SQL 语言的使用方式、视图的概念和优点等知识点。 1. 数据库、数据库系统和...

    网页制作简答题

    规划网站时应从以下几个方面入手: - **确定站点的目标**:明确网站的主要目的,例如销售产品、提供服务或分享信息等。 - **确定目标用户**:了解目标用户的特征、兴趣和需求,以便更好地设计网站内容和服务。 - **...

    net简答题.doc

    ADO.NET是对早期的ADO(ActiveX Data Objects)的重大改进,主要体现在以下几个方面: 1. **数据表示方式**:ADO使用Recordset对象来存储和操作数据,而ADO.NET引入了DataSet对象,它允许数据在客户端进行离线处理...

    软件设计模式与体系结构(期末复习2)简答题背诵.rar

    在软件设计模式与体系结构的期末复习中,学生可能需要掌握以下几个核心知识点: 1. **设计模式的分类和应用场景**:理解每种模式的特点,以及何时应该选择哪种模式,如在需要唯一实例时使用单例模式,需要动态组合...

    自考计算机组成原理题库-简答题

    计算机组成原理题库-简答题 计算机组成原理是计算机科学中的一门重要基础课,涉及计算机系统的结构、组成、工作原理和性能优化等方面。本题库涵盖了计算机组成原理的主要知识点,包括数字表示、存储器、总线、输入/...

    [中学]教育知识能力简答题汇总.doc

    - 教学理论包括教学目标、教学模式、教学策略等内容,简答题虽在近几次考试中较少出现,但仍然是备考的重点。 4. **学习心理**: - 学习理论、记忆规律、有效学习策略等是常考点,考生应掌握如何利用记忆规律促进...

    软件测试基础 复习:简答题

    本复习资料主要聚焦于软件测试的基础知识,特别是简答题部分,将深入探讨缺陷的定义、缺陷的类型以及测试方法。 首先,我们要理解什么是“缺陷”。在软件工程中,缺陷通常指的是程序中的错误、故障或失效,它们可能...

    java自考简答题 java考试

    Java程序的编译和运行过程包括以下几个步骤: 1. **源代码编写**:使用文本编辑器或集成开发环境(IDE)编写Java源代码。 2. **编译**:使用`javac`命令将Java源代码编译成字节码文件(.class文件)。 3. **字节码...

    音乐教师招考复习论述简答题.doc

    以下是几个可能涉及的重要知识点: 1. 音乐理论基础: - 音阶与调性:考生需了解大调、小调、五声音阶等各种音阶类型,以及调性的基本概念,如主音、属音、下属音等。 - 和声学:包括和弦构造、功能和声、调性...

    妇产科历年重点简答题整理.doc

    这些内容涵盖了妇产科的几个关键知识点,包括流产类型、胎盘异常、阴道感染、妊娠并发症、分娩迹象、子宫肌瘤的处理、避孕方法以及闭经的原因。理解和掌握这些知识对于妇产科医生来说至关重要,能够帮助他们识别和...

    《国际金融学》习题答案--简答题.pdf

    《国际金融学》习题答案简答题提供了国际金融学知识的概括,强调了国际收支平衡表的重要性、国际收支失衡原因的多维性,以及国际收支账户构成的最新变化。这些知识点对于理解国家间金融交易、金融政策制定和经济决策...

Global site tag (gtag.js) - Google Analytics