当前位置:  开发笔记 > 开发工具 > 正文

程序员学习如何构建编译器是否有益?

如何解决《程序员学习如何构建编译器是否有益?》经验,为你挑选了4个好方法。

对于不同类型的程序员来说,有很多种.一般来说,程序员学习如何构建编译器是有益的吗?在什么情况下需要编译器编程?



1> ihumanable..:

编译器编程是一个有趣的主题,它有一些很大的价值.在大学里,我选择了语言设计与实施.我个人很感激能够接受它.我们学习了实现词法分析器,解析器和字节码发射器的各种方法.

我看到的真正价值在于它照亮了我依赖的黑盒子,让我的程序运行起来.它让我更好地了解了编译器的工作原理,并帮助我更好地理解编译器错误.

将源代码编译成代码的过程实际上是大多数程序执行的一般操作,接受一些输入,执行某些过程并输出结果.编译器有一些非常明确的想法,关于如何最好地完成这项工作.

我认为这对我有益,目前我在基于Java的网络应用程序上工作.



2> Mike B..:

我正在阅读"龙书"(编纂者),在本书的开头,您将受到以下欢迎:

尽管很少有人可能为主要编程语言构建甚至维护编译器,但读者可以将本书中讨论的思想和技术应用于通用软件设计.例如,用于构建词法分析器的字符串匹配技术也已用于文本编辑器,信息检索系统和模式识别程序.无上下文语法和语法导向定义已被用于构建许多小语言,例如生成本书的排版和绘图系统.代码优化技术已用于程序验证器,以及从非结构化代码生成"结构化"程序的程序中.

简而言之,您不仅要学习如何构建编译器.您将学习许多不同的低级技术,以帮助您进行日常编程.虽然有人说这是一本过时的书我仍然喜欢它,我会推荐它,即使读数有点沉重.如果你确实得到它,请留出大量时间阅读并理解它.


我的"龙"书的副本是我最珍贵的财产之一.我的女儿现在正在完成拼贴画,当她还是个小孩时,她正在咀嚼它的角落.

3> sk...:

我在大学里学了两门编译器,发现它们很有用,因为:

编写编译器需要掌握计算机科学的许多领域的知识 - 正则表达式,无上下文语法,语法树,图形等.它可以帮助您了解如何将计算机科学理论应用于现实世界的问题.

通过了解编译器如何生成和优化代码,您将浪费更少的时间自己进行愚蠢的"优化".

扫描/删除文件并从中构建语法树的过程适用于更大的问题集,然后只是构建编译器.

帮助"概括"编程语言 - 一旦你看到每种编程语言最终都成为机器代码,它会使学习新语言变得更容易,因为你会发现每种语言只是表达相同基本思想的不同方式.

有些人反驳说,你可以用你的时间做更多有用的事情,比如学习一种可以帮助你找到工作的流行编程语言或图书馆(这个论点经常被用作不学习汇编语言的理由).但是,了解编译器的工作方式可能会使学习新的编程语言变得更容易(参见第4点).



4> Michael Borg..:

虽然很少有程序员最终不得不实现编译器,但编译器构建的早期阶段,即lexing和parsing可以更频繁地出现:谁不必为某种奇怪的文件格式编写解析器?通常,这些都很简单,无需编译器构建经验即可管理,但并非总是如此.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有