![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 59
向上Claire
这个作者很懒,什么都没留下…
展开
-
翻译
第一单元的翻译Computer will become more advanced and they will also become easier to use.计算机将变得更加先进,也将变得更容易使用。Improved speech recognition will make the operation of a computer easier.语音识别的改进将使计算机更加容易操作。Virtual reality ,the technology of interacting with a co原创 2021-01-04 17:32:45 · 345 阅读 · 0 评论 -
习题三
习题三程序语言的语义:上下文有关文法(P35)1、程序语言的语义需要用(上下文有关文法)来描述形式语言分类0型文法与0型语言(对应图灵机)1型文法和1型语言(对应线性界限自动机,自然语言)2型文法与2型语言(对应下推自动机,程序设计语言)3型文法与3型语言(对应有限自动机,正规语言)区别:1~3型文法都属于0型文法,2、3型文法不一定属于1型文法,3型文法属于2型文法题目:2型文法对应(下推自动机)1型语言∈0型语言有限状态自动机能够识别正规文法句柄最左简单子树的末端节点组成的符原创 2021-01-04 16:11:15 · 1367 阅读 · 0 评论 -
语义分析和中间代码生成
//1.程序语言的语义需要(上下文有关文法)用来描述语义分析,审查每个语法成分的静态语义,如果静态语义正确,则生成与该语言成分等效的中间代码,或者直接生成目标代码。动态语义检查需要生成相应的目标代码,它是在运行时进行的静态语义检查是在编译时完成的类检查控制流检查一致性检查属性文法作为描述程序语言语义的工具并采用语法制导翻译的方法完成对语法成分的翻译工作。语法制导翻译分为自底向上语法制导翻译和自顶向下语法制导翻译。自底向上是归约,自顶向下是匹配扩大的分析栈可以存放三类信息分析状态、文法原创 2021-01-04 16:10:58 · 1231 阅读 · 2 评论 -
编译原理考题里面的知识点
1、基本块的概念(P152)局部优化是指对代码的每一个线性部分所进行的优化,使得在这个线性部分只存在一个入口和一个出口,而这个线性部分我们称之为基本块所谓基本块,是指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是该序列的第一个语句,出口就是该序列的最后一个语句。对一个基本块来说,执行时只能从其入口进入,从其出口退出。例题:2.程序的基本块是指( D)。 A. 一个子程序 B. 一个仅有一个入口和一个出口的语句C. 一个没有嵌套的程序段 D. 一组顺序执行的程序段,仅有一个原创 2021-01-03 14:45:10 · 1776 阅读 · 0 评论 -
国外精选视频:编译原理入门3
语法分析该阶段的目的是为了发现已标记化(已分词)程序中的任何语法错误,语法错误是指那些破坏变成语言规则的内容分析程序的语法就像检查用英语写的简单句子是否具有语义这句话是有效的,因为它符合某种规定在我们对一个已标记(已分词)的程序应用编程语言的语法规则之前,这个特定语言的语法必须已经通过某种方式被定义完毕他需要以一种大家认可的方式写下来在程序的定义语言中,通常是使用一种称为上下文无关语言系统来完成,BNF(巴科斯范式),被广泛的用于对上下文无关语法的描述这里使用分隔符来分割这些可选择的结构形原创 2021-01-03 11:54:22 · 134 阅读 · 0 评论 -
国外精选视频:编译原理入门4
中间代码TAC三位址码是很多编译器都在用的中间表达形式因为三位址码不特定于某台机器,中间代码的生成可以被认为是前端任务抛开语言,我们来谈3地址码对于三位址码,每一条赋值指令的右侧只能有一个操作符,总共最多有三个地址(等号右侧只能有一个操作符,比如t1=y+z,这里t1,y,z都是地址,它们指向了地址对应的内存数据)三位址码指令依赖于符号标签来改变控制流程三位址码简化了嵌套的控制流图反向修补:编译器只需要通过遍历一次源码,就能生成三位指令序列在最后机器码生成这一步之前,编译器可原创 2021-01-03 11:54:01 · 135 阅读 · 0 评论 -
编译原理第一章作业
编译原理第一章作业1.编译程序试讲高级语言程序翻译成等价的机器语言程序的程序2.将编译过程分成若干遍是为了:使编译程序的结构更加清晰3、构建编译程序应掌握:目标语言,源程序,编译方法4、编译程序绝大多数石建花在——上:表格管理5、编译程序是对:高级语言的翻译问答题:计算机执行用高级语言编写的程序有哪些途径,他们之间的主要区别是什么?计算机执行用高级语言编写的程序主要有两种途径:解释和编译在解释方式下,翻译程序事先并不采用将高级语言程序全部翻译成机器代码程序,然后执行这个机器代码程序的方法,原创 2021-01-03 11:53:50 · 642 阅读 · 0 评论 -
国外精选视频课:编译原理入门2
源代码的词法单元化和符号表的作用单词的词法与它在一句话的上下文或者语言本身的释义紧密联系,并且,词库可以使字典的另一种叫法在编译的这方面,词法分析目的是为了确定在源码中单个词的含义词法分析器输入的是我们程序中源代码,对于词法分析器而言,所输入的仅仅是一长串的文本内容而已词法分析器输出的是一串词法单元流所以,对于编译过程的词法分析阶段,有时候也称之为标记化阶段每次从左到右扫描一个字符,词法分析器的工作就是对所输入的字符串识别并分离出各个元素,也就是将字符串分解为子字符串,每个子串也即是一个程序单字原创 2021-01-01 16:33:28 · 153 阅读 · 0 评论 -
国外精选视频课:编译原理入门1
编译原理的概述编译指的是将程序员用某种高级语言的源代码转换成目标代码,即计算机能够人认识的可执行机器代码编译是由一个叫编译器的程序完成的因为程序需要被编译运行在特定类型的处理器上,所以,具体如何实现编译器还取决于目标机器的体系结构What makes a good compiler?编译器设计之初就是为了必须让高级语言所写的程序正确运行works correctly必须检测到所有的静态错误,也就是说他应该识别所有的不符合变成语言规则的错误,不要指望编译器来捕获动态错误,这些错误只能在运行时原创 2021-01-01 15:53:44 · 1760 阅读 · 5 评论