全套答案见我的《编译原理》专栏
运行存储分配
1 在目标代码生成阶段,符号表用于()。
A. 目标代码生成
B. 语义检查
C. 语法检查
D. 地址分配
2 PASCAL语言中过程声明的局部变量地址分配在( )。
A. 调用者的数据区中
B. 被调用者的数据区中
C. 主程序的数据区中
D. 公共数据区中
3 编译方法中,动态存储分配的含义是()。
A. 在编译阶段为源程序中的量进行分配
B. 在编译阶段为源程序中的量进行分配,运行时可动态调整
C. 在运行阶段为源程序中的量进行分配(在运行阶段对源程序中的数组、变量、参数等进行分配)
D. 都不正确
4 运行阶段的存储组织与管理的目的是( )。
A. 提高编译程序的运行速度
B. 为运行阶段的存储分配做准备及提高目标程序的运行速度
C. 优化运行空间的管理
D. 节省内存空间
5 以下说法正确的是( )。
A. 对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略
B. 对于数据空间的存贮分配,C语言仅采用栈式贮存分配策略
C. 动态存储分配是指在编译阶段对源程序中的量进行分配,以使目标代码在运行时加快
运行速度
D. 如果两个临时变量的作用域不相交,则可以将它们分配在同一单元中
6 以下说法正确的是( )。
A. 编译程序除解决源程序中用户定义的量在运行时刻的存储组织与分配问题之外,还应
完成为临时变量和参与运算的寄存器组织好存储空间的任务
B. 由于C语言的函数允许递归调用,因此对C语言中的所有变量的单元分配一律采用动
态分配方式
C. 动态数组的存储空间在编译时即可完全确定
D. “运算符与运算对象类型不符”属于语法错误
7 以下说法正确的是( )。
A. 符号表由词法分析程序建立,由语法分析程序使用
B. 符号表的内容在词法分析阶段填入并在以后各个阶段得到使用
C. 对一般的程序设计语言而言,其编译程序的符号表应包含哪些内容及何时填入这些信
息不能一概而论
D. “运算符与运算对象类型不符”属于语法错误