如何学习编译原理
Posted woai3c
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学习编译原理相关的知识,希望对你有一定的参考价值。
对于没有计算机科学基础的程序员或初学者来说 一上来就看龙书 虎书是行不通的 全是理论知识 看得想睡觉
我还试过看网易云大学计算机专业的编译原理课程 也是看得一头雾水 看到80多讲就看不下去了
另外 LISP(计算机程序的构造和解释)这本很多人推荐的书其实并不适合初学者 前3章和后面几章难度差别有点大 可能是自己水平不行 看LISP解释器和编译器那两章也是看不懂 虽然强迫自己看完 但是最后还是不懂编译原理到底是怎么回事
不过 后来我还是通过学习一本书的知识 写出来了一个简单的编译器
这本书简单 通俗易懂 对计算机体系知识有一个较全面的介绍 而你只需要会一门编译语言就行了 它就是
《计算机系统要素》
这本书前面5章讲的是硬件知识 虽然跟编译原理没什么关系 但是对于了解计算机硬件知识是很有用的 重点是通俗易懂
后面的章节就是和编译原理有关的知识了
书里的内容介绍了
汇编编译器(将汇编语言翻译为机器语言)
VM编译器(将虚拟机语言翻译为汇编语言)
编译器(将高级语言翻译为虚拟机语言)
不要看到有3个编译器就觉得难 其实相对于上面介绍的书籍 算是非常简单了
我大概花了1个多月的时间完成了这本书的所有项目 最终写出了一个编译器 算是对编译原理有了一个比较全面但不深入的了解吧 这个时候再去看龙书 虎书 就不会感觉很吃力了
附上我完成这本书所有项目的答案
https://github.com/woai3c/nand2tetris
再最后说一句 这本书的内容真的是通俗易懂!通俗易懂!通俗易懂!
以上是关于如何学习编译原理的主要内容,如果未能解决你的问题,请参考以下文章