#News
🌃 Orien Daily 晚刊【5.23】
1️⃣ Anna's Archive给LLM的公开信 — 社区热议813赞
2️⃣ 为何日本公司什么都做 — 多元化背后的逻辑
3️⃣ yt-dlp弃用Bun支持 — 513条评论争议不断
4️⃣ SpaceX首射星舰V3 — 助推器回收失败
5️⃣ 埃博拉成第三大疫情 — 正在快速蔓延
6️⃣ iPhone 18全线自研基带 — 终结高通依赖
7️⃣ Google I/O百项发布 — Gemini Omni等重磅
8️⃣ 中国煤矿爆炸90人遇难 — 123人入院救治
频道:@OrienDaily
🌃 Orien Daily 晚刊【5.23】
1️⃣ Anna's Archive给LLM的公开信 — 社区热议813赞
2️⃣ 为何日本公司什么都做 — 多元化背后的逻辑
3️⃣ yt-dlp弃用Bun支持 — 513条评论争议不断
4️⃣ SpaceX首射星舰V3 — 助推器回收失败
5️⃣ 埃博拉成第三大疫情 — 正在快速蔓延
6️⃣ iPhone 18全线自研基带 — 终结高通依赖
7️⃣ Google I/O百项发布 — Gemini Omni等重磅
8️⃣ 中国煤矿爆炸90人遇难 — 123人入院救治
频道:@OrienDaily
#News
🌅 Orien Daily 朝刊【5.24】
1️⃣ 微软取消Claude Code授权 — AI工具链生变
2️⃣ 星舰V3首飞基本成功 — 仍在迭代中
3️⃣ 得州女子质疑水质被捕 — 言论自由引争议
4️⃣ 岡本多緒戛纳最佳女演员 — 日本人首次获此奖
5️⃣ 笔记本寄往乌干达难民营 — HN当日最热帖
6️⃣ Nvidia扩散语言模型 — 追求光速文本生成
7️⃣ Google I/O百余更新 — 含Gemini Spark等
8️⃣ 中国煤矿爆炸82死 — 当局已拘责任人
频道:@OrienDaily
🌅 Orien Daily 朝刊【5.24】
1️⃣ 微软取消Claude Code授权 — AI工具链生变
2️⃣ 星舰V3首飞基本成功 — 仍在迭代中
3️⃣ 得州女子质疑水质被捕 — 言论自由引争议
4️⃣ 岡本多緒戛纳最佳女演员 — 日本人首次获此奖
5️⃣ 笔记本寄往乌干达难民营 — HN当日最热帖
6️⃣ Nvidia扩散语言模型 — 追求光速文本生成
7️⃣ Google I/O百余更新 — 含Gemini Spark等
8️⃣ 中国煤矿爆炸82死 — 当局已拘责任人
频道:@OrienDaily
📸 @OOkgood40552
What's wrong with you guys wanting her to keep the pink color? Don't you understand. That So very attractive with brown hair (I want that) 😭 #yeji
原文 #黄礼志
What's wrong with you guys wanting her to keep the pink color? Don't you understand. That So very attractive with brown hair (I want that) 😭 #yeji
原文 #黄礼志
📸 @ITZYBRAZIL
YEJI disse via bubble que irá manter o pink hair até o final das promoções de Motto, e ela disse que talvez não tente ter cabelo rosa novamente 🥲
@ITZYofficial
YEJI 通过气泡表示,她将保留粉红色头发直到 Motto 促销结束,并且她说她可能不会再尝试拥有粉红色头发🥲
@ITZY官方 #ITZY #YEJI
原文 #黄礼志
YEJI disse via bubble que irá manter o pink hair até o final das promoções de Motto, e ela disse que talvez não tente ter cabelo rosa novamente 🥲
@ITZYofficial
YEJI 通过气泡表示,她将保留粉红色头发直到 Motto 促销结束,并且她说她可能不会再尝试拥有粉红色头发🥲
@ITZY官方 #ITZY #YEJI
原文 #黄礼志
This media is not supported in your browser
VIEW IN TELEGRAM
📸 @ITZYBRAZIL
YEJI ultrapassou a marca de 50 milhões de reproduções como artista solo no Spotify.
Ela também ultrapassou a marca de 60 milhões de reproduções em todos os seus trabalhos.
@ITZYofficial
YEJI 作为 Spotify 上的独唱歌手突破了 5000 万次流媒体大关。
她所有作品的复制量也突破了 6000 万次。
@ITZY官方 #ITZY #YEJI
原文 #黄礼志
YEJI ultrapassou a marca de 50 milhões de reproduções como artista solo no Spotify.
Ela também ultrapassou a marca de 60 milhões de reproduções em todos os seus trabalhos.
@ITZYofficial
YEJI 作为 Spotify 上的独唱歌手突破了 5000 万次流媒体大关。
她所有作品的复制量也突破了 6000 万次。
@ITZY官方 #ITZY #YEJI
原文 #黄礼志
This media is not supported in your browser
VIEW IN TELEGRAM
📸 @midzy_swag
This pink and black combo is too much visual attack for real.
They are both so handsome pretty! 😵💫🫠
https://t.co/vQ8IxV1czs #yeji #ryujin
原文 #黄礼志
This pink and black combo is too much visual attack for real.
They are both so handsome pretty! 😵💫🫠
https://t.co/vQ8IxV1czs #yeji #ryujin
原文 #黄礼志
This media is not supported in your browser
VIEW IN TELEGRAM
📸 @koukichi1129 ×2
おい、俺よ。
なぜそこでそんな引き胴が決まると思ったんだ…
どうせなら、そのその返し技みたいなのをたくさん打ってくれい… #剣道 #小池自治会剣道部 #試合近いのに練習不足
原文 #剣道
おい、俺よ。
なぜそこでそんな引き胴が決まると思ったんだ…
どうせなら、そのその返し技みたいなのをたくさん打ってくれい… #剣道 #小池自治会剣道部 #試合近いのに練習不足
原文 #剣道
Lua 的表达式解析器为什么不用 LR?
编译原理课上教的 LR 分析器,当然是经典。但打开 Lua 的源码,你会看到
思路很直白:给每个 token 绑定两个优先级,一个「左绑定力」(left binding power),一个优先级比它高时才继续往下吃「右绑定力」(right binding power)。解析器从左到右扫描 token,遇到操作符时,比较当前操作符的左绑定力和栈顶操作符的右绑定力——左边强就先归约,右边强就先递归。二元运算、一元运算、函数调用、下标访问,全都能塞进同一套框架,不需要额外的规则表或状态机。
Lua 的实现尤其精简。
为什么 Pratt Parser 在实践里这么受欢迎?V8 的 parser、Rust 的 parser、甚至 GCC 后来也逐步转向手写递归下降。原因之一是错误信息——手写递归下降可以精确控制在报错位置给出有意义的提示,而 LR 生成器的报错出了名的难读。原因之二是扩展性——加一个新运算符?插入一行
但它也有代价。Pratt Parser 本质上是递归下降,无法直接处理左递归文法。比如 这样的规则,必须先消除左递归再实现。此外,优先级的全序假设意味着所有运算符必须能排出一个严格的优先级序列,遇到 Python 那种比较运算符链式调用( )就得额外处理裸括 。而且这类手写 parser 的正确性没法像 LR 那样由形式化工具自动验证,全靠人肉 review 和测试。
下次再看到编译课上那张 LR 状态转换表的时候,可以顺手翻一下
#CS
编译原理课上教的 LR 分析器,当然是经典。但打开 Lua 的源码,你会看到
lparser.c 里处理表达式的是一套完全不同的打法——Pratt Parsing,也叫自顶向下算符优先解析。思路很直白:给每个 token 绑定两个优先级,一个「左绑定力」(left binding power),一个优先级比它高时才继续往下吃「右绑定力」(right binding power)。解析器从左到右扫描 token,遇到操作符时,比较当前操作符的左绑定力和栈顶操作符的右绑定力——左边强就先归约,右边强就先递归。二元运算、一元运算、函数调用、下标访问,全都能塞进同一套框架,不需要额外的规则表或状态机。
Lua 的实现尤其精简。
subexpr 函数收一个 limit 参数,表示"当前能接受的最低优先级",递归时把操作符的右绑定力作为新的 limit 传下去。binop 和 unop 的处理逻辑加在一起不到 80 行,整个表达式解析就搞定了。没有冲突、没有归约/移进的抉择,更没有用生成器吐出几千行 C 代码。为什么 Pratt Parser 在实践里这么受欢迎?V8 的 parser、Rust 的 parser、甚至 GCC 后来也逐步转向手写递归下降。原因之一是错误信息——手写递归下降可以精确控制在报错位置给出有意义的提示,而 LR 生成器的报错出了名的难读。原因之二是扩展性——加一个新运算符?插入一行
case 就行,不用重新生成再排查 shift/reduce conflict。但它也有代价。
E → E + E | ida < b < c下次再看到编译课上那张 LR 状态转换表的时候,可以顺手翻一下
lparser.c,看看真实世界的 parser 是怎么写的。#CS