- 博客(13)
- 收藏
- 关注
原创 LR(0)
分析下面这个栈,我们可以知道R下面一定是个0号状态,这个是静态文本体现不出来的,你必须是跑这个自动机才能体现出来,我在把L弹出去之后,进入到q0,这个q0一定是栈底,不可能是站中间的一个部分,他只可能在最开始的时候进入,因为他没有入边,不可能再次来到这个状态,只有当上千的状态都弹出来,这个状态才会暴露出来,所以只会是栈底,只会是栈底就意味着R后面跟着=,这个部分一定是最前面的,一定是以它打头的。对于下图这个例子,我们考虑的是,能不能拿这个句柄,在当前看到t的情况下,做规约。如果规约的话,我们看栈的状态。
2025-04-15 00:00:29
602
原创 LR(0) 语法分析
归约,要不断向上归约。反过来做,自底向上,当我看到ABCd这个完整的右部的时候,要把它归约到子节点。但是我要完成归约的话,要找到这个完整的右部,那怎么找?句柄,这是一个比较难的概念,我要去找句柄,有一个句柄识别自动机不断去找。LL依赖预测分析表,LR依赖句柄识别。对于非终结符P,我识别出了一个句柄,拿这个句柄用头部来替换,不断进行这个过程,迭代归约这一步。第一行是最右推导,T和F都是nonterminal,最右推导选的就是右边的F。语法树是唯一的,最右推导也是唯一的。
2025-04-05 13:46:10
782
原创 Transformer | 几点理解
BatchNorm:对一个 batch 的每个通道/特征维度做归一化 → 依赖 batch sizeLayerNorm:对一个样本内部的所有特征做归一化 → 跟 batch size 无关BatchNorm:按“列”来归一化(每个特征维度)LayerNorm:按“行”来归一化(每个样本自己)在 CNN 中,channel 就是特征维度BatchNorm 是在 channel 维度(也就是特征维度)上归一化的。项目图中黄色框代表的是实际 LayerNorm 处理的是错误理解。
2025-03-23 22:47:22
975
原创 编译 | 语法分析LL(1)-理论
有冲突的话,我们的预测分析表就处理不了了,所以其实它的处理能力是很有限的,其实这个LL(1)方法是作为所有语法分析算法一个基础来进行铺垫的。
2025-03-13 14:29:03
1764
原创 语法分析(2)| 上下文无关法
左边是head,右边是body,还有一个产生式(可以把head替换成body)。非终结符和非终结符,左边只能有一个非终结符,右边就不一样了,可以有终结符也可以有非终结符。这种文法就叫上下文无关文法。之前词法分析的正则表达式,也是一种文法。到了文法这个阶段,我们的正则表达式就不够用了,我们需要一个表达能力更强的文法,就是上下文无关文法,简称CFG。四元组:有一个比较特殊的非终结符S,我们所有的推导都是从它开始的,跟antlr的Prog有点类似,所有的文法都是有最开始这个符号展开的。
2025-03-12 19:24:40
1857
原创 语法分析(1) | parser-antlr
antlr4解决二异性,采用最前优先匹配else和离他最近的没被匹配的if匹配。留得问题?理论上证明他,也可以用例子证明else和离他最近的没被匹配的if匹配。悬空的else第二种二异性的例子怎么保证antlr4按右边,默认都是左结合,因为相对来说左结合的比较多。如果说非要,那么指定一个right取反运算符!,也是右结合。上面那样解释是没有含义的。
2025-03-12 15:01:04
958
原创 南京大学编译原理 | 词法分析理论(1)
所有符合字符串规则的集合。要定义什么是语言,就定义什么是字符串,那么就要定义什么是字符,就要定义什么是字母表。现在只是一些符号而已,它的意义是你后来赋予它的。语言:所有符合id规则的字符串的集合。可以和上次课联系起来。这里的并其实就是我们g4文件里面的“ | ”符号。闭包其实就是“ * ”符号。这里重要的就是闭包,他允许我们构造出无穷的集合,否则我们构造出来的语言就是有穷的,那就意味着总有一天会写完所有的语言。举个例子:L并M就是合并两个集合LD就是做笛卡尔集。
2025-03-09 15:17:53
1156
原创 南京大学Compiler编译原理课程 | 词法分析器手搓
对于这一个例子,扫描到123的时候,我们合理的怀疑他是一个INT,但是下一次扫描到小数点的时候,我们就反应过来这可能是一个REAL,下一次到了E,我们又变了,怀疑他是一个科学技术法,但再往后+我们期望他是一个数字,但是他没有让我们如意,就不对了。不要忘记了我们的while循环是不断调用NextToken去执行的,我们现在执行到这个Token说明上一个Token已经被识别完了,之前的都已经一个一个被匹配掉了。其实是不能够确定的。以上只是一个基本的框架,更重要的是每一个状态的操作,归类,相同的类做相同的操作。
2025-03-08 23:00:53
825
原创 Ubuntu系统(命令行) | PostgreSQL学习
只是记录下自己在做练习,使用SQL语言的时候的心路历程和一些遇到的问题,供大家一起参考学习。
2025-03-05 17:13:26
2007
原创 CS231n 2017 | Lecture 2 Image Classification
在Python中,class关键字用于定义新的类。是类的名称,通常类名使用驼峰命名法(每个单词首字母大写)。在NumPy中,axis对于二维数组(即矩阵),有两个轴:axis=0表示沿着列方向(垂直方向)axis=1表示沿着行方向(水平方向)
2025-03-03 22:07:01
1033
原创 数据库的一些概念理解
这学期开始上数据库了,由于这门课学校上的是比较偏概念性的东西,也就没提前预习,结果发现上课的时候出现的这些概念还有点抽象。在这里就理顺一下,顺便记录下来。可以结合这个博主的文章一起看。
2025-03-03 16:47:44
1032
1
空空如也
数据结构 顺序表在所有满足等于x的元素之后插入y
2024-09-17
c++顺序表的基本操作
2024-09-15
链表输出的时候,一直无限循环
2024-09-11
顺序表执行了插入删除操作后,最后显示元素,为什么多了一个乱码数字啊
2024-09-08
顺序表定义,错误 LNK2019 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
2024-09-07
冒泡排序 输入五个数(比如1 3 5 4 6),按回车后没反应
2024-09-06
突然我写的qt项目连带着以前的版本运行不了了,全都是程序异常结束,但是其他的项目可以运行
2024-07-04
为什么我的敌机只出现一种
2024-06-18
为什么我的敌机出场有一个敌机一直定在坐标(0,0),其他的飞机飞到半路就失踪了
2024-06-18
我的背景不移动,是定时器有问题吗
2024-06-17
为什么把 timer1->stop()去掉,金币会不停的转,但是我图片只到min=8啊
2024-06-12
这是mypushbutton的cpp及h,还有窗口的cpp,但是我的返回按钮不显示
2024-06-09
qt中设置返回按钮,但是不显示
2024-06-09
qt中设置返回按钮,但是不显示
2024-06-09
qt的帮助文档怎么用不了了
2024-05-23
为什么定义的Qpushbutton指针不用在widget.h里声明
2024-05-23
安装Qt Creator后,创建项目时出现“No valid kits found”
2024-05-22
冒泡排序这段代码的swapflag是啥
2024-04-20
2,设计一个类模板Sample,能实现对类型不限的数组的排序功能。
2024-04-20
C++ map实现基于家族姓氏的查询,输出成员的名字
2024-04-20
cin为什么按回车之后不显示输出,直接换行了啊
2024-04-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人