如果限制于狭义编译(生成低级汇编语言),那么需求确实少,尤其是前端。但如果不限于编译,而是一般的语言翻译(其前后端理论基础仍然是编译原理、形式语言那一套),那么其实这些知识可以适用于许多表面看上去与编译不相干的诸多领域。
后端生成与具体目标处理器关系太过密切,但对编译出的程序性能很重要,但这部分知识很难迁移到其它领域。各种扩充的指令集架构,如果缺乏通用性,仅对特定应用有效的话,或许直接用汇编语言重写一些专用函数库,或许比在编译器中增加新指令集来得容易,对于增强实际程序整体性能二者效果相差不大。
【 在 POWER8 的大作中提到: 】
: 前端需求才是真的少,而且工具比较完善了,定义好了文法,工具直接生成。而且前端一般和程序性能无关,而性能恰恰是编译器最关注的点。另外你能有几个机会做一个新的语言?
: 后端变化快,各种体系结构需求很难统一,在所谓体系结构的黄金时代,各种架构层出不穷。对程序性能影响主要在后端,需要各种trade-off。严格的说,没做过后端,不算做过编译器。
--
FROM 218.16.203.*