1.什么是编译程序?

如果源语言是高级语言,目标语言是诸如汇编语言或机器语言之类的低级语言,那么这样的翻译程序为编译程序。

编译过程的5个阶段是什么?

词法分析 语法分析 语义及中间代码生成  代码优化 目标代码生成

请给出编译程序的结构框图

字母表:元素的非空有穷集和

符号:字母表中的元素称为符号

符号串:符号的有穷序列称为符号串

句子:S经0步到多步推导出x且x属于VT*,则x是该文法的一个句子。句子是一种句型

语言:文法G[S]产生的所有句子的集合称为文法G所定义的语言,记为L(G[S])

上下文无关文法:若文法G=(VN,VT,P,S)中的每一条规则形式为A->β,其中A∈VN,

β∈(VN∪VT)*,则称为G是上下文无关文法。

右线性文法:若文法G=(VN,VT,P,S)中的每一条规则形式为A->aB或A->a,

其中A,B∈VN,a∈VT*,则称G是右线性文法。

右线性文法:若文法G=(VN,VT,P,S)中的每一条规则形式为A->Ba或A->a,

其中A,B∈VN,a∈VT*,则称G是左线性文法。

正规文法:右线性文法和左线性文法都称为正规文法

句柄:一个句型的最左直接短语

规范推导(最右推导):每步推导都坚持替换当前句型最右边的非终结符。

文法二义性:如果一个文法存在某个句子对应两棵不同的语法树(或最左推导或最右推导) 则说这个文法是二义性的。

确定有穷自动机:

一个确定的有限自动机M是一个五元组M =(Q,Σ, f, S, Z),其中:

(1)Q是一个有限状态集,它的每一个元素称为一个状态;

(2)(2)Σ是一个有穷输入字母表,它的每一个元素称为一个输入字符;

(3)f是一个从Q×Σ到Q的单值映射,即f (qi , a)=qj且有qi、qj∈Q和a∈Σ;               (4) S∈Q,是惟一的一个初态;

(5) Z⊆Q,是一个终态集。

非确定有穷自动机: 一个非确定有限自动机M是一个五元组Mn=(Q,Σ,f,S,Z),其中:

(1) Q、Σ、Z的意义与DFA相同;

(2) 状态转换函数f不是单值函数,它是一个多值函数。是一个从S×Σ*到S的子集映射;       (3) S ⊂Q,是一个非空初态集。

正规集:正规语言(正规文法描述的语言)的集合

正规式:正规集的形式化描述,只能出现“.”连接、“|”或、“*”闭包三种运算。多数程序语言的单词都可用正规文法或正规式来描述。

素短语:所谓句型的素短语是指这样的一种短语,它至少包含一个终结符,并且除自身之外,不再包含其他的素短语。

规范句型活前缀:

(1)字符串的前缀是指字符串的任意首部。如,字符串abc的前缀有空串、 a、ab、abc。(2)规范句型活前缀是指规范句型的前缀,这种前缀不包含句柄右边的任何符号。

LR(0)项目集规范族:构成识别一个文法活前缀的DFA的状态(项目集)的全体。

冲突项目:“移进——规约”“规约——规约”冲突

同心集:所谓同心的LR(1)项目集是指在两个LR(1)项目集中,除搜索符不同之外,核心部分是相同的。

什么是属性文法?

一个属性文法是在上下文无关文法的基础上,允许每个文法符号X(终结符或非 终结符)根据处理的需要,定义与X相关联的属性。  文法符号的属性可分为继承属性与综合属性两类。综合属性用于“自下而上”传递信息,继承属性用于“自上而下”传递信息。

语法制导翻译的基本思想是什么?

文法中的每个符号都有一些编译程序关心的信息,称为文法符号

文法中的每个符号都有一些编译程序关心的信息,称为文法符号的属性;

为文法中的每个产生式给定一组计算相关属性的动作——语义动作

所谓语法制导翻译,是指在语法规则的制导下,通过计算语义规则,完成对输入符号串的翻译。

为文法中的每个产生式给定一组计算相关属性的动作——语义动作

所谓语法制导翻译,是指在语法规则的制导下,通过计算语义规则,完成对输入符号串的翻译。

什么是代码优化?代码优化通常在什么基础上进行?

提高代码质量的技术常称为代码优化。根据是否与具体机器有关,分为两类:一 类与机器有关,在目标代码上进行;一类与机器无关,在中间代码上进行。根据优化对象不同,可分为局部优化、循环优化、全局优化。

