第五章 作业(123)【编译原理】
第五章 作业【编译原理】
- 前言
- 推荐
- 第五章 作业
- 1
- 2
- 3
- 随堂练习
- 课前热身04-17
- 随堂练习04-17
- 课前热身04-24
- 最后
前言
2023-5-3 22:12:46
以下内容源自《【编译原理】》
仅供学习交流使用
推荐
第四章 作业(123)【编译原理】
第五章 作业
1
1.令文法G为:
E→E+T|T
T→T*F|F
F→(E)|i
证明E+T*F是它的一个句型,指出这个句型的所有短语,直接短语和句柄。
E+T*F是文法G的一个句型
语法树如下:

短语:E+T*F,T*F
直接短语:T*F
句柄:T*F
2
2.考虑下面的表格结构文法G2:
S->a|∧|(T)
T→T,S|S
(1)给出(a,(a,a))和(((a,a),∧,(a)),a)的最左和最右推导。
(2)指出(((a,a),∧,(a)),a)的规范归约及每一步的句柄。根据这个规范归约,给出“移进-归约”的过程,并给出它的语法树自下而上的构造过程。
(1) (a,(a,a))
最左推导:S=>(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S))=>(a,(S,S))=>(a,(a,S))=>(a,(a,a))
最右推导:S=>(T)=>(T,S)=>(T,(T))=>(T,(T,S))=>(T,(T,a))=>(T,(S,a))=>(T,(a,a))=>(S,(a,a))=>(a,(a,a))
(2)(((a,a),∧,(a)),a)
最左推导:S=>(T)=>(T,S)=>(S,S)=>((T),S)=>((T,S),S)=>((T,S,S),S)
=>((S,S,S),S)=>(((T),S,S),S)=>(((T,S),S,S),S)=>(((S,S),S,S),S)=>(((a,S),S,S),S)
=>(((a,a),S,S),S)=>(((a,a),∧,S),S)=>(((a,a),∧,(T)),S)=>(((a,a),∧,(S)),S)
=>(((a,a),∧,(a)),S)=>(((a,a),∧,(a)),a)
最右推导:S=>(T)=>(T,S)=>(T,a)=>(S,a)=>((T),a)=>((T,S),a)=>((T,(T)),a)=>((T,(S)),a)
=>((T,(a)),a)=>((T,S,(a)),a)=>((T,∧,(a)),a)=>((S,∧,(a)),a)=>(((T),∧,(a)),a)
=>(((T,S),∧,(a)),a)=>(((T,a),∧,(a)),a)=>(((S,a),∧,(a)),a)=>(((a,a),∧,(a)),a)
(2)
(((a,a),∧,(a)),a)的规范归约:最右推导倒着来
具体可见符号栈+输入串的变化:共17步归约:6,7,10,11,13,14,17,18,22,23,25,26,28,29,32,33,35(((a,a),∧,(a)),a):“移进-归约”的过程
步骤 符号栈 输入串 操作 说明
1 # (((a,a),∧,(a)),a)# 预备
2 #( ((a,a),∧,(a)),a)# 进
3 #(( (a,a),∧,(a)),a)# 进
4 #((( a,a),∧,(a)),a)# 进
5 #(((a ,a),∧,(a)),a)# 进
6 #(((S ,a),∧,(a)),a)# 归 S->a
7 #(((T ,a),∧,(a)),a)# 归 T->S
8 #(((T, a),∧,(a)),a)# 进
9 #(((T,a ),∧,(a)),a)# 进
10 #(((T,S ),∧,(a)),a)# 归 S->a
11 #(((T ),∧,(a)),a)# 归 T->T,S
12 #(((T) ,∧,(a)),a)# 进
13 #((S ,∧,(a)),a)# 归 S->(T)
14 #((T ,∧,(a)),a)# 归 T->S
15 #((T, ∧,(a)),a)# 进
16 #((T,∧ ,(a)),a)# 进
17 #((T,S ,(a)),a)# 归 S->∧
18 #((T ,(a)),a)# 归 T->T,S
19 #((T, (a)),a)# 进
20 #((T,( a)),a)# 进
21 #((T,(a )),a)# 进
22 #((T,(S )),a)# 归 S->a
23 #((T,(T )),a)# 归 T->S
24 #((T,(T) ),a)# 进
25 #((T,S ),a)# 归 S->(T)
26 #((T ),a)# 归 T->T,S
27 #((T) ,a)# 进
28 #(S ,a)# 归 S->(T)
29 #(T ,a)# 归 T->S
30 #(T, a)# 进
31 #(T,a )# 进
32 #(T,S )# 归 S->a
33 #(T )# 归 T->T,S
34 #(T) # 进
35 #S # 归 S->(T)
36 #S # 接受
(((a,a),∧,(a)),a)语法树如下

