当前位置:  开发笔记 > 编程语言 > 正文

(何时)我应该学习编译器吗?

如何解决《(何时)我应该学习编译器吗?》经验,为你挑选了2个好方法。

根据这篇http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html 文章,我绝对应该这样做.

引用温和但坚持不懈的执行摘要:如果你不知道编译器是如何工作的,那么你就不知道计算机是如何工作的.如果你不是100%确定你是否知道编译器是如何工作的,那么你就不知道它们是如何工作的.

我认为这是一篇非常有趣的文章,应用领域非常有用(帮自己一个忙,然后阅读它)但是又一次,我看到成功的高级sw工程师不熟悉编译器,或内部机器这个问题的架构,但确实知道以下列表中每个项目的一两件事:

编程范式(OO,功能,...)

编程语言API(C#,Java ..)和至少2个非常不同的人说!(Java/Haskell)

编程框架(Java,.NET)

一个让您提高工作效率的IDE(Eclipse,VisualStudio,Emacs,......)

编程最佳实践(例如,参见fxcop规则)

编程原理(DRY,高内聚,低耦合,......)

编程方法(TDD, MDE)

设计模式(结构,行为,......)

建筑基础(层,层,过程模型(瀑布,敏捷,...)

测试工具(单元测试,模型测试,......)

GUI技术(WPF,Swing)

记录工具(Javadoc,Sandcastle ..)

建模语言(可能是工具)(UML,VisualParadigm,Rational)

(毫无疑问,这里忘记了非常重要的东西)

并非所有这些工具都是成为一名优秀程序员所必需的(就像你不需要它时的GUI一样),但大多数都是.编译器在哪里进入,并且它们真的那么重要,因为正如我所提到的,许多程序员似乎在不了解它们的情况下做得很好,特别是,成为一名优秀的程序员可以看到众多知识领域几乎是终身成就: - ),即使编译器非常重要,是不是总有更重要的东西?

或者我今天应该订购'The Unleashed Compilers Unlimited Bible(24H ..)))?

对于那些阅读过该文章并希望立即开始学习的人:

在解析器,解释器和编译器上学习资源



1> Tom..:

如果你只想成为一个普通的编码器,并写东西......你不需要采用编译器.

如果你想学习计算机科学并欣赏并真正成为一名计算机科学家,你必须采用编译器.

编译器是计算机科学的缩影!它包含了每一个问题,包括(但不限于)AI(贪心算法和启发式搜索),算法理论(形式语言,自动机),系统架构等.

你可以看到许多计算机科学以惊人的方式汇集在一起​​.您不仅可以更好地理解为什么编程语言以他们的方式工作,而且您将成为更好的理解者.您将学会理解低级别,这有助于高级别.

作为程序员,我们经常喜欢谈论的事情都是一个"黑盒子" ......但事情顺畅了很多,当你了解了什么是在箱子里一点点.即使你没有构建一个完整的编译器,你一定会学到很多东西.您将看到解析背后的形式(并且意识到它不仅仅是一堆特殊情况被黑客攻击),还有一堆NP完全问题.你会明白为什么计算机科学理论对于实际事物的理解是如此重要.(毕竟,编译器非常实用......如果没有形式,我们就没有今天的编译器).

我真的希望你考虑学习它们......这将有助于你作为一名计算机科学家进入一个新的水平:-).



2> JesperE..:

您应该了解编译器,原因很简单,实现编译器会使您成为更好的程序员.编译器肯定会很糟糕,但在此过程中你会学到很多东西.这是改进(或练习)编程技巧的好方法.


每个人都说学习编译器会让你成为一个更好的程序员,但究竟如何呢?请添加一些信息,了解何时可以应用这些知识和一些经验来帮助解释这一点.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有