第一章:编译系统概述 一.单选题 1.编译程序前三个阶段完成的工作是( C )
A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码优化 2.编译程序绝大多数时间花在( D )上
A.出错处理 B.词法分析 C.目标代码生成 D.表格管理 3.编译程序是对( C )
A.汇编程序的翻译 B.高级语言程序的解释执行 C.高级语言的翻译 D.机器语言的执行 4.在使用高级语言编程时,首先可通过编译程序发现源程序的全部( A )错误
A.语法 B.语义 C.语用 D.运行 二.填空题 1.编译程序首先要识别出源程序中每个( 单词 ),然后再分析每个( 句子 )并翻译其意义
2.通常把编译过程分为分析前端与后端两大阶段
词法、语法和语义分析是对源程序的( 分析 ),中间代码生成、代码优化与目标代码的生成则是对源程序的 (综合 )
3.对编译程序而言,输入数据是( 源程序 ),输出结果是( 目标程序 )
4.对下列错误信息,请指出可能是编译的哪个阶段(词法分析、语法分析、语义分析、 代码生成)报告的
(1) else 没有匹配的if (语法分析) (2) 数组下标越界 (语义分析) (3) 使用的函数没有定义 (语法分析) (4) 在数中出现非数字字符 (词法分析) 5.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段: ( 编译阶段 ) 和( 运行阶段 )
如果编译程序生成的目标程序是汇编语言程序,则源程序的执行方式分成三个阶段:( 编译阶段 )( 汇编阶段 )和( 运行阶段 )
6.编译程序在其工作过程使用最多的数据结构是( 表 ),它记录着源程序中各种信息,以便查询或修改,在这些( 表 )中,尤以( 符号表 )最重要,它的生存期最长,使用也最频繁