编译原理
文章平均质量分 86
小梁说代码
北京大学博士在读 | 阿里云专家博主 | 爬虫领域分享 | 保研分享 | 用最优质的内容带来最舒适的阅读体验。欢迎一起交流!(线上线下均可)
展开
-
【编译原理】语法分析:从顶向下、最左推导
从顶向下、最左推导的语法分析文法:已知语言的文法,给定一个词素串,判定它是否符合文法,符合的话,得出语法分析树基于自顶向下和最左推导的语法分析存在三个问题:左递归左公因子选择哪个产生式进行推导左递归何为左递归问题?当我们对id1+id2+id3+id4进行推导,发现推导是从输入串的最右端开始逆向逐一来匹配:不切合实际针对左递归,我们要采用新的文法来消除它,如下因此id1+id2+id3+id4变成了消除了左递归存在好处和坏处好处:实现了对输入串从左至右逐一匹配代价:多引入了原创 2022-03-28 13:35:00 · 591 阅读 · 0 评论 -
【编译原理】语法分析:从顶向下、最左推导
从顶向下、最左推导的语法分析文法:已知语言的文法,给定一个词素串,判定它是否符合文法,符合的话,得出语法分析树基于自顶向下和最左推导的语法分析存在三个问题:左递归左公因子选择哪个产生式进行推导左递归何为左递归问题?当我们对id1+id2+id3+id4进行推导,发现推导是从输入串的最右端开始逆向逐一来匹配:不切合实际针对左递归,我们要采用新的文法来消除它,如下因此id1+id2+id3+id4变成了消除了左递归存在好处和坏处好处:实现了对输入串从左至右逐一匹配代价:多引入了原创 2022-03-24 17:25:10 · 1016 阅读 · 0 评论 -
【编译原理】语法分析:从顶向下、最左推导
从顶向下、最左推导的语法分析文法:已知语言的文法,给定一个词素串,判定它是否符合文法,符合的话,得出语法分析树基于自顶向下和最左推导的语法分析存在三个问题:左递归左公因子选择哪个产生式进行推导左递归何为左递归问题?当我们对id1+id2+id3+id4进行推导,发现推导是从输入串的最右端开始逆向逐一来匹配:不切合实际针对左递归,我们要采用新的文法来消除它,如下因此id1+id2+id3+id4变成了消除了左递归存在好处和坏处好处:实现了对输入串从左至右逐一匹配代价:多引入了原创 2022-03-23 14:20:19 · 952 阅读 · 0 评论 -
【编译原理】第三章语法分析
语法分析根据词法单元的构成规则,对源代码文件的字符流进行了词法分析,由词法单元的模式 → 正则表达式 → DFA → 词法语法分析就是根据一个个单词,让它们组成逻辑关系,语言规约是上下文无关语法要进行语法分析,输入的是词素流,类似于这样,这是之前词法分析得到的结果如何进行语法分析?先引入一个概念,文法文法算术表达式文法我们都知道算术表达式是什么,就是一个式子,式子和式子之间也能构成新的式子。算术运算表达式文法的构成因此有:① E →num② E →id③ E →F④ E →( E原创 2022-03-19 17:15:32 · 2916 阅读 · 0 评论 -
【编译原理】第二章,词法分析(2022.3.7更新)
文章目录词法分析正则表达式正则表达式的状态图有穷计算机正则表示式到NFANFA到DFADFA到状态图转换程序词法分析这一章,简而言之就是如何实现词法分析器,完成以下的流程如何实现?词法单元如下,我们要将字符流提取出词素以下面这个举例:我们要从下面的字符流中提取出 常量,变量,预保留字,如何扫描一次就能区分?return ( initial <= 10 ) ? 100 : ( position + initial ** 2 ) ;为了能够更容易的区分,变量的定义要以下划线或字符开始,原创 2022-03-07 18:05:15 · 506 阅读 · 0 评论 -
【编译原理】第二章,词法分析
词法分析这一章,简而言之就是如何实现词法分析器,完成以下的流程如何实现?词法单元如下,我们要将字符流提取出词素以下面这个举例:我们要从下面的字符流中提取出 常量,变量,预保留字,如何扫描一次就能区分?return ( initial <= 10 ) ? 100 : ( position + initial ** 2 ) ;为了能够更容易的区分,变量的定义要以下划线或字符开始,只能由字符,数字,下划线组成。这就是为什么我们在写程序的时候,变量要这么定义,目的是为了编译!下面是解析的举原创 2022-02-25 19:12:42 · 356 阅读 · 0 评论 -
【编译原理】第一章,什么是编译原理?
我们写代码是通过通过高级程序语言,因为它易于理解,但计算机能够执行处理的只能是机器代码。编译就是将高级程序语言转为机器代码的流程。我们要学的就是知道怎么转化它,并且能够完成编译过程的每一个步骤。原创 2022-02-21 17:50:08 · 953 阅读 · 1 评论