PL
Verifying Constant-time
Constant-time的验证方法们。 Intro Constant-time作为密码学实现上一个重要的property,在抵御side-channel上面有很重要的作用。尤其是在这个Post-spectre的年代,microarchitectural level的side-channel attack已经成为了一个很大的威胁。近年来这个领域的researcher们飙了很多关于constant … Read more →
SMT/SAT: From Zero to 0.1
I’ve recently been learning about SMT/SAT solvers. Here’s a brief summary. Concepts SMT: Satisfiability Modulo Theories; wiki SAT: (Boolean) Satisfiability; wiki SMT can be viewed as a … Read more →
Symbols and Interpretation
在被Coq折磨了快一个月后,终于我终于看完了Logic Foundation。作为Software Foundations系列书籍中的第一员大将,它还是有点东西的。这里只浅谈一下我对于符号和解释这两个概念所产生的更深的理解。正文部分基本不涉及任何与编程本身相关的问题。 Preface 我并不打算对书的中知识概括总结,而是希望浅谈自己在读书过程中对于两个重要的概念,符号与解释的一些理解和思考。 在这 … Read more →
从零开始搓一个编译器
今年手痒痒选了一个Implementation of PL的课,需要徒手搓编译器。这里来小记一下这个过程,感觉这可能是我校CS最硬核的课之一了。 其实老师给了Racket和Python两种语言的选择,奈何我实在是不习惯那长到姥姥家的Racket括号,于是选择了Python。幸好在最新的Python 3.10中引入了match case的新特性,这直接使得代码量减少了非常多!它太好用了!!!(感 … Read more →
Dark Magic in Computing — Rust Pitfalls
As I once said: My life is a lifelong battle with the Rust compiler. —Me And also: When you think Rust has a problem, it’s not because Rust has a problem— it’s because you have a problem. … Read more →
Rust Study Notes
最近突然对于Rust产生了兴趣因为它的吉祥物小螃蟹很可爱,遂开始阅读The Rust PL一书想要一探究竟。我发现Rust真的是一门相当阳间的语言,一些functional programming的特性和build system可以让使用者用起来十分舒爽。 虽然目前只看了两十章,但我已经从代码中嗅到了了浓郁的Rust的香锈味。 基本看完了现在。 在一个较为清闲的周末早上,我决定把最后一章看完。 创 … Read more →
Programming Language Review
Review what I learned from programming language, a fundamental course of CS. The code is mainly in typed racket, a dialect of scheme. The code here is mainly from Weixi Ma’s lecture notes and my … Read more →