V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
silverbullettt
V2EX  ›  编程

正在用Scheme写编译器,有人愿意合作或者交流一下吗?

  •  
  •   silverbullettt · 2012-08-14 21:42:50 +08:00 · 4715 次点击
    这是一个创建于 4272 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/silverbullettt/o-lex

    以前没写过编译器,觉得人生不完整。现在写了几天,准备完成词法分析了。我的想法是词法分析和语法分析(前端)都写成通用的生成器,即输入规则,输出parser。语义部分等到时候再设计……

    还有这代码还没有文档,过两天补上= =

    RT,我在这方面没有经验,有人愿意合作或者交流一下吗?
    6 条回复    1970-01-01 08:00:00 +08:00
    qiao
        1
    qiao  
       2012-08-14 22:12:33 +08:00
    nice, 同样觉得没写过写过编译器人生就不完整。不过目前我还是准备先多做些理论性研究,多读几本相关著作后再开始写。话说楼主居然在代码中用了 unicode 来作为 identifier,实在是少见哈 :p
    limu
        2
    limu  
       2012-08-14 22:47:55 +08:00
    楼主真是年轻有为阿.scheme的解释器照着 SICP 估计能比较容易写出一个来.
    编译器还是挺难写的,后端的代码生成准备用啥? LLVM?
    Numbcoder
        3
    Numbcoder  
       2012-08-14 22:53:57 +08:00
    不错。
    想问一下,用 Racket 这个有什么好处,为什么不用原始的 Scheme ?
    silverbullettt
        4
    silverbullettt  
    OP
       2012-08-14 23:48:44 +08:00
    @qiao 那完全得益于DrRacket这个环境够强悍,一般理论书上也是用那几个符号描述NFA,我就干脆拿来用了:p,其实还可以用中文做id……

    我的编译原理理论知识完全来自上课(我们这门课的老师很好),前端需要的理论知识很少,所以这次我是想写到语义部分的时候以实践带着理论学习。
    silverbullettt
        5
    silverbullettt  
    OP
       2012-08-14 23:50:02 +08:00
    @limu 所以说现在还没想好咧,到时候再看吧。您有什么建议吗~除了LLVM
    silverbullettt
        6
    silverbullettt  
    OP
       2012-08-14 23:50:58 +08:00
    @Numbcoder DrRacket提供了很多Scheme没有的东西,比如match
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2935 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:19 · PVG 08:19 · LAX 17:19 · JFK 20:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.