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

编写自己的(玩具)编程语言

  •  
  •   nielinjie · 2022-03-17 08:34:28 +08:00 · 2043 次点击
    这是一个创建于 764 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文记录一个小型的玩具语言开发过程。作为学习实践 Rust 的副产品。

    本过程将覆盖下面一些要点:

    1. 解析文本格式的源代码。
    2. 构建 AST (语法树)。
    3. 从语法树翻译为可执行的目标代码。
    4. 执行目标代码(作为验证)。

    链接:

    1. https://zhuanlan.zhihu.com/p/479410951
    2. https://github.com/nielinjie/bian-lang/tree/main
    2 条回复    2022-04-04 19:55:47 +08:00
    gydi
        1
    gydi  
       2022-03-17 10:16:48 +08:00
    我也分享一下我的 https://github.com/zzzgydi/weso-lang
    用的 lalrpop 作语法树生成,可以翻译成中间代码,可以执行。实现了一下短路运算。
    macrorules
        2
    macrorules  
       2022-04-04 19:55:47 +08:00
    所以没有自己写虚拟机?请教大佬一个问题,既然这样,wasm 是不是规定了接口,比如 `+` 必须要翻译成 `struct Add { lhs: Expr, rhs: Expr }` 这种结构体,然后再把结构体传给 wasm 接口?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:07 · PVG 04:07 · LAX 13:07 · JFK 16:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.