开发一个编程语言,类似 Python ,一定要很高的学历才行吗?初中没毕业行吗?要补充什么知识
想自己开发语言, 可以用来做爬虫, 做网站 , 就行了, 这是第一个目标
但是我了解了一下,发现这里面门槛挺高的,似乎要很高的学历才行
所以想问问大家
谢谢
想自己开发语言, 可以用来做爬虫, 做网站 , 就行了, 这是第一个目标
但是我了解了一下,发现这里面门槛挺高的,似乎要很高的学历才行
所以想问问大家
谢谢
而且都 2020 年了,已经没有个人撸语言的意义了。
只有大厂才考虑自己搞新语言( Go 或者 TS 等)。
毕竟,没个几十个月薪几十万美刀的工程师,搞不定这玩意儿啊。
你自己一个人搞的话,首先得要几十年的时间。
学历不需要高,花时间读上去就行了。
活不到几百岁才是大问题。
举个例子,你可以在 JS 上开发一门新的语言。也可以在 PY 上开发一门新的语言。 只是,这个东西,别人看起来可能会说,是一个库。
如果从计算机底层写起来……这不是学历的事情了。是时间的事情。你出来社会,根本没时间做。真正空闲,让你钻研的时间,就是大学了。。。
2. 首先需要补充的知识是搜索引擎的使用方法。
3. 然后需要补充的知识都请自行搜索。
我这不是开玩笑,非常认真,搜索不是唯一的方法,但几乎是最好的方法了,比你上论坛问,甚至可能比你花钱请人教更管用。
现在的语言满足不了你的需求吗?
做一个入门的编程语言就是个大作业难度。
但是做一个 C++、C#级别的编程语言,全球没多少能做到的。
上很多“不仅我不懂,而且我觉得你也懂不了”的态度…… 不要妄自菲薄,感觉中国的程序员普遍很不错,但是在语言设计之类的方面和欧美还有差距,主要问题是不了解,周围的人也不了解就觉得很难。可能欧美有很多老程序员以前都做过这些,就有一小部分这些文化传承下来了,或者教育上可能也有差距把。
1. 推荐一个很不错的书 http://craftinginterpreters.com/
非常实用,一方面不像龙书或者 Stanford 的那个编译原理课那么费时间,另外一方面又不像其他的小教程那样过于凑合,里面还有很多额外的 consideration 。
只要看到前一小半写个 Tree walking interpreter 这个语言就完全能用了,后面写 VM Compiler 主要是为了效率。
这本书里面为了教育意义是手写的,但是每个小部分有现成工具可以用的时候脚注会告诉你。
明白道理之后,把工具也用一遍最后发现做编程语言也不过如此,困难 /麻烦的事情都被别人解决过了(比如 LLVM )。真正困难的是学别的东西,比如要造 Hindley-Milner 那种语言,首先得理解那套类型系统,再学习实现那套推断算法。如果只是发明一个跟 Python 差不多的普通语言,就没什么特别的坑了,这本书都教给你了。
2. 然后感兴趣或者想练手可以把这个当个作业做,用啥语言实现都行,花不了太多时间: https://github.com/kanaka/mal
3. 然后有兴趣深入可以再看 Stanford Alex Aiken 的编译器课程
你想干成一件事情,得看这件事情究竟需要哪些知识和能力,你不具备的话可以去学,当然去学这些东西可能还要求其他的知识和能力,就像你学习导数得懂得极限,想懂得极限得懂得基础算数,想懂得算数就得会数数。
你想自己做一门编程语言,可以去了解一下编程语言相关的理论知识和技能都有哪些,自己没掌握的就去学习。
当然如果只是应付差事,可以以各种现有的语言为基础套个壳子,改改关键字、加一些语法糖,比如之前出现的“木兰语言”就是用 Python 套的壳子。
如果你的终极目的不是想自己做一门编程语言,而是想做网站和爬虫,那没必要自己搞编程语言,流行的编程语言已经经受过了相当长的时间的检验,解决了大量问题,这些你都重新来一遍,还不如人家做得成熟,岂不是很浪费时间。除非你真的对各种编程语言的底层原理极其了解,胸有成竹可以做出一门更优秀的编程语言。