想更熟悉 LLVM,是不是要学会 c++?还要学其他的吗?
我的最终目标是创造一门编程语言
因为我看到 wiki 上说,llvm 用 c++写的, 所以我猜想,如果我学会了 c++, 将来用 llvm 做东西(开发编程语言), 应该会容易很多
请问我的观点对吗?
各位前辈能给点意见吗?
我的最终目标是创造一门编程语言
因为我看到 wiki 上说,llvm 用 c++写的, 所以我猜想,如果我学会了 c++, 将来用 llvm 做东西(开发编程语言), 应该会容易很多
请问我的观点对吗?
各位前辈能给点意见吗?
你开发编程语言是出于什么目的呢?
单纯是为了兴趣还是解决某个实际问题?
谢谢, 也有兴趣, 也有解决某类问题
谢谢, 我目前已经掌握了 python,我想开发一门类似 c,go 这样可以静态编译的语言, 我在网上搜索研究后,发现 llvm 不但可以作为后端直接编译,还可以跨平台,所以我就直接拿来用了,不用从头造轮子
我目前,已经用 llvm+python 制作了一个支持加法、减法的 语言雏形, 由于加法、减法是 cpu 自带的功能(我之前看了一个讲操作系统的资料,明白了 cpu 默认是支持加减乘除、逻辑运算),所以借助 llvm 很容易实现加减乘除
但是我不知道如何用 llvm 制作高级功能,如 打印文字、网络请求
所以我就在想,是不是我需要学会 c++,以便更加了解 llvm
因为我本身英语能力很弱,需要借助翻译工具才能看,最后能理解消化的内容就更少了
谢谢,因为我已经掌握了 Python 的基本用法, 所以我想前端用 python 做词法、语法分析;后端用 llvm 编译成目标平台的机器码
借助基础的 llvm ir,可以很容易实现 加减乘除, 但是 llvm ir 并没有提供 网络 io 、文件读取等高级功能
我之所以想深入学 llvm,是因为我觉得深入学好 llvm 后, 我就可以用 llvm ir 实现 高级的 网络 io 、文件读取等功能
不知道前辈有什么建议吗
感谢
一线工程师干事可是追求简单粗暴的。很多时候会有很离谱的事情发生。
有点类似理论医学和临床医学,两波人互相鄙视。
谢谢, 用 llvm ir 有办法实现 文件 io 、网络请求吗? 或者如何间接的实现呢? 方便给个关键词吗 谢谢大哥
谢谢, 不过我没有理解你要表达的意思, 方便展开说说吗
谢谢
我一直以为,编程语言该有的 [基本功能] ,在 llvm 里都可以找到, 我只需要,对我的语言进行词法、语法分析后,把功能映射到 llvm 就行了(因为目前我的编程语言的加减乘除,都是用的 llvm 提供的,所以我猜想,文件读写,网络请求,llvm 应该也有),
看到你的解释,似乎我对 llvm 的理解有错误 ,llvm 没有封装操作系统的 api 吗
看来我还需要深入研究才行
现在我的编程语言已经可以实现加减乘除, 我该如何一步步让我的编程语言支持 文件读写,网络请求呢? 大哥能给一些关键词吗? 我想去搜索,深入了解一下
谢谢大哥
谢谢大哥, 我去了解了一下 jvm,发现有很多语言都基于 jvm,如 Groovy 、Scala 等等
也明白了,基于 jvm 的好处, 但是好可惜,如此的话我得去学习 java
我目前掌握了 python, 所以 我在思考, 能否 基于 pvm ( python vm ) 来制作一门编程语言
不过可惜,似乎 pvm 远远比如 jvm 成熟、强大
Peter Norvig 的 BASIC 解释器:
https://github.com/norvig/pytudes/blob/master/ipynb/BASIC.ipynb
SICP (Python version):
https://wizardforcel.gitbooks.io/sicp-in-python/content/21.html
这一节是介绍如何写 scheme 解释器的,可以从上一节开始看起。
或许说,第一步你先看看别人咋做的,看看 go 编译器源码,或者是看看 jvm 源码