3
3.(1)计算练习2文法G2的FIRSTVT 和 LASTVT。
(2)计算G2的优先关系。G2是一个算符优先文法吗?
(3)计算G2的优先函数。
(4)给出输入串(a,(a,a))的算符优先分析过程。
(1)文法G2的FIRSTVT 和 LASTVT。
FIRSTVT(S)={a ∧ (} LASTVT(S)={a ∧ )}
FIRSTVT(T)={a ∧ ( ,} LASTVT(T)={a ∧ ) ,}
2)G2的优先关系矩阵:a ^ ( ) , #
a > > >
^ > > >
( < < < = <
) > > >
, < < < > >
# < < < =
G2是一个算符优先文法
(4)输入串(a,(a,a))的算符优先分析过程:
步骤 符号栈 输入串 操作 说明
(1) # (a,(a,a))# 预备
(2) #( a,(a,a))# 移进 [#][(]=<
(3) #(a ,(a,a))# 移进 [(][a]=<
(4) #(T ,(a,a))# 归约 [a][,]=>
(5) #(T, (a,a))# 移进 [(][,]=<
(6) #(T,( a,a))# 移进 [,][(]=<
(7) #(T,( a,a))# 移进 [(][a]=<
(8) #(T,(a ,a))# 移进 [(][a]=<
(9) #(T,(T ,a))# 归约 [a][,]=>
(10) #(T,(T, a))# 移进 [(][,]=<
(11) #(T,(T,a ))# 移进 [,][a]=<
(12) #(T,(T,S ))# 归约 [a][)]=>
(13) #(T,(T) )# 移进 [(][)]==
(14) #(T,S )# 归约 [)][)]=>
(15) #(T )# 归约 [,][)]=>
(16) #(T) # 移进 [(][)]==
(17) #S # 归约 [)][#]=>
(18) #S# 接受
2023-5-7 00:00:54
随堂练习
2023-5-3 22:12:50
课前热身04-17
1(多选题) 语法分析按照分析的方向分为:
A. 自上而下的语法分析
B. 自下而上的语法分析
C. 自左而右的语法分析
D. 自右而左的语法分析
正确答案: AB 我的答案: AB
2(简答题) 有文法G:
E—>T|E+T
T—>F|T*F
F—>(E)|i
请说明句型E+T*F+i的短语,直接短语和句柄。

短语:E+T*F+i,E+T*F,T*F,i
直接短语:T*F,i
句柄:T*F
随堂练习04-17
1(简答题) 请构造该文法中所有非终结符的LASTVT集
E->E+T|T
T->T*F|F
F->(E)|i
+ * ( ) i
E 1 1 1 1
T 1 1 1
F 1 1
课前热身04-24
1(单选题) 若a、b均为终结符,且a的优先级低于b,则说明:
A. 推导的符号串中,a位于b之前,a先于b被规约
B. 推导的符号串中,a位于b之前,b先于a被规约
C. 推导的符号串中,a位于b之后,a先于b被规约
D. 推导的符号串中,a位于b之后,b先于a被规约,也有可能同时被规约
正确答案: B 我的答案: B
2(判断题) 在算符优先分析中,待分析串的界符#,其优先级一定低于文法所有终结符号。
对
错
正确答案: 错 我的答案: 错
3必答 (简答题) 已知文法G[S]:
S → a|^|(T)
T → T,S|S
非终结符的FIRSTVT、LASTVT集如下所示:
FIRSTVT(S)={a ^ (} LASTVT(S)={a ^ )}
FIRSTVT(T)={a ^ ( ,} LASTVT(T)={a ^ ) ,}
请构造文法G的优先关系矩阵。
a ^ ( ) , #
a > > >
^ > > >
( < < < = <
) > > >
, < < < > >
# < < < =
2023-5-3 22:22:20
最后
2023-5-7 00:01:02
你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。
祝大家逢考必过
点赞收藏关注哦
相关文章:
第五章 作业(123)【编译原理】
第五章 作业【编译原理】 前言推荐第五章 作业123 随堂练习课前热身04-17随堂练习04-17课前热身04-24 最后 前言 2023-5-3 22:12:46 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第四章 作业(123)【编译原理】 第五章 作业 1 1.令文法G为…...
基于Vue的个性化网络学习笔记系统
1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。 2.系统用户管理:不管是…...
如何搭建一个HTTP实验环境
这一讲是“破冰篇”的最后一讲,我会先简单地回顾一下之前的内容,然后在 Windows 系统上实际操作,用几个应用软件搭建出一个“最小化”的 HTTP 实验环境,方便后续的“基础篇”“进阶篇”“安全篇”的学习。 “破冰篇”回顾 HTTP …...
Electron 环境搭建
https://start.spring.io/ 在线数据分析网站 https://tj.aldwx.com/ https://www.spsspro.com/ win10如何分屏 拖到边缘 Electron 环境搭建 https://www.electronjs.org/zh/docs/latest/tutorial/%E6%89%93%E5%8C%85%E6%95%99%E7%A8%8B electron 隐藏菜单 electron 标题栏 设…...
农机电招平台~java
摘要 随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变…...
springboot+vue体质测试数据分析及可视化设计(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体质测试数据分析及可视化设计。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者&a…...
thinkphp+vue+html高校固定资产管理系统维修 租借4h80u
本高校资产管理系统采用的数据库是Mysql,使用thinkphp框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框…...
【学习笔记】「北大集训 2021」经典游戏
我觉得很厉害。要是考场上能把这道题切了的话数据结构的水平肯定是不低的。 考虑简化版问题:如果只询问一个点的答案怎么做。 注意,我这么做是有风险的。我把战线拉长了。不过当然,如果连简化版的问题都做不了,那何谈正解&#…...
优惠卷秒杀功能、全局唯一ID、乐观锁解决超卖问题、悲观锁实现一人一单、集群下锁失效问题
文章目录 1 全局唯一ID的需求分析2 Redis实现全局唯一Id3 添加优惠卷4 实现秒杀下单5 库存超卖问题分析6 乐观锁解决超卖问题6 悲观锁实现一人一单7 集群环境下的并发问题 1 全局唯一ID的需求分析 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单…...
Nest的基本概念,以及如何使用Nest CLI来构建一个简单的Web应用程序
Nest是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。它是基于Express.js构建的,并且提供了多种新特性和抽象层,可以让开发者更加轻松地构建复杂的应用程序。 本文将介绍Nest的基本概念,以及如何使用Nest CLI来构建一个简单的W…...
15个创新世界119座城:1~10章音频
感恩每一个喜欢我文字的朋友,感恩每一次遇见。 最近后台总有朋友留言,能不能每一章配上音频,这样平时开车或挤地铁时也能听听。 谢谢你们在开车和挤地铁的时候都会产生听这本书的冲动。 五一抽空先把前十章的音频转录出来,希望你们…...
AI面试必刷算法题 附答案和解析 --持续更新中
面试中发现很多同学一股脑优化、润色项目经历,但聊到基本的算法,反而会一脸懵X,得空整理下算法题给大家,希望对你有帮助。 1. tail(head(tail(C))) ( ) 已知广义表: A(a,b), B(A,A), C(a,(b,A),B), 求下列运算的结果:(…...
聊一聊 GDB 调试程序时的几个实用命令
一:背景 1. 讲故事 用惯了宇宙第一的 Visual Studio 再用其他的开发工具还是有一点不习惯,不习惯在于想用的命令或者面板找不到,总的来说还是各有千秋吧,今天我们来聊一下几个在调试中比较实用的命令: 查看内存硬件…...
MySQL驱动对MYSQL进行update操作时返回值注意UseAffectedRows
数据库upate更新表时经常要用,update的结果进行一些逻辑判断,如返回值大于1表示更新成功,为0表示更新失败。 但是使用Mysql驱动连接数据库并进行update操作时,返回值可能不在预期。 update iwrs_drug_order set status2 where …...
OpenCV-Python图像几何变换
概念:几何变换是指将一幅图像映射到另外一幅图像内的操作。OpenCV提供了多个与映射有关的函数,这些函数使用起来方便灵活,能够高效地完成图像的映射。 缩放 cv2.resize()函数用于缩放图像 det cv2.resize(src, dsize[,dst[,fx[,fy[,interp…...
国民技术N32G430开发笔记(15)- IAP升级 树莓派串口发送数据
IAP升级 树莓派串口发送数据 1、树莓派接入usb转串口模块后,会生成/dev/ttyUSB0节点,因为树莓派内核已经编译usb_serial以及各模块的驱动。 我们直接对ttyUSB0节点编程即可。 2、协议同上一节 cmd data_lenght data0 … datax checksum 1、获取版本…...
svo论文解读
SVO: Semi-Direct Visual Odometry for Monocular and Multi-Camera Systems 2016TRO MOTION ESTIMATION 1 Sparse Image Alignment 从上一帧的特征投影到当前帧,最小化重投影误差计算帧间位姿(patch44) 2 Relaxation Through Feature Alig…...
DolphinScheduler海豚调度教程
DolphinScheduler 教程 (一)入门指南 简介 关于Dolphin Apache DolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系,不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式…...
ubuntu脚本解释器踩坑:#!/bin/bash 与 #!/bin/sh
前言: 博主正在写linux的脚本的时候遇到:xx.sh: 3: Syntax error: "(" unexpected 查看shell脚本语法没有问题,后面发现是解释器的原因。 一、不同的解释器 #!是特殊的表示符,其后面根的是此解释此脚本的shell的路径…...
小松鼠踩一踩游戏
文章目录 一、 介绍和知识点九、UnityFacade 门面设计模式二、 声音全局管理器测试音频代码UI全局管理器父类抽象类 BaseManager子类 UIManager 四、 UI按钮的引用父类 BasePanel子类主面板 MainPanel子类 游戏中 GamePanel子类 游戏结果 ResultPanel 角色动画器、控制角色移动…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
