转CS不学编译原理的影响大吗可否举例说明
编译原理里面有许多有趣的内容,通过学习编译原理你可以学到正则表达式、上下文无关文法、有限状态自动机,下推自动机等等一些有趣的知识。你还可以知道自己写的代码是怎么样一步一步的编程计算机能够运行的二进制指令。如果你足够厉害的话还可以自己创造一门新的语言,然后动手实现这个语言的编译器。学这些东西对你有什么用呢?对于大部分人来说真心没啥用,你花几十上百小时学这个东西对一般程序员在工作上的帮助远小于花一下午学一学正则表达式。所以我的建议如果你是为了有用才去学,你真没必要学这个东西,如果是觉得好玩、有意思的话倒是可以学一学。给想学编译原理的同学推荐一些自认为还不错的资料:网易云课堂的编译原理课程,中科大的教授讲的,我觉得讲的还不错,但是内容不是很全面。http://mooc.study.163.com/course/1000002001?tid=1000003000#/info日本人写的一本书: 《两星期自制脚本语言 》可以对着那本书上的代码写一个脚本语言,结合公开课中学到的知识还可以自己做一些改进。https://book.douban.com/subject/25908672/ 还有最著名的 龙书:英文名:Compilers: Principles,Techniques,and Tools 作者:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman 中文名:编译原理技术和工具 这个讲的非常详细,如果你能全部看完就能够对编译器有比较透彻的理解。除了龙书还有虎书(Modern Compiler Implementation in C),鲸书(Modern Compiler Implementation in C),个人只看过第一本,对后两本不怎么了解。另外,如果你想用C语言实现编译器的话可以去看一下bison这个工具,这个工具中有附带使用方法说明。如果能玩转bison的话就能够轻松地写出一些比较简单的编译器。斯坦福大学也有自己的编译原理方面的公开课,我室友看过,课程代码我记不清了。好像分了两三个学期讲编译原理,课程作业要求学生自己实现一个编译器。想看的话可以自己搜一下。
■网友
不大,除了少数几个人。大部分人学了也不知道自己学了啥。
■网友
谢邀,转算法的话影响不大。本人为例,数学转CS机器学习,没有遇到过编译原理的问题,以后估计也不会遇到,不过有机会还是想学习一下,学的越多当然越好啦!
■网友
那你可能错过计算机科学里面比较精彩的部分了。
推荐阅读
- 外交谈判|
- 既然c程序编译为机器码直接操作硬件,为啥不同操作系统下需要重新编译
- 数独设计的原理是啥
- 华为交换机的二层端口隔离,三层通是啥原理
- 以前的山寨DVD播放机的超强纠错是基于啥原理的
- qq空间非常火的gif图,是啥原理
- 请教智能合约编译的问题
- 计算机组成原理和离散数学考研的话选哪一门简单点
- 云兔免流的原理是啥
- 像迅游加速器这种加速软件的工作原理是啥怎么样才能分辨一个加速器对你有没有实际用处