为什么有些程序员编写自己的编译器?
0 619
1
该提问暂无详细描述
收藏
2021-01-16 16:49 更新 karry •  2600
共 1 个回答
高赞 时间
0

要理解我的答案,必须首先了解“编译器”一词所包含的程序的广度(至少从我的角度来看)。当你对实际答案感到无聊时,请跳至最后一段。

在小型活动中,你可以在下午编写计算器程序。有了合适的工具并获得一些经验,你可以将其减少到不到一个小时。你甚至可以举一个例子,为你做一个90%想要完成的事情的开始,从而使这项练习本质上很简单。

在类似的范围内,你可能需要一些数据或一个规范的概念,而你希望将其变成更复杂的东西。有时,你首先要编写一些宏(emacs宏,awk脚本,perl或python程序)来处理它。

然后,你开始看到一种模式。你的宏变得更加风格化,并且一天之内就可以开始使用DSL(特定于域的语言)。

一周之内,你将获得该语言的翻译。一个月之内,它已经成为编译器。

另一方面,你拥有诸如Visual Studio,g ++,CLANG,LLVM,IntelliJ等之类的东西。你可以在一定程度上自定义其中的大多数。有些比其他容易。有些人的职业只是为公司移植和维护gcc / g ++安装。

但是,从头开始编写一个(并使其达到专业质量)不再是一个人可以在短时间内完成的工作。这种能力随着世纪之交而过去。要达到专业水平的工程量实在太大了,无法推高。

但是,所有这些大事情一次都是从小项目开始的,通常是学生项目。因此,从小范围开始,看看它是否会增长。你无需在堆的顶部替换上面的系统之一即可使用。而且,如果你的小型项目真正有用,那么你将吸引共谋者为你提供帮助,并且它可以成长为其中的一个整体,供下一代惊叹。

那么,程序员为什么要编写编译器?因为我们可以并且我们需要拥有自己的编译器来补充。当然,我们中的某些人会想象将最好的工具替换为同类的工具。我们大多数人甚至都无法接近实现这一目标。但要做一些有用的事情,根据我们的需要和我们的思维方式量身定制。那并不难。

收藏
2021-01-16 16:34 更新 anna •  3230