编译原理:理解文法和语文
1.理解符号串与集合运算。
L={A,B, … ,Z,a,b, … ,z}
D={0,1, … ,9}
说明下表示的含义:
LUD :全部字母和数字的集合
LD :由一个字母后跟一个数字组成的所有符号串的集合
L4 :由4个字母组成的所有符号串的集合
L* :由字母组成的所有符号串(包括∑)的集合
D+ :由一个或若干个数字组成的所有符号串的集合
L(LUD)* :以字母开头,后跟字母、数字组成的所有符号串的集合
2.文法G(Z):Z->aZb|ab定义的是什么样的语言?
解析:
产生式:Z->aZb, Z->ab >>可以推导出: Z=>ab, Z=>aZb=>a²b²
重复使用产生式:Z->aZb >>得 : Z=>aZb=>a²Zb²...=>aⁿ﹣¹Zbⁿ﹣¹=>aⁿbⁿ
所以语言为L(G[Z])={aⁿbⁿ|n≥1}
3.写出教材22页例2.2中标识符的文法四元组形式(VN,NT,P,S)。
解析:
有文法 G=(VN,VT,P,S),设L为标识符,D为字母,H为数字
VN={L,D,H},VT={a,b,c,...,x,y,z,0,1,2,...,9}
P= {<L>-><D>
<L>-><L><D>
<L>-><L><H>
{<D>-><a>}
{<D>-><b>}
┊
{<D>-><z>}
{<H>-><0>}
{<H>-><1>}
┊
{<H>-><9>}
S=<L>
4.写出下列表达式的最左推导、最右推导。
G(E):
E=> E + T | T
T=>T * F | F
F=>(E)| i
- i*i+i
- i+i*i
- i+(i+i)
注意观察最左和最右推导过程的不同。
解析:
最左推导:
从文法的起始符号开始:
E -> E + T
-> T + T
-> F + T
-> i + T
-> i + T * F
-> i + F * F
-> i + i * F
-> i + i * i
最右推导:
从文法的开始符号开始:
E -> E + T
-> E + T * F
-> E + T * i
-> E + F * i
-> E + i * i
-> T + i * i
-> F + i * i
-> i + i * i
转载于:https://www.cnblogs.com/zhif97/p/11505377.html
编译原理:理解文法和语文相关推荐
- java实验文法报告_西安邮电大学编译原理LL文法分析器实验(java).doc
西安邮电大学编译原理LL文法分析器实验(java) <编译原理>实验报告 题目: 语法分析器的制作 学生姓名: 班 级: 软件1202 学 号: 指导教师: 成 绩: 西安邮电大学计算机学 ...
- 编译原理 LL1文法的判断和句子识别
编译原理 LL1文法的判断和句子识别 LL1文法概述 点击查看百度百科 对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的 产生式A->α|β 满足下列条件: ...
- 编译原理实验 -- 文法分析
编译原理实验 – 文法分析 终结符 和 非终结符 终结符 通常使用小写字母表示,例如 abcdef 非终结符 通常使用大写字母表示,例如 ABCDEF 产生式 通俗来说,就是由终结符和非终结符组合成的 ...
- 编译原理:文法及其二义性(判定及消除)
(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 学编译原理时,会学到文法,老师在介绍完文法的相关定义后又 ...
- 编译原理——证明文法的二义性(1)
目录 推导和语法树 推导 语法树 文法二义性 在证明文法的二义性之前,我们需要熟悉几个基本的概念. 推导和语法树 推导 这里的推导,简单的来说就是指根据给出的句型(句子),对文法进行推理变化最终得到句 ...
- 编译原理(文法、符号表)
文法 在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法(文法是用于描述语言的语法结构的形式规则). 1个文法 G 是一个四元组 G = (VN , VT , S, P) ...
- 编译原理-正则文法与正则表达式的相互转化
正则文法与正则表达式的相互转化 前言 一.正则文法 1.定义 2.例子 二.正则表达式 1.定义 2.例子 三.转换规则 1.正则文法转换为正则表达式 2.正则表达式转换为正则文法 四.转换例子 1. ...
- 编译原理:文法和语言总结与梳理
1. 梳理第二章的内容,写一篇理解与总结. 一. 对程序设计语言的描述从语法.语义和语用三个因素考虑: 语法:对语言结构的定义: 语义:语言的含义: 语用:从使用的角度描述语言. 形式语言理论是编译的 ...
- 第二次作业:理解文法和语文
1.理解符号串与集合运算. L={A,B, - ,Z,a,b, - ,z} D={0,1, - ,9} 说明下表示的含义: LUD LD L4 L* D+ L(LUD)* 解: LUD:所有大小写字母 ...
最新文章
- STL的remove函数和list的remove成员函数
- php pdo操作数据库
- BZOJ-1024 生日快乐 DFS+一丝sb的数学思考
- java hanoi塔问题_java 解决汉诺塔问题
- PHP笔记-AES加解密(PHP7)
- 服务器几种邮件报警设置之ESXI账号登陆报警[一]
- 宝塔控制面板配置Nginx 安全证书
- 进入顶尖行业的人,都是把职业当乐趣的
- docker添加加速器
- linux内核无锁cas,无锁编程以及CAS
- 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些名字都该怎么翻译?...
- Testin徐琨:颠覆测试行业的四个必杀技
- 海森堡bug_海森堡因超速而停下来警察说,你知道你要走多快,海森堡说
- 复选框的全选、全不选、和获取选中的值;
- Ubuntu系统配置花生壳内网穿透
- TI芯片GPIO的内部上拉
- 【读书笔记】商业自传-耐克科技,鞋狗:耐克创始人菲尔.奈特亲笔自传_2020.06.01
- HDU 2075 JAVA
- JS / JQ 学习记录
- Codechef June Challenge 2020 简要题解
热门文章
- 记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
- 基于L0边缘保持滤波的图像融合 matlab代码
- python文本编辑器_python最好的ide和文本编辑器
- 科林明伦杯 哈尔滨理工大学第十届程序设计竞赛 (补)
- java spu sku_SPU与SKU区别小结
- PostgreSQL表膨胀终结者
- 超低功耗离线智能语音识别芯片AT6811
- JAMon Introduction
- 踩坑记-- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xa6 in position 17: illegal multibyte seque
- python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书