2 Star 8 Fork 5

siriusdemon / Rust-One-Piece

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Rust One Piece | 写一个编译器

想写一个编译器。写给那些与我一样,对编译器感兴趣的你,愿你永远不会退失学习的乐趣。

教材

我使用的是 eoc (Essential of Compilation),是 IU 的教授写的,目前还没写完。可以免费下载:官方 Github 。这本书也包含在本次教程的 Gitee 中。

Rust

书中使用的语言是 Racket,官方 Github 提供了许多测试及辅助代码。决定用另一种语言写,意味着你没办法使用那些辅助代码,这相当具有挑战性,但如果你赢了,相信会获得对编译器更全面的理解。

我对 Python 其实更熟悉,C++ 也是候选,但选择 Rust,则是因为 Rust 有 match,而另外两者没有。

你可以选择任意你喜欢的语言来学习 eoc,但是有 match 会愉快很多。

目前进展

初心

对编译器的兴趣,来源于王垠。我从他的博客中收获了许多宝贝。在知道王垠之前,我也听过 Lisp 语言的大名。原因在于,我大一的时候,在百度上搜索:成为一名黑客要学习什么语言?看到有一个回答说:要学习四种语言,一是 C,二是 Python,三是 Perl,四是 Lisp。这次 EOC 所实现的语言是 Racket,也是一种 Lisp 方言。

有一段时间的工作内容是调研 TVM,现在深度学习编译器的佼佼者,当时便萌生了写编译器的想法。

这次刚好有 EOC 的开源和 Rust,我想写一系列的博客加以解说,但愿对于学习 Rust 和编译器的同行都会有所帮助。

空文件

简介

Essential of Compilation 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Rust
1
https://gitee.com/siriusdemon/Rust-One-Piece.git
git@gitee.com:siriusdemon/Rust-One-Piece.git
siriusdemon
Rust-One-Piece
Rust-One-Piece
master

搜索帮助

14c37bed 8189591 565d56ea 8189591