|
三、习题答案
1.1 高级语言程序经过哪些阶段才能成为可执行程序?
解:高级语言程序通常要经过预处理?词法分析?语法分析?代码生成和模块连接等阶段?
才能被编译成可被计算机执行的程序?
1.2 什么叫静态连接?什么叫动态连接?它们有什么区别?
解:静态连接是由编译程序完成的?编译程序将编译生成的目标语言连接成可执行程序文
件的过程?
动态连接是由操作系统完成的?在应用程序执的行过程中?操作系统根据被调用的函数
名连接内存中的动态连接库函数?若相关动态连接库被移出内存?则重新装入动态连接
库并重新连接?
静态连接是在程序执行之前完成的?动态连接是在程序的执行过程中完成的?静态连接程序在执行时不需要再次装入程序文件?动态连接程序在执行时一般需要重新装入程序
文件?因此?静态连接程序一般来说比动态连接程序执行速度快?静态连接程序需要将程序文件全部装入内存?如果不同的程序包含了同样的函数代码?就会在内存装入这些函数的多个副本?动态连接程序总是共用同一个函数副本?因此?静态连接程序一般要
比动态连接程序占用更多的内存?
1.3 什么叫静态绑定?什么叫动态绑定?它们有什么区别?
解:静态绑定是在程序运行之前进行的?编译程序或操作系统在装入程序后?计算函数的
百度网盘下载http://pan.baidu.com/s/1dFBPyaX
|
|