查看: 4847| 回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

[专业/学校/教授] 大四秋季选课的一些问题,请问现在编译原理有必要学吗?

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
希望有几年工作经验的前辈指导一下,编译原理 (compiler)课程是否有修的必要,不清楚对未来的工作会有怎么样的帮助。是属于情怀类课程还是很重要的课程。因为这节课工作量还挺大的,准备平衡一下大四秋季找工申请和上课的workload,谢谢大家了!. From 1point 3acres bbs

上一篇:我在美国上电脑网络(computer network)课程的感受和总结
下一篇:转专业申请MIS会比直接申请CS好吗
推荐
magicsets 2018-5-22 00:34:01 | 只看该作者
全局:
我认为编译器和PL方面的积累是CS技术专家的核心竞争力之一,要发挥作用需要其它各方面能力都达到一定台阶才行。对于初级程序员的“本职工作”用处不大,但也不失为一种略微自我实现的消遣(很多人做个FP解释器就感觉上天了...)以及提升生产力的有力辅助。

如果PL/编译器底蕴好的话,下面几点一般也会比较强:
(1) 抽象能力
这在工程实践中是非常非常重要的能力,具体内容太广就不展开了... 有的项目几十万行代码仍然结构清晰,而有的代码就算只有100行且保证了规范性,仍然感觉是在堆屎。

(2) 学习新语言/工具/框架,并快速成为领域专家的能力. 1point 3acres
初级阶段我们学习新的语言/工具一般是learn by example并进行归纳,语言对于我们来说是一个黑盒子,只能看到其外延。这导致我们对语言的理解是碎片化的,对其内部机制只能靠猜,而且还经常猜错(所谓踩坑)。初级程序员所经常使用的“撞大运”调试法,根源也在于不理解所使用语言的内在机制(也即语法组合所映射的底层语义)。

而有较强的PL/编译器功底的话,就可以直接去看语言的specification,去看编译器源码的语法文件和中间表示(intermediate representation)。你所看到就是语言的内涵,所使用的学习方法是演绎。你可以看到所有组成部分的联系,洞察到语法方面优美的正交性并认知到该语言所存在于源代码中的最真实的语义。

(3) 制作生产力工具的能力
也就是一些“小轮子”,将重复工作自动化,可以自动生成boiler plate代码的工具,等等。
这方面做高级一点的话需要Domain Specific Language的设计与实现上的积累,也是非常有用和有成就感的技能。-baidu 1point3acres
. 1point 3acres
(4) 创造新语言/工具/框架的能力
并能够在此类项目中成为主力,等等
..
所以有时间的话还是建议学一下“编译原理”、“程序设计语言概论/原理“的课程。当然上课所讲的内容你在当前阶段不一定能完全消化,也没有足够的积累去把握整个知识体系、认识到各个知识点在实践中的意义及相互间的联系。但是,在学生阶段打个底有助于帮你建立心理优势 —— 在以后的工作中你不会畏惧或者回避这个知识体系,在需要的时候可以从容地进行再学习从而得到快速的成长。
回复

使用道具 举报

全局:
没啥用,别上了
回复

使用道具 举报

🔗
kathywyq88 2018-5-21 15:53:41 | 只看该作者
全局:
据说算CS的核心课程吧
回复

使用道具 举报

🔗
jeff_xu001 2018-5-21 15:56:05 | 只看该作者
全局:
情怀类课程,不是操作系统那样必须的,但时间宽裕的话读一下还是很好的
回复

使用道具 举报

🔗
jeff_xu001 2018-5-21 15:56:45 | 只看该作者
全局:
kathywyq88 发表于 2018-5-21 15:53
. 1point 3acres 据说算CS的核心课程吧
. 1point3acres
确实核心课程,但不读一般影响并不是很大
回复

使用道具 举报

🔗
 楼主| jir1996 2018-5-21 16:04:29 | 只看该作者
全局:
jeff_xu001 发表于 2018-5-21 15:56
确实核心课程,但不读一般影响并不是很大

据说是区分科班与非科班的课程之一,不过性价比与优先级可能确实没那么高。所以还是建议有空闲时间再补吗?可能工作之后就没情怀看这种课了
回复

使用道具 举报

🔗
jeff_xu001 2018-5-21 16:51:22 | 只看该作者
全局:
jir1996 发表于 2018-5-21 16:04. Waral dи,
据说是区分科班与非科班的课程之一,不过性价比与优先级可能确实没那么高。所以还是建议有空闲时间再补吗 ...
.
言过其实了,区分科班不是这门功课,OS 也许可以.google  и

确实对水平提高长期是很有帮助的,但时间付出也许划不来: work load 会比较大.--
. 1point3acres.com
以后有时间工作有需要再补不迟

. ----BTW,很多人工作后会发现根本没时间,而且根本没必要!
. Waral dи,
FYR
回复

使用道具 举报

🔗
oneexy 2018-5-22 00:02:07 | 只看该作者
全局:
compiler和pl在美国连个核心课都算不上,而且除非你做数据库底层,系统底层或者pl本身,一辈子基本都用不上
回复

使用道具 举报

🔗
 楼主| jir1996 2018-5-22 03:47:12 | 只看该作者
全局:
oneexy 发表于 2018-5-22 00:02.1point3acres
compiler和pl在美国连个核心课都算不上,而且除非你做数据库底层,系统底层或者pl本身,一辈子基本都用不上

其实我也觉得工作中也用不到,不过感觉这种课是不是一种类似基本功的课程?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表