想更熟悉 LLVM,是不是要学会 c++?还要学其他的吗?

2021-01-17 14:34:51 +08:00
 piqizhu8

我的最终目标是创造一门编程语言


因为我看到 wiki 上说,llvm 用 c++写的, 所以我猜想,如果我学会了 c++, 将来用 llvm 做东西(开发编程语言), 应该会容易很多

请问我的观点对吗?

各位前辈能给点意见吗?

2278 次点击
所在节点    问与答
24 条回复
Goldilocks
2021-01-18 06:35:16 +08:00
如果你不会 c++,你能用 llvm 做什么? llvm 的 code 和 API 都是 c++啊。
sadfQED2
2021-01-18 09:45:55 +08:00
不是我打击你,你这基础,连编译器是干啥的都没弄明白吧,就像新发明编程语言。你真要搞,先把编译原理,计算机组成原理这些东西学明白,然后搞明白各种语言不同的优势,生态,这时候再开始吧

或许说,第一步你先看看别人咋做的,看看 go 编译器源码,或者是看看 jvm 源码
xarthur
2021-01-18 10:41:11 +08:00
1. llvm 官网上就有如何用 llvm 写一个编程语言的例子,走一遍就知道如何创造编程语言了。
https://llvm.org/docs/tutorial/OCamlLangImpl1.html
2. llvm ir 不能帮你解决 io 等问题,是标准库的功能,需要你自己实现。ir 只是中间码。
3. 编译原理是计算机科学里的屠龙之计,但不是只要学会编译原理就能创造新的语言了,语言的各类标准库也是需要考虑的。还有异步,多线程模型和语法等等等
4. 如果你要做静态类型语言,还需要了解类型系统。
5 好的语言设计是一个取舍,所以要了解足够多的语言才知道怎么做取舍好。
linux40
2021-01-18 12:42:20 +08:00
@piqizhu8 #11 收藏多年的实现操作系统的教程,自己没时间看: https://littleosbook.github.io/#introduction

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

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

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

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

© 2021 V2EX