levelworm

levelworm

V2EX 第 401678 号会员,加入于 2019-04-14 22:20:59 +08:00
今日活跃度排名 2692
根据 levelworm 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
levelworm 最近回复了
12 小时 28 分钟前
回复了 machtimes 创建的主题 问与答 迫于假期无聊,有什么靠谱的 Python 沟通或者项目群吗
搞个七天项目群吧,比如说快速过一遍 SICP
12 小时 29 分钟前
回复了 rsonghao 创建的主题 问与答 一直都想买一台 mac,但是一直没有下决心付款
我也想,一看价钱就软了。
1 天前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@ch2 明白了,看来我硬着头皮看下去就行了。我之前看过另外一本书,好像就不是用这个办法,用的是状态机好像。
1 天前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
接楼上。我现在又看了一下,是看懂了,但是你让我自己推出来这个,我就有些困难了,不是完全做不到,而是想不到这么做。
1 天前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@namelosw 多谢,我是这里没明白:
https://craftinginterpreters.com/parsing-expressions.html
(上面半页基本的 CFG 还是很简单的)

引用开始:
Each rule here only matches expressions at its precedence level or higher. For example, unary matches a unary expression like !negated or a primary expression like 1234. And term can match 1 + 2 but also 3 * 4 / 5. The final primary rule covers the highest-precedence forms—literals and parenthesized expressions.
引用结束

他说的 precedence rule 我明白,就是优先度的问题,比如说加减乘除,乘除高于加减。但是什么叫做 each rule here only matches expressions at its precedence level or higher?

这是他最后的结果,能够看到每一行实际上都引用了下一行的东西:

expression → equality ;
equality → comparison ( ( "!=" | "==" ) comparison )* ;
comparison → term ( ( ">" | ">=" | "<" | "<=" ) term )* ;
term → factor ( ( "-" | "+" ) factor )* ;
factor → unary ( ( "/" | "*" ) unary )* ;
unary → ( "!" | "-" ) unary
| primary ;
primary → NUMBER | STRING | "true" | "false" | "nil"
| "(" expression ")" ;

我感觉他这里很巧妙的就把之前比较复杂的东西,比如说 expression 简化成 equality 了,但是对于我这个看的人来说,似乎就需要一个个调用下去,才能真正知道这行到底对应的是什么东西。
1 天前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
@DianQK 惭愧,我之前看 craftintepreter 也是卡在 CFG 那里了。他说什么要按照顺序来排我就一直没想明白这个。
1 天前
回复了 yurong333333 创建的主题 问与答 咨询贴:组装小型主机
第一反应是 mini computer!
1 天前
回复了 amanohaneizz 创建的主题 问与答 工作写 c++的都用什么 IDE?
VS 啊,老大
1 天前
回复了 paranoiddemon 创建的主题 程序员 编译原理大家是怎么学习的?
还有一本书,game scripting mastery,手把手教你写一个脚本语言加虚拟机。
2 天前
回复了 jonathanchoo 创建的主题 MacBook Pro 关于新的 MBP 的刘海
@AJiangYa 不会吧好烦这个。。。哎还有好希望老早笔记本那种更有触感的键盘。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1825 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 126ms · UTC 05:37 · PVG 13:37 · LAX 22:37 · JFK 01:37
♥ Do have faith in what you're doing.