初中没毕业,目前掌握了初级的 Python 知识,想实现一门类似 go 语言的编程语言,要循序渐进的补充哪些知识点?

2020-12-22 17:31:47 +08:00
 find456789

可能会有很多人嘲笑吧


我目前掌握了用 python 写爬虫、网站。。 基本都是调用一些库吧, 俗称掉包侠

我还会一些 js 、ts 、react,sql 的知识,

这些知识应该或多或少的帮助我更好的、更容易的实现编程语言吧


我最近看了编译原理,明白了编程语言是先由文本,经过词法分析,然后语法分析,最终成了 ast,下一步我就有些蒙了

我基于 python 制作了一个解释性的编程语言 https://www.v2ex.com/t/733404 技术很落后,本质就是 ast 后, 用 visitor 模式, 把 打印() 绑定到了 Python 的 print() 函数,继续努力的话,可以实现一门比较完善的语言,不过由于是用 python 解释的,所以性能会很慢


我想更进一步提高自己的水平,我想开发一门编译型的语言,我了解到了 llvm, 也根据各种资料,实现了简单的打印、减法、减法功能, 且可以编译成二进制, 但更深入的功能,我目前能力做不到, 而且我也似乎进入了死胡同了,暂时无法取得进步了

我想实现 go 那样的语言, 有强大的性能, 可以编译执行,最好还可以解释执行, 但我简单的了解了一下 go,发现这很困难,至少对于目前的我来说,很困难

这是一场马拉松,必须要很久时间才能做到,需要很多知识沉淀,但我不知道该如何学习

目前我所知道的,我需要学 [操作系统] 、 [编译原理] 可能还要学别的

对于学习路径,我还很模糊,我知道这路上会有很多坑,所以我想得到各位的指点

在学习资料里,也有很多资料,可能对我没必要学,某些知识可能已经过时, 但我不会区分, 所以想麻烦大家帮我推荐一些资料

目前来看,我应该会有恒心,坚持长久的去学习

所以,麻烦大家帮帮我

谢谢

现阶段,我觉得可能我要深入学习 python 的底层,通过 python 来对某些重要的知识点理解更加透彻
然后 ,完善我那个基于 python 的 解释性语言,为以后尽可能打下一些基础?

976 次点击
所在节点    问与答
7 条回复
find456789
2020-12-22 17:33:01 +08:00
我可能陷入了某种细节里,无法看清全局了,我不知道全局是什么,不知道有这方面(操作系统,编程语言,底层)的思维导图吗
wangkun025
2020-12-22 17:36:37 +08:00
这么有学习的动力,干嘛不念个好学历呢?这才是捷径。
yzbythesea
2020-12-22 17:41:50 +08:00
1if5ty3
2020-12-22 17:44:37 +08:00
羡慕楼主的学习能力
carlclone
2020-12-22 17:48:08 +08:00
我的路径分享一下,看不看的进去就靠自己了
Cs143 cs243 cs343
极客时间也有两门编译相关的
到 github 上找一些玩具 compiler 看看
FantaMole
2020-12-22 17:57:55 +08:00
我还真有本书很适合你,《计算机系统要素:从零开始构建现代计算机》。这本书在我还在读大学的时候好像就绝版了。对我来说这本书相当有意义, 虽然内容很简单,但是是真正引导我把大学几年学的知识,从最底层的数电、模电到最高层的操作系统串联到了一起

如果你基础不是很好的话,它用很通俗的内容教了你如何写一个汇编编译器,以及一个高级语言编译器,等你看完了整本书,做完了书后面的习题。我觉得你会对如何实现一门编程语言清晰一点
ming7435
2020-12-22 18:20:09 +08:00
是在上学还是已经工作了?

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

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

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

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

© 2021 V2EX