RT,刚在知乎看到写编译器对人能力的提升,之前又围观过RPP的开发,因为暑期学过计算机导论课程又在学习黑免的过程中了解了一下基本汇编,感觉理论体系逐渐丰腴。是否有必要规划编译器?虚拟机?这对于我未来可能的工作都是百益的。
开发自己的语言及其编译器是富有吸引力的。随着知识的增长,所开发的编译器能力渐丰。
我觉得还是开发一个已经完成的语言的编译器比较好。
原因在于如果自己设计语言也就是整个换个关键字罢了,限于能力,实在是不觉得现在编程语言有没什么需要改进的地方。
c语言最为切实,了解较多,相对于其它语言更为精炼更贴近底层。
我所理解的编译器是指:将代码按照某种规则转换为更底层的目标代码。
从这个角度来看,它符合TargetMarker的要义。TargetMarker更像是一款图灵机,很难想象计算机上的某种运算不属于它。
反汇编典型的程序实际上是从反向的角度证实编译器的优秀,它的优化已经丧心病狂。
谈起优化,对编译器的工作做一下简单分类:
1语法解析
A逻辑运算
B算术运算
2优化
3内存堆栈的管理
4模块间调度