传统的程序设计语言的过程调用与目标代码的链接是在编译期完成的。
第1题:
由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段才能生成最终的可执行程序。此过程中,在(51)阶段可以发现被调用的函数未定义。
A.编辑和预处理
B.预处理
C.编译
D.链接
第2题:
A.过程调用会降低程序的执行速度,而宏调用有较快的执行速度。
B.过程调用需要保留程序的断点和现场,待过程执行完毕还要恢复现场;宏汇编则不需要进行这些操作,因而有较快的执行速度。
C.过程调用中不能有效地缩短目标代码的长度。宏调用能缩短目标代码的长度。
D.每次宏调用时允许修改有关的参数。使得同一条宏指令在各次调用过程中可完成不同的操作,而过程一旦被定义,一般不允许修改
参考答案:C
第3题:
A.数据共享
B.虚拟机
C.隐式调用
D.管道-过滤器
本题主要考查对架构风格的理解和掌握。根据题干描述,现代编译器主要关注编译过程和程序的中间表示,围绕程序的各种形态进行转化与处理。这种情况下,可以针对程序的各种形态构建数据库,通过中心数据库进行转换与处理。根据上述分析,选项中列举的架构风格中,数据共享风格最符合要求。
第4题:
不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(38)。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定在编译时进行,叫做(39);而(40)则在运行时进行,即一个给定的过程调用和执行代码的结合直到调用发生时才进行。
(59)
A.继承
B.多态
C.动态绑定
D.静态绑定
第5题:
_____是运行时把过程调用和响应调用需要的代码加以结合的过程。
A.词法分析
B.静态绑定
C.动态绑定
D.预编译
A.
B.
C.
D.
第6题:
是在运行时把过程调用和响应调用需要的代码加以结合的过程。
A.词法分析
B.静态绑定
C.动态绑定
D.预编译
第7题:
是在宿主机上编译好目标代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译汇编链接、调试、工程管理及函数库等功能模块的集成开发环境()。
A.交叉编译
B.(远程调试)联调
C.仿真
D.同步
第8题:
● 编译和解释是实现高级程序设计语言翻译的两种基本形式。以下关于编译与解释的叙述中,正确的是(51)。
(51)A.在解释方式下,对源程序不进行词法分析和语法分析,直接进行语义分析
B.在解释方式下,无需进行语法、语法和语义分析,而是直接产生源程序的目标代码
C.在编译方式下,必须进行词法、语法和语义分析,然后再产生源程序的目标代码
D.在编译方式下,必须先形成源程序的中间代码,然后再产生与机器对应的目标代码
第9题:
以下关于嵌入式系统的软件设计的叙述中,说法错误的是(65)。
A.把应用程序转换成可以在目标机上运行的二进制代码通常需要经过编译、链接和定址等三个步骤
B.编译过程生成的文件就是可以在嵌入式平台上执行的二进制文件
C.编译过程产生的所有目标文件被链接成一个目标文件
D.定址过程会把物理存储器地址指定给目标文件的每个相对偏移处
第10题:
“编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用顺序批处理架构风格比较合适。 随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE集成了编译器、连接器、调试器等多种工具,支持代码的增量修改与处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE采用(50)架构风格比较合适。IDE强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用(51)架构风格比较合适。
A.规则引擎
B.解释器
C.数据共享
D.黑板