最近在设计和实现一门编译型编程语言

2019-08-05 12:44:12 +08:00
 Mohanson

首先要说明一件事, 该语言已有可运行的 Demo: 计算斐波那契数列.

https://github.com/mohanson/pydouz#Example

def fib(n):
    if n 3 <:
        n
    or:
        fib(n 1 -) fib(n 2 -) +

def main():
    fib(10)

我向来喜欢先立 flag 再写代码...

语言名暂定 Douz(后缀 .dz). 开发语言是 Python, 后端直接用 LLVM. 该语言的设计目标是作为一门嵌入式语言, 定位类似 Lua. 还没有完整的设计文档, 处于边写边想的状态.

我之前一段时间一直在做虚拟机方面的开源项目(Flag 先行模式):

WebAssembly 虚拟机: https://www.v2ex.com/t/523261

Game Boy 模拟器: https://www.v2ex.com/t/556574

Intel I8080 模拟器: https://github.com/mohanson/i8080

准备开始入门编译器前端啦!

1613 次点击
所在节点    问与答
4 条回复
woncode
2019-08-05 13:23:00 +08:00
运算符放右边,好奇怪,写和读起来也不顺畅吧
Mohanson
2019-08-05 13:34:30 +08:00
@woncode 逆波兰表达式,不太常见的一种设计模式,但好处是没有运算符优先级问题
wssy
2019-08-05 13:34:36 +08:00
666,好想步楼主的后路 #_#
目前还只完成了一个 x86 内核
besto
2019-08-05 15:46:02 +08:00
我应该是第一个 star 的,大佬我只想给你膝盖。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/589166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX