V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
find456789
V2EX  ›  问与答

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

  •  
  •   find456789 · 2020-12-22 17:31:47 +08:00 · 964 次点击
    这是一个创建于 1192 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可能会有很多人嘲笑吧


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

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

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


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

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


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

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

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

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

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

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

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

    所以,麻烦大家帮帮我

    谢谢

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

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

    如果你基础不是很好的话,它用很通俗的内容教了你如何写一个汇编编译器,以及一个高级语言编译器,等你看完了整本书,做完了书后面的习题。我觉得你会对如何实现一门编程语言清晰一点
    ming7435
        7
    ming7435  
       2020-12-22 18:20:09 +08:00 via iPhone
    是在上学还是已经工作了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   939 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:50 · PVG 04:50 · LAX 13:50 · JFK 16:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.