常用的优化技术有哪些?

删除多余运算、复写传播、代码外提、强度削弱,合并已知量。

目标代码的形式有哪些?

(1)能够立即执行的机器语言代码   (2)待装配的机器语言模块  (3)汇编语 言程序

编译原理第三版名词解释和简单相关推荐

  1. 编译原理第三版课后答案

    编译原理第三版课后答案: https://wenku.baidu.com/aggs/7c792566f5335a8102d22053?index=3&wkts=1669819610140

  2. 编译原理第三版清华pdf_清华网络科学与网络空间研究院考研经验分享

    清华网络科学与网络空间研究院考研经验分享 盛世清北,清北硕博摇篮,专注清华北大考研辅导近十年,盛世清北-北京大学考研辅导班开设清华土木工程考研辅导系列课程.上清华北大,就上盛世清北! 考试科目 参考书 ...

  3. 编译原理第三版王生原pdf_CS143:编译原理 | 环境搭建HelloWorld

    本文使用 Zhihu On VSCode 创作并发布 本文是本人新开的坑的第一篇博客,另一个坑请看MIT 6.828 实现操作系统.从另一个坑的第一篇复制两段话: 写成博客的目的是防止自己走马观花,花 ...

  4. 编译原理(第3版-王生原)课后习题答案-第三章

    1.构造下列正规式相应的 DFA. (1)1(0|1) *101 (2)1(1010* |1(010)*1) *0 (3)a((a|b)* |ab*a)*b (4)b((ab)* bb)*ab 答案: ...

  5. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 1.)(python/c/c++版)(笔记)

    原文:Let's Build A Simple Interpreter. Part 1. 文章目录 [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpre ...

  6. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 5.)(python/c/c++版)(笔记)Lexer词法分析程序

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 5.) 文章目录 python代码 C语言代码 总结 你如何处理像理解如何创建解 ...

  7. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 3.)(python/c/c++版)(笔记)

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 3.) 文章目录 python代码calc3.py C语言代码(calc3.cp ...

  8. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 2.)(python/c/c++版)(笔记)

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 2.) 文章目录 python代码 c代码 总结 让我们再次深入研究解释器和编译 ...

  9. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 6.)(python/c/c++版)(笔记)

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 6.) 文章目录 python代码 C语言代码 总结 今天是这一天:) &quo ...

  10. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 4.)(python/c/c++版)(笔记)

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 4.) 文章目录 python代码 C语言代码 总结 在上一篇文章中,您学习了如 ...

最新文章

  1. Python学习--not语句
  2. 031_spark架构原理
  3. 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子...
  4. 计算机弹奏两只老虎爱跳舞,原神风物之诗琴乐谱大全
  5. 是否使用wraps的區別
  6. SAP Spartacus支持的语言和货币单位的数据源
  7. AUTOSAR从入门到精通100讲(二)-SOME/IP及其应用
  8. python TypeError can only concatenate tuple not str to tuple
  9. dom4j创建、解析xml文件(增删改查)
  10. cmdb python 采集虚拟机_Python编程(三十四):CMDB后台管理、封装自定义JS组件、前端td标签定制显示内容及属性...
  11. centeros6.8 mysql_Center os6.5 mysql
  12. mybatis中批量插入的两种方式(高效插入)
  13. 浏览器是如何工作的系列:页面布局
  14. DHCPV6地址获取交互
  15. 水星网卡 linux驱动,水星网卡驱动下载_硬件驱动下载
  16. 正式版TBSA 6.0(用来分析多层及高层建筑结构的专用程序)
  17. 2022年股票估值法研究报告
  18. Sleep函数--使得程序暂停一段时间(单位毫秒)
  19. 鹏鹏seo第三课:长尾关键词的认识!
  20. log4j配置详解(非常详细转载)

热门文章

  1. 领域词汇知识库的类型、可用资源与构建技术漫谈
  2. android框架揭秘之android中c++写的服务笔记
  3. Protel 99 SE 的坑
  4. 【Auto.JS】入门宝典—Auto.JS开发使用笔记(随笔和使用心得)
  5. IIC加载以及存在的问题---lattice XO3
  6. 如何下载一个屏幕画笔软件pointofix
  7. 二、瞰景Smart3D软件安装及授权
  8. 王换招计算机组成与设计pdf,计算机组成原理答案(唐朔飞).pdf
  9. 2012年度IT博客大赛50强报道:张开涛
  10. Android计算器简单实现