最新内容

博文目录可以找到所有博文

编程语言基础概念(1):判断(Judgement)与推理规则(Inference Rules)

2020年1月27日

在编程语言研究领域中似乎充满了行话、希腊字母和怪异的符号。 这些惯例使得论文更加简洁,但同时也非常难以理解。 由于我正在学习 编程语言基础 的课程, 我想在一系列博客文章中分享我学到的关键概念。 编程语言领域中的许多数学概念都源自 命题逻辑 的领域,而今天我们的主题是 判断(Judgement) 与 推理规则(Inference Rules) 的形式语言。 判断(Judgements…

阅读全文

std::function的Const正确性问题

2019年12月31日

const 类型限定符(type qualifier)是C++语言设计的一大亮点。我们围绕着这个语言特性使用“ const 正确性” (const correctness)的实践来防止 const 对象遭到改变。“ const 正确性”的规则对大多数的类的实现都不难被遵守。但是对使用到类型擦除(type erasure)的类,“ const 正确性”更难被遵守。不幸的是,因为短见,C…

阅读全文

ACM Siggraph 2019会议小结

2019年8月8日

今年几个在 Trimble SketchUp 的同事与我一起去参加了ACM Siggraph 大会 。这是我第一次参加这种规模的大会。这一周虽然非常辛苦,但我也开阔了眼界并且学到了很多东西。 今年大会的地点在洛杉矶,所以我们有机会去参观渔人码头,品味不同的海鲜,并且欣赏海上的日落。我们也开了一些图形学有关的玩笑, 诸如渔人码头的木头地板是一张置换贴图(displacement map…

阅读全文

X86 "lea" 指令背后的直觉

2019年6月11日

一些朋友们在之前的 北丹佛地区C++聚会 上提到X86指令中的 lea 并不如其他的指令那么好理解。 lea 是“load effective address”的缩写,一般来说被解释为“把某个内存地址从放到目标位置”。在Intel汇编语法下, lea 被写作 举一个例子, 如果我们有一个 struct Point 的数组 points : 当遇到 int x = points[i…

阅读全文