编译原理 概述 第一章复习题

版权声明:走过路过的,如果发现有错误不妥的地方,烦请指正,不胜感激。 https://blog.csdn.net/jsx_SEVEN/article/details/90269973

第一章复习题

单选

  1. 编译过程中,语法分析器的任务不包括(A)。
    A. 分析单词是怎样构成的
    B. 分析单词串是如何构成语句和说明的
    C 分析语句和说明是如何构成程序的
    D 分析程序的结构

  2. 编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过(B)这几步。
    a、编辑 b、编译 c、连接 d、运行
    A abcd
    B abc
    C ac
    D ad

  3. 解释方式和编译方式的主要区别在于(B)。
    A 能否对源程序查错
    B 能否生成目标代码
    C 能否多用户运行
    D 机器资源利用率高低

  4. 若在Pascal语言源程序中出现“&#&”,且不出现在引号和注释里,在编译时会(C)。
    A 不报错
    B 语法分析时报错
    C 词法分析时报错
    D 代码生成时报错

  5. 若在C语言程序中出现“aa 11 bb=123;”,且不出现在引号和注释里,在编译时会(D)。
    A 词法分析时报错
    B 语义分析时报错
    C 生成中间代码时报错
    D 语法分析时报错

  6. 面向机器的语言指的是(B)。
    A 用于解决机器硬件设计问题的语言
    B 特定计算机系统所固有的语言
    C 各种计算机系统都通用的语言
    D 只能在一台计算机上使用的语言

  7. 面向机器语言的特点是(D)。
    A 程序的执行效率低,编制效率低,可读性差
    B 程序的执行效率高,编制效率高,可读性强
    C 程序的执行效率低,编制效率高,可读性强
    D 程序的执行效率高,编制效率低,可读性差

  8. 编译程序是对(D)。
    A 汇编程序的翻译
    B 高级语言的解释执行
    C 机器语言的执行
    D 高级语言的翻译

  9. 编译程序是一种(A)软件。
    A 系统
    B 应用
    C MIS
    D ERP

  10. C)不是编译程序的组成部分。
    A 词法分析器程序
    B 代码生成程序
    C 设备管理程序
    D 语法分析程序

  11. 设有表达式a* b-c,将其中a*b识别为表达式的编译阶段是(B
    A 词法分析
    B 语法分析
    C 语义分析
    D 代码生成

    扫描二维码关注公众号,回复: 6523948 查看本文章

多选

  1. 编译原理各阶段的工作都涉及到(AC
    A 表格管理
    B 语法分析
    C 出错处理
    D 代码优化

  2. 程序语言一般分为(A)和(C
    A 高级语言
    B 专用程序语言
    C 低级语言
    D 通用程序语言

  3. 高级语言的翻译方式有(C)和(D
    A 汇编方式
    B 模拟方式
    C 解释方式
    D 编译方式

判断

  1. 有人说:“用高级语言编写的源程序必须通过编译,得到目标代码后才能投入运行”。错误

简答

1.何谓源程序、目标程序、翻译程序、编译程序和解释程序?他们之间有什么关系?

  • 源程序:用源语言编写的程序
  • 目标程序:源程序经翻译程序加工处理过后生成的程序。
  • 翻译程序:将源程序转换为与其逻辑上等价的目标程序。
  • 汇编程序:源语言为汇编语言,目标语言为机器语言的翻译程序。
  • 编译程序:高级语言翻译成汇编语言或机器语言的翻译程序,属于翻译程序的一种。
    ①先翻译后执行 ②执行速度快 ③多次运算
  • 解释程序:源语言程序作为输入,但不产生目标程序,而是边解释变只想源程序。
    ①边解释变执行 ②有利于程序的调试 ③1次运算

编译程序总框

编译系统总框

2.一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么?

{ { 编译系统\begin{cases} 编译程序\begin{cases} 词法分析\\ 语法分析\\ 语义分析与中间代码生成\\ 优化\\ 目标代码生成 \end{cases}\\ 运行系统 \end{cases}

各部分主要功能:

  • 词法分析(Lexical Analysis)
    从左到右挨个读入源程序的字符,对构成源程序的字符串进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。
  • 语法分析(Syntax Analysis)
    在词法分析的基础上将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等。
  • 语义分析(Syntactic Analysis)
    语义分析实在语法分析程序确定出语法短语后,审查有无予以错误,并为代码生成阶段收集类型信息。
  • 中间代码生成(Generation of intermediate code)
    完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或称中间代码,它是一种结构简单、含义明确的记号系统。
  • 代码优化(Optimization of code)
    为了使生成的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。
  • 代码生成(Generation of code)
    目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。

猜你喜欢

转载自blog.csdn.net/jsx_SEVEN/article/details/90269973