Categories:
Lex/Yacc 与 编译器
如何制作一个简单的编译器?
在自然语言深度学习没有出现之前, 计算机是如何把你写的高级代码转译到 Assembly Language.
如何把优美的 if else 转化为 MOV, ADD, MUL 等等的语言, 计算机是如何知道你写什么的。
这就是上世纪的浪漫 – 编译器
最简单的方法就是 Lex 和 Yacc , 别小看他们, 很多 Linux 的 Kernel Module 在编译的时候就需要用到 Lex 和 Yacc . 虽然这些东西已经复杂到很难理解了, 但是了解一下总归没有错误的。
**关于 Lex ** https://www.youtube.com/watch?v=54bo1qaHAfk
关于 Yacc https://www.youtube.com/watch?v=__-wUHG2rfM&list=PLkB3phqR3X43IRqPT0t1iBfmT5bvn198Z&index=2
你想写一个编译器吗?
https://www.youtube.com/watch?v=LCslqgM48D4
关于 Yacc 的历史:
Yet Another Complier-Complier, 其中 compiler-compiler 指的是能够编译 compiler 的 complier (禁止套娃!) , ***其实是 Compiler 的一部分***,负责生成 compiler.
其实 Parsing 本身就很难, 不然为什么会有这些工具呢?能去 Youtube 大学就去看吧。