编译原理知识点总结材料哈工程.pdfVIP

  • 1
  • 0
  • 约8.15千字
  • 约 11页
  • 2020-07-09 发布于天津
  • 举报
文档 第一章 概论 1.什么是编译器?输入输出? 编译器是将一种语言翻译为另一种语言的计算机程序。 输入:源语言 ( source language)编写的程序 输出:目标语言 ( target language )编写的程序。 2.汇编语言的优缺点 优点:汇编语言大大提高了编程的速度和准确度 缺点:编写起来也不容易 ,阅读和理解很难;而且汇编语言的编写严格依 赖于特定的机器,所以为一台计算机编写的代码在应用于另一台计算机时 必须完全重写。 3.什么是解释器?与编译器的区别? 解释程序是如同编译器的一种语言翻译程序。 与编译器的区别:它立即执行源程序而不是生成在翻译完成之后才执行的 目标代码。 4.乔姆斯基分类结构有几种文法?名称?相互关系? 4 种 名称: 0 型 无限制文法 1 型 上下文相关文法 2 型 上下文无关文法 3 型 正则文法 相互关系:其中的每一个都是其前者的专门化。 5.什么是扫描器?扫描器的功能是什么? 扫描器就是语法分析程序。 功能: 依据词法规则,分析由字符组成的源程序,把它分割为一个一个 具有独立意义的最小语法单位,即单词。 6.什么是编辑器? IDE 中编辑器的新功能 编译器通常接受由任何生成标准文件 (例如 ASCII 文件 )的编辑器编写的源 程序。 IDE 中编辑器的新功能:尽管编辑器仍然生成标准文件,但会转向正被讨 论的程序设计语言的格式或结构。这样的编辑器称为基于结构的,且它早 已包括了编译器的某些操作;因此,程序员就会在程序的 编写时而不是 在编译时就得知错误了。从编辑器中也可调用编译器以及与它共用的程序, 这样程序员无需离开编辑器就可执行程序。 文档 7.什么是调试器,与编译器的关系 调试程序是可在被编译了的程序中判定执行错误的程序。 运行一个带有调试程序的程序与直接执行不同,这是因为调试程序保存着 所有的或大多数源代码信息 (诸如行数、变量名和过程 ) 。它还可以在预先 指定的位置 (称为断点 )暂停执行,并提供有关已调用的函数以及变量的当 前值的信息。为了执行这些函数,编译器必须为调试程序提供恰当的符号 信息。 8.编译器有哪几个功能模块?各模块的功能及输入输出 源代码 扫描程序 记号 语法分析程序 语法树 语义分析程序 常量表 注释树 中间代码生成 符号表 中间代码 错误处理器 源代码 优化程序 中间代码 代码生成器 目标代码 目标代码 优化程序 目标代码 文档 9.编译器有哪几个辅助部件?功能? (1)常量表: 存放在程序中用到的常量和字符串 (2)符号表: 与标识符有关:函数、变量、常量以及数据类型。 与编译器的所有阶段交互:扫描程序、分析程序或将标识符输入到表格中 的语义分析程序。 (3)错误处理器 对源程序中错误的反应。 10.分析,综合 已将分析源程序以计算其特性的编译器操作归为编译器的分析部分,而将 生成翻译代码时所涉及到的操作称作编译器的综合部分。当然,词法分析、 语法分析和语义分析均属于分析部分 ,而代码生成却是综合部分。在优化 步骤中 ,分析和综合都有。分析正趋向于易懂和更具有数学性,而综合则 要求更深的专业技术。因此,将分析步骤和综合步骤两者区分开来以便发 生变化时互不影响是很有用的。 11.前段,后端 将编译器分成了只依赖于源语言 (前端 ) 的操作和只依赖于目标语言 (后端 ) 的操作两部分。

文档评论(0)

1亿VIP精品文档

相关文档