编译原理
文章平均质量分 81
北岛寒沫
一生温暖纯良,不舍爱与自由
展开
-
编译原理:不确定的自顶向下分析思想
不确定的自顶向下分析概述:不确定的自顶向下分析发生回溯的三种情况:原创 2023-06-17 13:43:28 · 205 阅读 · 0 评论 -
编译原理:LL(1)文法判别(最简单最详细的介绍)
对于这两个产生式,D的右边均没有字符串,因此D的FOLLOW集合即B的FOLLOW集合和C的FOLLOW集合的并集。所以,求解一个产生式的SELECT集问题就转换为求一个字符串的FISRT集合和一个非终结符的FOLLOW集合的过程,因此只需要如何求解FIRST集合和FOLLOW集合即可。这里,由于S右边没有字符串,因此将该产生式左部D的FOLLOW集中的所有元素放入非终结符S的FOLLOW集合中。所以,D的FOLLOW集合就是S的FOLLOW集合,即FOLLOW(S)=FOLLOW(S)∪{#},求解得。原创 2023-06-16 21:23:57 · 9909 阅读 · 6 评论 -
编译原理笔记(二)文法和语言
产生式(规则)的概念产生式的表示:形如α→β或α::=β的有序对。这里使用的符号读作“定义为”。左部和右部:α称为产生式的左部,β称为产生式的右部。文法的概念:文法G定义为一个四元组。元组内容解释:Vn是非终结符集合,Vt是终结符集合,P是产生式的集合(Vn、Vt和P都要求非空)。S是识别符或开始符,是一个表示推导开始的非终结符,至少需要在一条产生式中作为产生式的左部出现。对产生式的要求:产生式的左部和右部都是非终结符集合和终结符集合的并集的闭包中的元素,并且要求左部至少包含一个非终结符。原创 2023-05-05 17:12:04 · 3750 阅读 · 0 评论 -
编译原理笔记(一)引论
编译程序的地位编译程序是现代计算机系统的基本组成部分之一;多数计算机都配有不止一种高级语言编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。编译程序的功能:从功能上看,一个编译程序就是一个语言翻译程序,把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序。但是其中的源语言是高级语言,目标语言是低级语言。编译程序的重要性:编译程序使得多数计算机用户不必考虑与机器有关的繁琐细节,使得程序员独立于机器。程序设计语言处理程序的典型流程:编译程序是程序设计语言处理程序的一部分。原创 2023-05-05 09:34:02 · 3470 阅读 · 0 评论 -
编译原理笔记(2)程序设计语言及其文法
文法的定义:可以把文法定义为一个四元组:G=(VT,VN,P,S)。VT:终结符集合。终结符是文法所定义的语言的基本符号,有时也被称为token。如英语中的各种单词就构成了终结符集合。VN:非终结符集合。非终结符是用于表示语法成分的符号,有时也被称为“语法变量”。比如对文章进行的标注“句子”“名词短语”等。备注:终结符集合和非终结符集合不相交,两者的并集称为文法符号集。P:产生式集合。产生式描述了将终结符和非终结符组成串的方法。S:开始符号。开始符号表示该文法中最大的语法成分。产生式的相关概念。原创 2023-02-22 20:23:47 · 1223 阅读 · 0 评论 -
编译原理笔记(1)绪论
编译的定义:将高级语言翻译成汇编语言或机器语言的过程。前者称为源语言,后者称为目标语言。目标机器代码的生成过程预处理器的功能把存储在不同文件中的源程序聚合在一起。把被称为宏的缩写语句转换为原始语句。可重定位的定义:在内存中存放的起始地址不是固定的,代码中的绝对地址是由起始位置和相对地址相加获得的。加载器的作用修改可重定位地址;将修改后的指令和数据放到内存中的合适位置处。链接的定义:将可重定位的目标文件与其他可重定位的目标程序以及库文件连接。链接器的作用。原创 2023-02-22 16:35:12 · 732 阅读 · 0 评论