编译原理第五次作业

news/2025/3/26 3:31:19/文章来源:https://www.cnblogs.com/aaaauv/p/18788273

2.2.1

1)S-> S S *-> S S + S *->a S + S *->a a + S *->a a + a *
2)

3)L={由多个a,加号,乘号组成的后缀表达式}

2.2.2

1)L={0^n 1^n | n>=1}
2)L={由多个a,加号,减号组成的前缀表达式}
3)L={ε或任意排列,嵌套的括号}
4)L={ε或包含相同数量a,b的字符串}
5)L={符合我们从左到右计算优先级认知的运算串,由a与符号+, * ()组成,优先级由高到低为(), *,+}

2.2.3

1)没有
2)没有
3)有的

4)有的

5)有的

2.2.4

1.num = {数字},opn = {运算符号}
S -> S S opn | num
每个表达式推导路径唯一。
2.c = {标识符}, S -> S , c | c
表达式的语法分析树只向左拓展,所以推导路径唯一。
3.c = {标识符}, S -> c , S | c
同理2,只向右。
4.S → S + T | S - T | T
T → T * F | T / F | F
F → 标识符 | 整数 | ( S )
5.S → S + T | S - T | T
T → T * F | T / F | F
F → + U | - U | U
U → 标识符 | 整数| ( S )

2.2.5

1)证明:当num = 11或者1001时,当然能被3整除,那么对于num 0 或者num num ;
首先 num 0 ,左移一位,令 num= 3k, 那么 num 0=3k2,被3整除。
那么 num num ,一样的,令 num = 3a, num 3b,那么 num num = 3a
2^n +3b*2^m,被3整除。
2)不行吧,10101生成不出来

2.2.6

romanNum -> thousand hundred ten digit
thousand -> M | MM | MMM | ε
hundred -> smallHundred | C D | D smallHundred | C M
smallHundred -> C | CC | CCC | ε
ten -> smallTen | X L | L smallTen | X C
smallTen -> X | XX | XXX | ε
digit -> smallDigit | I V | V smallDigit | I X
smallDigit -> I | II | III | ε

AI

这个文法描述了罗马数字的构成规则,其中:
romanNum 是开始符号,表示一个完整的罗马数字。
thousand 表示千位的罗马数字,可以是 M、MM、MMM 或空(ε)。
hundred 表示百位的罗马数字,可以是 smallHundred、C D、D smallHundred 或 C M。
smallHundred 表示小于百位的罗马数字,可以是 C、CC、CCC 或空(ε)。
ten 表示十位的罗马数字,可以是 smallTen、X L、L smallTen 或 X C。
smallTen 表示小于十位的罗马数字,可以是 X、XX、XXX 或空(ε)。
digit 表示个位的罗马数字,可以是 smallDigit、I V、V smallDigit 或 I X。
smallDigit 表示小于个位的罗马数字,可以是 I、II、III 或空(ε)。
这个文法能够生成所有有效的罗马数字,并且符合罗马数字的构成规则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904387.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XN2025 集训记录 D2

我好想你们啊 . 我怀念高一啊 . 至少还有理由放任自己开心不是吗 .XN2025 集训记录 D2 又是摆烂的一天 , 感觉打模拟赛时候的自己和改题时的自己完全不是一个人 . 不过往好了想 , 至少足够的模拟赛量 , 意味着我的高效率时间虽然不多 , 但是还有 . 买了个usb转网线 , 破费 39.9…

基于对偶二次曲线的快速椭圆检测

利用对偶二次曲线可精确求解椭圆圆心坐标。1、对偶二次曲线原理 二次曲线也称圆锥曲线,其几何定义是一个平面与两个顶点相对的圆锥相交所产生的交线。通常二次曲线指的是点二次曲线,它是定义在曲线点上的方程。而在射影几何中,齐次点和齐次线存在着可以互换的二元关系,因此…

【程设の旅】Python速通作业三

这节课老师讲了Python的面向对象部分 速度比较快 但是结合前面cpp的大部分知识可以弄懂 最后一道题估计是py特性了 可以理解但是那两个函数不知道是什么鬼 01:运算符的实现 描述 程序填空class A:def __init__(self,x):self.x = x // 在此处补充你的代码 a,b,c = map(int,input…

C/C++开发文档和常用的输入方式汇总

前几天复习的几种输入方式和帮助文档C/C++开发文档获取 之前下载过应该开发文档,今天push到了Gitee上了。可以随时获取,链接字符串操作 C 字符串 | 菜鸟教程 输入输出【包含字符串】 C 输入 & 输出 | 菜鸟教程 #include<stdio.h> int main() {char s[20];int i = 0…

Eino overview

一段话总结 Eino 是基于Golang的大模型应用开发框架,通过组件抽象(如ChatModel、Tool、Retriever)和图编排能力(Chain/Graph/Workflow)简化LLM应用开发。其核心优势包括类型安全的流处理、并发管理、切面注入以及开箱即用的最佳实践,支持构建复杂智能体(如ReAct)和多模…

llm 量化技术综述

综述: LLM 量化 1. Intro 低比特量化主要是减少tensor的bit-width,可以有效减少内存以及计算需求;主要可以压缩权重, 激活值, 和梯度,使得可以在受限资源的设备上使用。 2. 低比特LLM的基础 在这一届,我们主要引入从以下三个方面讨论:low-bit 数值格式 量化粒度 动态或者静…

Top 出海 AI 公司招技术!HIX.AI Pollo.ai | 深圳

HIX.AI & Pollo.ai 招聘高级海外 AI 产品经理 (25-45K) 岗位职责:负责Web 端海外 AI 产品的规划与策划,负责产品需求分析及原型设计,并制定方案推动产品研发落地; 进行产品/竞品调研,了解用户需求,分析、发现需求本质,并给出对应的解决方案; 有效对接开发、测试、运…

2、切片

一:字符串的下标(索引)--重点 ​ Ⅰ:字符串的特性,被称为下标或者 sequence(序列) ​ Ⅱ:一个序列。若干元素组成 ​ Ⅲ:字符串的下标从0开始》标记每个元素的位置,用来获取元素》从左到右,从0开始> a[0],a[1] ,a[3]》可以用正数表示,也可以用负数表示》最…

WEBGL 学习使用代码

目录杂七杂八第一节 绘制出了一个点第二节 动态传递点数据第三节 缓冲区和画线第四节 彩色线段第五节 单个 buffer 渲染颜色第六节 抽离代码 & 画彩色三角形第七节 图元的七种绘制方式第八节 uniform 传值变换数据第九节 旋转矩阵三角函数矩阵的计算推导代码实现第十节 线框…

Kettle 版本这么多,到底该怎么选?

Kettle(Pentaho Data Integration)作为一款功能强大的开源 ETL(Extract, Transform, Load,即数据抽取、转换和加载)工具,拥有众多版本,这让许多用户在选择时犯了难。 1、提出问题 经常有群友提出使用kettle版本的问题,如下图所示:2、kettle版本 有许多的的历史版本,…

C++实验二

实验一#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 5int main() {int number;int i;srand(time(0)); // 以当前系统时间作为随机种子for(i = 0; i < N; ++i) {number = rand() % 100 + 1;printf("20490042%04d\n", n…