传统的程序设计语言的过程调用与目标代码的链接是在编译期完成的。

题目

传统的程序设计语言的过程调用与目标代码的链接是在编译期完成的。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段才能生成最终的可执行程序。此过程中,在(51)阶段可以发现被调用的函数未定义。

A.编辑和预处理

B.预处理

C.编译

D.链接


正确答案:D
解析:本题考查的是程序编译过程的基本知识。对于编译型程序设计语言C,在程序编写完成后执行前,主要进行预处理、翻译为目标代码和链接库函数等关键步骤。在这三步中,预处理分析程序中的宏定义并替换宏引用,翻译主要针对一个编译单元(通常对应一个源文件)进行,将该编译单元翻译为中间代码,链接过程将各个编译单元中变量和函数的引用与其定义绑定,确保程序中使用的所有变量和函数都存在对应实体。所以,未定义的函数引用只能在链接过程中发现。

第2题:

下列关于宏指令与过程的区别,错误的描述是()

A.过程调用会降低程序的执行速度,而宏调用有较快的执行速度。

B.过程调用需要保留程序的断点和现场,待过程执行完毕还要恢复现场;宏汇编则不需要进行这些操作,因而有较快的执行速度。

C.过程调用中不能有效地缩短目标代码的长度。宏调用能缩短目标代码的长度。

D.每次宏调用时允许修改有关的参数。使得同一条宏指令在各次调用过程中可完成不同的操作,而过程一旦被定义,一般不允许修改


参考答案:C

第3题:

编译器的主要工作过程是将以文本形式输入的代码逐步转化为各种形式,最终生成可执行代码。现代编译器主要关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理。针对这种特征,现代编译器应该采用()架构风格最为合适。

A.数据共享

B.虚拟机

C.隐式调用

D.管道-过滤器


参考答案:A

本题主要考查对架构风格的理解和掌握。根据题干描述,现代编译器主要关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理。这种情况下,可以针对程序的各种形态构建数据库,通过中心数据库进行转换与处理。根据上述分析,选项中列举的架构风格中,数据共享风格最符合要求。

第4题:

不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(38)。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定在编译时进行,叫做(39);而(40)则在运行时进行,即一个给定的过程调用和执行代码的结合直到调用发生时才进行。

(59)

A.继承

B.多态

C.动态绑定

D.静态绑定


正确答案:B
解析:不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般程序设计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,因此一个给定的过程调用和代码的结合是到调用发生时才进行的。

第5题:

_____是运行时把过程调用和响应调用需要的代码加以结合的过程。

A.词法分析

B.静态绑定

C.动态绑定

D.预编译

A.

B.

C.

D.


正确答案:C

第6题:

是在运行时把过程调用和响应调用需要的代码加以结合的过程。

A.词法分析

B.静态绑定

C.动态绑定

D.预编译


正确答案:C
解析:词法分析、预编译和静态绑定都是在程序的编译过程或编译前,只有动态绑定发生在程序运行过程中。

第7题:

是在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译汇编链接、调试、工程管理及函数库等功能模块的集成开发环境()。

A.交叉编译

B.(远程调试)联调

C.仿真

D.同步


正确答案:B

第8题:

● 编译和解释是实现高级程序设计语言翻译的两种基本形式。以下关于编译与解释的叙述中,正确的是(51)。

(51)A.在解释方式下,对源程序不进行词法分析和语法分析,直接进行语义分析

B.在解释方式下,无需进行语法、语法和语义分析,而是直接产生源程序的目标代码

C.在编译方式下,必须进行词法、语法和语义分析,然后再产生源程序的目标代码

D.在编译方式下,必须先形成源程序的中间代码,然后再产生与机器对应的目标代码


正确答案:C

第9题:

以下关于嵌入式系统的软件设计的叙述中,说法错误的是(65)。

A.把应用程序转换成可以在目标机上运行的二进制代码通常需要经过编译、链接和定址等三个步骤

B.编译过程生成的文件就是可以在嵌入式平台上执行的二进制文件

C.编译过程产生的所有目标文件被链接成一个目标文件

D.定址过程会把物理存储器地址指定给目标文件的每个相对偏移处


正确答案:B
解析:在嵌入式开发过程中,有主机和目标机的角色之分。主机是执行编译、链接和定址过程的计算机;目标机是指运行嵌入式软件的硬件平台。首先需把应用程序转换成可以在目标机上运行的二进制代码。这一过程包含三个步骤:编译、链接和定址。①编译过程由交叉编译器实现。所谓交叉编译器,就是运行在一个计算机平台上并为另一个平台产生代码的编译器。②编译过程产生的所有目标文件被链接成一个目标文件,称为链接过程。③定址过程会把物理存储器地址指定给目标文件的每个相对偏移处。该过程生成的文件就是可以在嵌入式平台上执行的二进制文件。

第10题:

“编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用顺序批处理架构风格比较合适。 随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE集成了编译器、连接器、调试器等多种工具,支持代码的增量修改与处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE采用(50)架构风格比较合适。IDE强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用(51)架构风格比较合适。

A.规则引擎

B.解释器

C.数据共享

D.黑板


正确答案:C
传统的编译器一般采用数据流架构风格,在这种架构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。编译处理过程中,会分步将源代码一次一次的处理,最终形成目标代码,这与数据流架构风格相当吻合。但选项中有两个数据流风格的架构供选择,即:“管道-过滤器”和“顺序批处理”,这就需要进一步分析哪个更合适,由于题目中提到“程序源代码作为一个整体,依次在不同模块中进行传递”,而顺序批处理是强调把数据整体处理的,所以应选用顺序批处理风格。IDE是一种集成式的开发环境,在这种环境中,多种工具是围绕同一数据进行处理,这种情况适合用数据共享架构风格。在题目中提到IDE环境是一种交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现。在做一件事情时,同时触发一系列的行为,这是典型的隐式调用风格(事件驱动系统)。“使IDE能够生成符合新操作系统要求的运行代码”,这一要求是可以通过适配策略满足的,像设计模式中的适配器模式便是采用适配的方式,形成一致的接口。“模拟新操作系统的运行环境”是典型的虚拟机架构风格的特长。

更多相关问题