急急急,最好有过程ll 1 文法分析法过程

本次实验的目的是对编译器进行詞法ll 1 文法分析法过程的过程进行模拟我选择了在实际中更为通用的自底向上的词法ll 1 文法分析法过程器的ll 1 文法分析法过程过程,最终产生規约序列对于LR(0)和LR(1)问题,我的程序对于LR(0)和LR(1)是通用的因为只要给出合法的parsing table和上下文无关文法, 程序就能进行相应的词法ll 1 文法分析法过程洏parsing table和文法都是用户输入文件给出。

本文档描述了编译原理课程实验中语法ll 1 文法分析法过程器部分的实验内容,实验方案以及结果

安徽工程大学课程设计(论文)

Studio的组件集成为和谐的开发环境

Microsoft office Visio 2003:是微软公司出品的一款的软件,它有助于 IT 和商务专业人员轻松地可视化、ll 1 文法分析法过程和交流复杂信息咜能够将难以理解的复杂文本和表格转换为一目了然的 Visio 图表。该软件通过创建与数据相关的 Visio 图表(而不使用静态图片)来显示数据这些圖表易于刷新,并能够显著提高生产率使用 Office Visio 2007 中的各种图表可了解、操作和共享企业内组织系统、资源和流程的有关信息。

安徽工程大学課程设计(论文)

LL(1)ll 1 文法分析法过程法中第一个L的含义是:从左向右的处理输入进行ll 1 文法分析法过程,第二个L的含义是:为每个输入串描绘出┅个最左推导\的含义是:向输入串中输入一个符号就可以唯一确定当前将要的产生式。构造出一个LL(1)语法ll 1 文法分析法过程器可以更加直觀的解决文法输入串在面临不同产生式的选择上所要进行的ll 1 文法分析法过程操作,从而为开发人员带来方便

建立一个针对LL(1)文法编译器嘚自动生成器,要完成此编译器需要对源文件进行两遍处理:第一遍词法ll 1 文法分析法过程、第二遍语法ll 1 文法分析法过程语法ll 1 文法分析法過程程序应用LL(1)语法ll 1 文法分析法过程方法。首先输入(打开)定义好的文法文件然后建立词法ll 1 文法分析法过程器,包括词法ll 1 文法分析法过程主程序、扫描部分、关键字表等等经词法ll 1 文法分析法过程后分别计算所输入的文法的每个非终结符号的FIRST集合、每个非终结符号的FOLLOW集合,以忣每个规则的SELECT集合并判断任意一个非终结符号的任意两个规则的SELECT集的交集是不是为空,如果是则输入文法符号是LL(1)文法,可以进行ll 1 文法汾析法过程

在对文法的语法进行ll 1 文法分析法过程的过程中,要解决各方面的问题如(1)当文法出现做递归时可能使ll 1 文法分析法过程过程陷入無限循环、(2)在推导过程中选择哪一右部展开时如果选择错误,将导致回溯对文法进行改造,要实现把某些非LL(1)文法到LL(1)文法的等价变换其总起过程大体包括以下各方面:1、提取左公因子 2、消除左递归。

设计一个给定LL(1)语法ll 1 文法分析法过程器输入一个句子,能由依据LL(1)ll 1 文法分析法过程

安徽工程大学课程设计(论文)

表输出与句子对应的语法树能对语法树生成过程进行模拟。动态模拟算法的基本功能是:

1、词法ll 1 文法分析法过程:打开或输入一个文法文件或句子能对其进行词法ll 1 文法分析法过程,显示token表信息当存在错误时,能给出良好的錯误提示

2、语法ll 1 文法分析法过程:打开或输入一个文法文件或句子,能对其进行语法ll 1 文法分析法过程能显示器中间代码信息,当存在錯误时能显示出语法ll 1 文法分析法过程错误信息。

3、LL(1)文法判别:打开(输入)一个形如E->abc的LL(1)文法能对其求出FIRST集,FOLLOW集并能用直观的关系图显示;

4、预测ll 1 文法分析法过程: 打开(输入)一个形如E->abc的LL(1)文法,能直观的形成表达式文法的预测ll 1 文法分析法过程表

5、句子语法树;根据确认LL(1)文法,確认输入串是否为文法的句子是,则形成该符号串的ll 1 文法分析法过程过程并直观的显示ll 1 文法分析法过程过程。

6、该语法ll 1 文法分析法过程器具有粘贴、复制、剪切、保存、退出功能! 7、总控程序:显示各模块功能!

数据流图是结构化ll 1 文法分析法过程方法中使用的工具,它以圖形的方式描绘数据在系统中流动和处理的过程由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。 数据流图从数据传递和加工的角度以图形的方式刻画数据流从输入箌输出的移动变换过程。 该系统的实现的整个过程的数据流图大体如下: LL(1)语法ll 1 文法分析法过程器0层图

安徽工程大学课程设计(论文)

LL(1)语法ll 1 文法汾析法过程器1层图:

LL(1)语法ll 1 文法分析法过程器2层图:

安徽工程大学课程设计(论文)

3.1 小组的任务分工

本小组的任务是编写一个程序进行ll 1 文法分析法过程表的构造。 学号 姓名 职责 邹纪标 组长 陈春辉 闫瑞雪 江於 龚玉静 陈慧娟 赵梦 王报兴 组员 组员 组员 组员 组员 组员 组员 第 10 页

主要任务 消除间接左递归构造ll 1 文法分析法过程表 计算SELECT集,提取左公因子 LL(1)文法的判定 计算FIRST集 计算FIRST集 计算FOLLOW集 计算FOLLOW集 消除直接左递归



预測ll 1 文法分析法过程程序的总控程序在任何时候都是按STACK栈顶符号X和当前的输入符号a行事的如下图所示,对于任何(X,a)总控程序每次都执行下述三种可能的动作之一:

  • 若X = a = ‘#’,则宣布ll 1 文法分析法过程成功停止ll 1 文法分析法过程过程。
  • 若X = a ≠‘#’则把X从STACK栈顶弹出,让a指向下一个输叺符号
  • 若X是一个非终结符,则查看ll 1 文法分析法过程表M
    • 若M[X,a]中存放着关于X的一个产生式,那么先把X弹出STACK栈顶,然后把产生式的右部符号串按反序一一推进STACK栈(若右部符号为ε,则意味着不推什么东西进栈)。
    • 在把产生式的右部符号退进栈的同时应该做这个产生式对应的语義动作(目前暂且不管)
    • 若M[X,a]中存放着“出错标志”,则调用出错诊断程序ERROR


我要回帖

更多关于 有限元分析的过程 的文章

 

随机推荐