非码农想学点 C 然后写 Interpreter/Virtual Machine/Compiler 玩儿,求问数据结构和算法这块需要多少知识?

2019-10-09 09:32:13 +08:00
 levelworm
目前工作是 BA,主要是写 SQL 查询。之前自学过 C++,不过写的很烂。现在在看 C,想要以后自己写解释器编译器之类的玩儿。求问下看编译原理之前,数据结构和算法这块需要懂得点啥?类似的项目我没做过,可能有点相关的就是一个简单的 JSON parser,但其实是看着 VB 代码搬过来的。

我学 C++的时候能够写堆栈、链表和二叉搜索树。但是高级一点的,比如平衡二叉树和图我都没学会。

要求不高,能够手撸一个短小精悍的脚本语言就成了。查了下似乎前端已经比较自动化了,但是我还是想手撸 Parser。我已经三十多岁了,不指望转码农,就是当初玩无冬之夜的时候特别着迷它的脚本语言,写了不少脚本,自那之后就一直想自己弄一个。
3141 次点击
所在节点    程序员
24 条回复
YourLord
2019-10-09 14:10:01 +08:00
BA 为啥要学 C/C++?

Python 用处更大。
seraphv3
2019-10-09 17:17:25 +08:00
我看过虎书 C 语言版前半部分,照着做了学校的课程大作业。做解释器应该容易点,要做汇编代码生成,寄存器分配真是难,不管 x86 还是 MIPS。印象中数据结构和算法有一些,像符号表(里面有 hash 运算,类似于实现了一个 java 的 HashMap )、语法树、中间代码树,不过没有什么需要预先学习的,用到的时候看看就行了
tankren
2019-10-09 17:23:01 +08:00
是我就不会自学这种 怎么学都比不上专业的 对自己工作 /职业发展无用的 技能
lazydog
2019-10-09 17:32:42 +08:00
github 上的 build your own x 项目可以帮到你!

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

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

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

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

© 2021 V2EX