之前简单的写了一个很简单的解释器,大概能实现函数和类。因为不是很懂编译原理,所以想找一个python写的编译器,完完整整的学一下,争取最后自己做出来。
另外,我对数据库实现似乎挺感兴趣,也写过简单的key-value型的,这是硬着头皮写的,连野路子都算不上,所以还是想看看“正宗的”数据库是怎么实现的。
ps: awesome-python上面有类似的项目,但是感觉可读性不是很好,有些也挺复杂,目前能力肯定不够。
所以求大神们推荐一些源码易懂的项目:)
求轻喷^_^
1
liprais 2015-08-04 13:09:50 +08:00
看看sqlite
|
3
em70 2015-08-04 14:46:39 +08:00
python不适合做编译器啊,自身太高级了,需要环境很苛刻,有这环境人家为啥不直接用python呢.
|
5
cute 2015-08-04 15:06:05 +08:00
douban之前开源过一个用python写的数据库
|
7
wowpanda OP @能具体点么?啥名字?
|
9
ss098 2015-08-04 15:40:46 +08:00 via iPad
|
10
fghzpqm 2015-08-04 16:17:09 +08:00
用 Python 写的编程成 Python 字节码的编程语言 Mochi: https://github.com/i2y/mochi
|
11
nalaginrut 2015-08-04 16:57:28 +08:00 1
@wowpanda 用高级语言写编译器并不少见,只有写工业级别的编译器才不得不用C改写,这几年又往C++靠拢。但即便如此,绝大多数语言的编译器都拥有bootstrapping这个装逼特性(虽然没什么卵用,但编译器作者普遍认为没这个就不好意思在圈内拿出手),简单来说就是能用自己编译自己,所以它们实质上都用自己(许多是高级动态语言)实现了自己的编译器。
工业级别的编译器(gcc/llvm)几乎是无法用于入门的,你可以参考这个python的项目: http://parsingintro.sourceforge.net/ 也可以看看MAL,用各种语言实现一个bootstrapping的Lisp方言,里面有Python的实现: https://github.com/kanaka/mal |
12
zonghua 2015-08-04 18:59:48 +08:00 via iPhone
pypy
|
13
paulw54jrn 2015-08-04 19:37:55 +08:00
@zonghua
pypy +1 |
14
wowpanda OP @nalaginrut 谢谢推荐,我尽量啃下来。
ps:不一定是要工业级的编译器啊,能学习用的就好。我就是想用python写个编译器,但是资料貌似少了点。^_^ |
16
jsyangwenjie 2015-08-04 20:41:18 +08:00
|
17
nalaginrut 2015-08-05 11:43:59 +08:00
@wowpanda 就是告诉你不要碰工业级编译器...
|
18
slideclick 2015-08-05 14:18:40 +08:00
工业级的,去clojure的代码里,有个python实现的clojure.这是clojure官方链接过去的。
|