1 Ichiban 2021-01-10 20:57:37 +08:00 拿 LLVM 写过一个,想的是简化 C++,但写着写着发现我这想法不如直接去用 Rust github.com/ZingLix/R-Cpp,有兴趣的可以看看 test/src.rpp 和 Wiki,分别是已经实现的和其他的想法 其实我的设计都是拍脑袋想出来的,真写起来细节要考虑的还真的很多 |
![]() | 2 thedrwu 2021-01-10 21:02:41 +08:00 via Android 谁没给自己的程序写过 config 语言的解释器? 若是创造没有新意的语言,只是造个轮子而已。 |
![]() | 3 Mohanson 2021-01-10 21:11:17 +08:00 python + llvm 自学了几周, 写过一门叫 douz(最靠近撒哈拉沙漠的人族聚居地) 的简单语言, 它的斐波那契函数长这样: ``` def fib(n) { if n 3 < { n; } or { fib(n 1 -) fib(n 2 -) +; }; } def main() { fib(10); # Exit with code 89 } ``` https://github.com/mohanson/pydouz/blob/master/examples/fib.dz 没精力继续做下去, 感觉编译器前端和后端都是体力活, 编译器中端才是精华所在(数学, 统计学... ...). 但是用了 llvm, 基本上就只能去写前端了. |
![]() | 4 Mohanson 2021-01-10 21:17:52 +08:00 我觉得更合理的学习方式是为一门已经存在的语言写 1) 解释器 2) 设计解释器的中间代码 3) 中间代码优化 4) 基于中间代码的 AOT 编译器 5) 解释器 + JIT 编译器 我觉得 Go 拿掉 goroutine, 写 Go 的解释器开始就挺不错的. |
![]() | 5 redwing2003 OP 那我问一下大家喜欢头文件还是命名空间 module 还是 private public protected 做访问控制 |
6 chengs 2021-01-11 00:36:33 +08:00 via iPhone 这个是涉及多元的科学,不是兴趣就能搞定的。看起来是自创实际在模仿。 |
![]() | 7 love 2021-01-11 10:03:28 +08:00 现在的语言都互相抄得集大成了,以前烂得一 b 的没设计 Javascript 现在都出人意料的好用了,写起来比有设计的 python 都舒服 |