当前位置: 首页 > news >正文

第五章 作业(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 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第四章 作业&#xff08;123&#xff09;【编译原理】 第五章 作业 1 1.令文法G为…...

基于Vue的个性化网络学习笔记系统

1&#xff0e;系统登录&#xff1a;系统登录是用户访问系统的路口&#xff0c;设计了系统登录界面&#xff0c;包括用户名、密码和验证码&#xff0c;然后对登录进来的用户判断身份信息&#xff0c;判断是管理员用户还是普通用户。 2&#xff0e;系统用户管理&#xff1a;不管是…...

如何搭建一个HTTP实验环境

这一讲是“破冰篇”的最后一讲&#xff0c;我会先简单地回顾一下之前的内容&#xff0c;然后在 Windows 系统上实际操作&#xff0c;用几个应用软件搭建出一个“最小化”的 HTTP 实验环境&#xff0c;方便后续的“基础篇”“进阶篇”“安全篇”的学习。 “破冰篇”回顾 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

摘要 随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#xff0c;并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单&#xff0c;变…...

springboot+vue体质测试数据分析及可视化设计(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体质测试数据分析及可视化设计。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&a…...

thinkphp+vue+html高校固定资产管理系统维修 租借4h80u

本高校资产管理系统采用的数据库是Mysql&#xff0c;使用thinkphp框架开发。在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。运行环境:phpstudy/wamp/xammp等 开发语言&#xff1a;php 后端框…...

【学习笔记】「北大集训 2021」经典游戏

我觉得很厉害。要是考场上能把这道题切了的话数据结构的水平肯定是不低的。 考虑简化版问题&#xff1a;如果只询问一个点的答案怎么做。 注意&#xff0c;我这么做是有风险的。我把战线拉长了。不过当然&#xff0c;如果连简化版的问题都做不了&#xff0c;那何谈正解&#…...

优惠卷秒杀功能、全局唯一ID、乐观锁解决超卖问题、悲观锁实现一人一单、集群下锁失效问题

文章目录 1 全局唯一ID的需求分析2 Redis实现全局唯一Id3 添加优惠卷4 实现秒杀下单5 库存超卖问题分析6 乐观锁解决超卖问题6 悲观锁实现一人一单7 集群环境下的并发问题 1 全局唯一ID的需求分析 每个店铺都可以发布优惠券&#xff1a; 当用户抢购时&#xff0c;就会生成订单…...

Nest的基本概念,以及如何使用Nest CLI来构建一个简单的Web应用程序

Nest是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。它是基于Express.js构建的&#xff0c;并且提供了多种新特性和抽象层&#xff0c;可以让开发者更加轻松地构建复杂的应用程序。 本文将介绍Nest的基本概念&#xff0c;以及如何使用Nest CLI来构建一个简单的W…...

15个创新世界119座城:1~10章音频

感恩每一个喜欢我文字的朋友&#xff0c;感恩每一次遇见。 最近后台总有朋友留言&#xff0c;能不能每一章配上音频&#xff0c;这样平时开车或挤地铁时也能听听。 谢谢你们在开车和挤地铁的时候都会产生听这本书的冲动。 五一抽空先把前十章的音频转录出来&#xff0c;希望你们…...

AI面试必刷算法题 附答案和解析 --持续更新中

面试中发现很多同学一股脑优化、润色项目经历&#xff0c;但聊到基本的算法&#xff0c;反而会一脸懵X&#xff0c;得空整理下算法题给大家&#xff0c;希望对你有帮助。 1. tail(head(tail(C))) ( ) 已知广义表: A(a,b), B(A,A), C(a,(b,A),B), 求下列运算的结果:&#xff08…...

聊一聊 GDB 调试程序时的几个实用命令

一&#xff1a;背景 1. 讲故事 用惯了宇宙第一的 Visual Studio 再用其他的开发工具还是有一点不习惯&#xff0c;不习惯在于想用的命令或者面板找不到&#xff0c;总的来说还是各有千秋吧&#xff0c;今天我们来聊一下几个在调试中比较实用的命令&#xff1a; 查看内存硬件…...

MySQL驱动对MYSQL进行update操作时返回值注意UseAffectedRows

数据库upate更新表时经常要用&#xff0c;update的结果进行一些逻辑判断&#xff0c;如返回值大于1表示更新成功&#xff0c;为0表示更新失败。 但是使用Mysql驱动连接数据库并进行update操作时&#xff0c;返回值可能不在预期。 update iwrs_drug_order set status2 where …...

OpenCV-Python图像几何变换

概念&#xff1a;几何变换是指将一幅图像映射到另外一幅图像内的操作。OpenCV提供了多个与映射有关的函数&#xff0c;这些函数使用起来方便灵活&#xff0c;能够高效地完成图像的映射。 缩放 cv2.resize()函数用于缩放图像 det cv2.resize(src, dsize[,dst[,fx[,fy[,interp…...

国民技术N32G430开发笔记(15)- IAP升级 树莓派串口发送数据

IAP升级 树莓派串口发送数据 1、树莓派接入usb转串口模块后&#xff0c;会生成/dev/ttyUSB0节点&#xff0c;因为树莓派内核已经编译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 从上一帧的特征投影到当前帧&#xff0c;最小化重投影误差计算帧间位姿&#xff08;patch44&#xff09; 2 Relaxation Through Feature Alig…...

DolphinScheduler海豚调度教程

DolphinScheduler 教程 &#xff08;一&#xff09;入门指南 简介 关于Dolphin Apache DolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系&#xff0c;不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式…...

ubuntu脚本解释器踩坑:#!/bin/bash 与 #!/bin/sh

前言&#xff1a; 博主正在写linux的脚本的时候遇到&#xff1a;xx.sh: 3: Syntax error: "(" unexpected 查看shell脚本语法没有问题&#xff0c;后面发现是解释器的原因。 一、不同的解释器 #!是特殊的表示符&#xff0c;其后面根的是此解释此脚本的shell的路径…...

小松鼠踩一踩游戏

文章目录 一、 介绍和知识点九、UnityFacade 门面设计模式二、 声音全局管理器测试音频代码UI全局管理器父类抽象类 BaseManager子类 UIManager 四、 UI按钮的引用父类 BasePanel子类主面板 MainPanel子类 游戏中 GamePanel子类 游戏结果 ResultPanel 角色动画器、控制角色移动…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...