1.实验内容

1、定义一个LL(1)文法,示例如(仅供参考)

G[E]:E →TE'     E'→+TE'|ε

T →FT'      T' → *FT'|ε

F → i|(E)

2、构造其预测分析表,如

3、LL(1)文法的预测分析表的模型示意图

4、运行结果,示例如下

2.实验设计分析

2.1 实验设计思路

根据实验指导书和书本上的相关知识,实现算法。

2.2 实验算法

(1)输入文法,用字典存储

(2)递归求first集合

(3)递归求follow集合

(4)求每个产生式的select集合,用字典存储

(5)对有相同左结果select集合求交集判断是否是LL(1)文法,没交集是否则是否

(6)是LL(1)文法开始构造预测分析表

(7)输入字符串,通过文法匹配是否接收整个字符串

2.3 实验流程

①预习实验,实验前阅读实验指导书和阅读书本。

②通过书本了解判断LL(1)文法和匹配字符串的原理。首先在纸上模拟文法的判断过程。

③上机实现模拟过程。

④调试程序,知道能得到预期的结果。

算法流程图:

2.4 实验的基本技术设计方案

①python的基础语法。

②简单算法即回溯。

③编译原理的理论知识。

④运用了python里的一些存储结构。

2.5 数据结构

G={}

Firstset=set([])

Followset=set([])

Selectset={}

nstr = list(input())

tstr = list(input())

2.6 实验输入输出

2.7 实验设计语言

Python

3.实验主要源代码及分析说明

资源链接: https://download.csdn.net/download/qq_35685675/10409106

基于预测分析表法的语法分析程序相关推荐

  1. 实验4 基于预测分析表法的语法分析程序_第三十届 脑功能磁共振数据处理分析培训班...

    北京赛博尔医药科技有限公司(www.cibrmed.com)将于2019年 7月6日 至 2019年7月11日(周六至下周四)举办第三十届脑功能磁共振数据处理分析培训班(课程内容详见课表安排).欢迎大 ...

  2. 2型文法:基于预测分析表的自顶向下语法分析

    文法的预处理 左递归定义 左递归的消除 预测分析表的构造 first集合 follow集合 计算的例子 假设有如下文法: 先计算first集合如下: 计算过程中,要牢牢抓住first集合的概念,即非终 ...

  3. 编译原理:LL(1)文法 语法分析器(预测分析表法)

    设计要求:对于任意输入的一个LL(1)文法,构造其预测分析表,并对指定输入串分析其是否为该文法的句子. 思路:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再根据FIRST和F ...

  4. 4.2.5 预测分析法与预测分析表的构造

    4.2.5 预测分析法与预测分析表的构造 预测分析法也称为 LL ( 1 )分析法.这种分析法是确定的自上而下分析的另一种方法,采用这种方法进行语法分析要求描述语言的文法是 LL ( 1 )文法. 一 ...

  5. LL(1)预测分析表的构造

    LL(1)分析法(即预测分析法)是自上而下文法中的一种,使用这种方法需要用到LL(1)预测分析表. 前提:掌握了FIRST集和FOLLOW集的构造. 步骤:对于每一个产生式A→α (1) 对每个终结符 ...

  6. 编译原理学习笔记(十七)~自上而下语法分析之构造预测分析表

    方法 我的理解: 首先分别计算出FIRST()和FOLLOW()集合 在对每一个非终结符的FIRST()依次分析,假设有E–>TL,其中FIRST(E)={+,-},那么在分析表中[E,+]和[ ...

  7. 编译原理c++基于LR分析表编写语法分析器

    具体要求 已知文法G[E]: E->E+T | T T->(E) | id | id[E] //其中E,T为非终结符,其余符号为终结符 (1)为该文法建立LR分析表.//通过构造项目集规范 ...

  8. 【编译原理笔记06】语法分析,移入-归约分析:自底向上的分析,LR(0)分析法,LR(0)分析表的构建(基于自动机)

    本次笔记内容: 4-8 自底向上的分析概述 4-9 LR分析法概述 4-10 LR0分析 4-11 LR0分析表构造 本节课幻灯片,见于我的 GitHub 仓库:第6讲 语法分析_3.pdf 本节课介 ...

  9. 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理

    本次笔记内容: 4-4 FIRST集和FOLLOW集 4-5 递归的预测分析法 4-6 非递归的预测分析法 4-7 预测分析法中的错误处理 本节课幻灯片,见于我的 GitHub 仓库:第5讲 语法分析 ...

  10. 语法分析:自上而下分析(递归下降分析法+预测分析法)

    语法分析:自上而下分析 目录 语法分析:自上而下分析 知识背景 递归下降分析法 内容一:根据文法生成子程序 内容二:调用文法开始符号所对应的子程序 预测分析法 内容一:构造预测分析表 内容二:预测分析 ...

最新文章

  1. oracle12c多个pdb,Oracle 12c 多租户专题|12cR2中PDB内存资源管理
  2. Go: GoRoutine是如何实现的?
  3. python数据类型基础与解压缩
  4. 面试题:谈谈你对TCP的认识
  5. web前端能拿多少钱?非科班的能转到web前端吗?
  6. Python编写区块链
  7. vue获取路径参数和请求参数
  8. 如何在Excel中提取身份证号码中的信息
  9. 如何使用ssh工具便于远程管理
  10. w3cschool实战答案
  11. Eclipse 汉化包
  12. Nginx 作为静态资源服务器,配置静态资源下载
  13. python二元一次方程组用鸡兔同笼的思路来写编程_二元一次方程组应用 —鸡兔同笼...
  14. html中文本框角度旋转,如何设置Word文本框旋转,任意角度调整文本框的方向?...
  15. centos7利用libreoffice将doc文件转换为pdf
  16. 8脚 tja1050t_高速光耦:CAN总线通信硬件原理图(采用TJA1050T CAN总线驱
  17. oracle dul 12.2.0.2.4 测试
  18. 初创企业如何做高效持续交付
  19. 装完 Ubuntu 安装常用的软件
  20. PacBio下机数据解读

热门文章

  1. java实现word模板导出
  2. union并不绝对比or的执行效率高
  3. 幻想破灭!为何“每个儿童一台笔记本电脑”项目屡屡陷入困境?
  4. 前端连接websocket失败_websocket连接失败后多久会触发error事件?
  5. egret php交互,JavaScript_Egret引擎开发指南之视觉编程,显示对象和显示列表 “显示 - phpStudy...
  6. 台式计算机用什么网卡,台式机没有网卡怎么办
  7. 关于IPad忘记密码恢复出厂设置的办法
  8. 用了很多群控与云控,微信还是慢慢死掉了
  9. matlab 对信号抽样,matlab信号抽样与恢复
  10. iscsi对oracle发起程序,系统运维|设置iSCSI的发起程序(客户端)(三)