V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wowpanda
V2EX  ›  Python

求推荐 python 写的数据库和编译器项目

  •  
  •   wowpanda · 2015-08-04 12:49:23 +08:00 · 3984 次点击
    这是一个创建于 3398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前简单的写了一个很简单的解释器,大概能实现函数和类。因为不是很懂编译原理,所以想找一个python写的编译器,完完整整的学一下,争取最后自己做出来。
    另外,我对数据库实现似乎挺感兴趣,也写过简单的key-value型的,这是硬着头皮写的,连野路子都算不上,所以还是想看看“正宗的”数据库是怎么实现的。

    ps: awesome-python上面有类似的项目,但是感觉可读性不是很好,有些也挺复杂,目前能力肯定不够。
    所以求大神们推荐一些源码易懂的项目:)
    求轻喷^_^

    18 条回复    2015-08-05 14:18:40 +08:00
    liprais
        1
    liprais  
       2015-08-04 13:09:50 +08:00
    看看sqlite
    wowpanda
        2
    wowpanda  
    OP
       2015-08-04 14:39:14 +08:00
    @liprais sqlite似乎是C语言写的呀,我想要的是纯python写的
    em70
        3
    em70  
       2015-08-04 14:46:39 +08:00
    python不适合做编译器啊,自身太高级了,需要环境很苛刻,有这环境人家为啥不直接用python呢.
    wowpanda
        4
    wowpanda  
    OP
       2015-08-04 15:02:10 +08:00 via Android
    @em70 这跟自身高级不高级没有一分钱的关系
    cute
        5
    cute  
       2015-08-04 15:06:05 +08:00
    douban之前开源过一个用python写的数据库
    em70
        6
    em70  
       2015-08-04 15:09:29 +08:00
    @wowpanda 这样没有实用价值啊,所以不会有优秀的项目给你参考
    wowpanda
        7
    wowpanda  
    OP
       2015-08-04 15:34:05 +08:00 via Android
    @能具体点么?啥名字?
    wowpanda
        8
    wowpanda  
    OP
       2015-08-04 15:35:09 +08:00 via Android
    @em70学习练手用啊,不一定要啥实用价值啊
    ss098
        9
    ss098  
       2015-08-04 15:40:46 +08:00 via iPad
    fghzpqm
        10
    fghzpqm  
       2015-08-04 16:17:09 +08:00
    用 Python 写的编程成 Python 字节码的编程语言 Mochi: https://github.com/i2y/mochi
    nalaginrut
        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
    zonghua
        12
    zonghua  
       2015-08-04 18:59:48 +08:00 via iPhone
    pypy
    paulw54jrn
        13
    paulw54jrn  
       2015-08-04 19:37:55 +08:00
    @zonghua
    pypy +1
    wowpanda
        14
    wowpanda  
    OP
       2015-08-04 20:31:27 +08:00
    @nalaginrut 谢谢推荐,我尽量啃下来。
    ps:不一定是要工业级的编译器啊,能学习用的就好。我就是想用python写个编译器,但是资料貌似少了点。^_^
    wowpanda
        15
    wowpanda  
    OP
       2015-08-04 20:37:07 +08:00
    @zonghua pypy是不是复杂了点
    jsyangwenjie
        16
    jsyangwenjie  
       2015-08-04 20:41:18 +08:00
    @wowpanda http://norvig.com/lispy2.html
    python 写一个lisp解释器,够用了
    nalaginrut
        17
    nalaginrut  
       2015-08-05 11:43:59 +08:00
    @wowpanda 就是告诉你不要碰工业级编译器...
    slideclick
        18
    slideclick  
       2015-08-05 14:18:40 +08:00
    工业级的,去clojure的代码里,有个python实现的clojure.这是clojure官方链接过去的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:02 · PVG 08:02 · LAX 16:02 · JFK 19:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.