12.4自下而上语法分析

1.已知文法:

E→E+T | T

T→T*F | F

F→(E) | i

以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程。


符号栈


输入串


动作


#


i+i*i#


移进


#i


+i*i#


归约


#F


+i*i#


归约


#T


+i*i#


归约


#E


+i*i#


移进


#E+


i*i#


移进


#E+i


*i#


归约


#E+F


*i#


归约


#E+T


*i#


移进


#E+T*


i#


移进


#E+T*i


#


归约


#E+T*F


#


归约


#E+T


#


归约


#E


#


接受

2.P121练习1的(1)(2)。

1)计算FIRSTVT和 LASTVT。

2)找三种关系对。

3)构造算符优先关系表。

(1

FIRSTVT(S) = {a , ^ , ( }

FIRSTVT(T) = {,, a , ^ , ( }

LASTVT(S) = {a , ^ , ) }

LASTVT(T) = {,, a , ^ , ) }

(2


=




(T)

#S#


#S

(T

,S


S#

T)

T,

 

(3


 


a


^


,


(


)


#


a


 


 


>


 




^


 


 


>


 




,


<


<


>


<


>

 

(




<



=



)


 


 


>


 



 


#



 


 


=

 

 

原文地址:https://www.cnblogs.com/Azan1999/p/11985755.html

时间: 2024-08-30 04:16:54

12.4自下而上语法分析的相关文章

12 23 递归语法分析

#include<stdio.h>char curr;char LL1[1000];int N=-1; void Top();void Top1();void Top2();void top();void top1();void error();void scaner(); void main(){    char ch;    int i=0;    printf("请输入需要分析的curr语法:(以#结束)\n");    do{        scanf("

自下而上语法分析

1.已知文法: E→E+T | T T→T*F | F F→(E) | i 以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程. 答: # i+i*i# 移进 #i +i*i# 归约 #F +i*i# 归约 #T +i*i# 归约 #E +i*i# 移进 #E+ i*i# 移进 #E+i *i# 移进 #E+F *i# 归约 #E+T *i# 归约 #E+T* i# 移进 #E+T*i # 归约 #E+T*F # 归约 #E+T # 归约 #E #   2.P121

13自下而上语法分析

1.已知文法: E→E+T | T T→T*F | F F→(E) | i 以句柄作为可归约串,写出符号串‘i+i*i#’的"移进-归约"分析过程. 符号栈 输入串 动作 # i+i*i# 移进 #i +i*i# 归约 #F +i*i# 归约 #T +i*i# 归约 #E +i*i# 移进 #E+ i*i# 移进 #E+i *i# 移进 #E+F *i# 归约 #E+T *i# 归约 #E+T* i# 移进 #E+T*i # 归约 #E+T*F # 归约 #E+T # 归约 #E #

ios开发——实用技术总结Swift篇&amp;swift常用开发技术总结

swift常用开发技术总结 懒加载:属性,数组(字典),控件... 数组(懒加载): 1 lazy var shops:Array<Dictionary<String, String>> = { 2 3 return [ 4 5 [ 6 7 "icon" : "danjianbao", 8 9 "name" : "单肩包" 10 11 ], 12 13 [ 14 15 "icon"

汇编器构造

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 汇编器构造   一.             汇编器简介 前面介绍了编译器构造和静态链接器构造的具体方法,而且我们实现了一个将高级语言转化为汇编语言的编译器,同时又实现了一个将多个目标文件链接为一个可执行文件的链接器.现在需要一个连接这两个模块的功能模块——汇编器,它

编译原理知识汇总

转自:https://www.jianshu.com/p/eb63d31ad638 编译原理 第一章 引言 1.从面向机器的语言到面向人类的语言 汇编指令:用符号表示的指令被称为汇编指令 汇编语言:汇编指令的集合称为汇编语言 2.语言之间的翻译 转换(也被称为预处理):高级语言之间的翻译,如FORTRAN到ADA的转换 编译:高级语言可以直接翻译成机器语言,也可以翻译成汇编语言,这两个翻译过程称为编译 汇编:从汇编语言到机器语言的翻译被称为汇编 交叉汇编:将一个汇编语言程序汇编成为可在另一机器上

vc编程中的20点小笔记

机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板不能只通过阅读来掌握机器学习的技能,需要进行大量的练习.本文将介绍一个通用的机器学习的项目模板,创建这个模板总共有六个步骤.通过本文将学到: 端到端地预测(分类与回归)模型的项目结构. 如何将前面学到的内容引入到项目中. 如何通过这个项目模板来得到一个高准确度的模板. 副诼匚盼胁臼匾膊讶赖期放判鼻懒合谖

编译原理随笔4(自下而上的语法分析-递归法)

0.基础知识 推导 自上而下的语法分析过程 预测分析程序,递归下降分析法(最左推导) 注:要求文法是LL(1)文法 规约 自下而上的语法分析过程 简单优先分析法,算符优先分析法,LR分析法 1.自下而上的语法分析方法 过程思想: 最左规约的过程 由输入串开始,朝着文法的开始符号进行规约 规约成非终结符 注:输入串是指词法分析器送过来的二元式序列 下推自动机PDA 语法分析程序执行动作 移入:读入一个单词,入栈,读头后移 规约:检查栈顶 若干个符号能否规约,若能,则以产生式左部替代该符号,同时输出

12 实验二 递归下降语法分析 11/26

一.实验目的: 利用C语言编制递归下降分析程序,并对简单语言进行语法分析. 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析. 二.实验原理 每个非终结符都对应一个子程序. 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端: 每遇到一个终结符,则判断当前读入的单词是否与该终结符相匹配,若匹配,再读取下一个单词继续分析:不匹配,则进行出错处理 每遇到一个非终结符,则调用相应的子程序 三.实验要求说明 输入单词串,以“#