InfoQ|coder 差在哪儿?| 极客时间,从编译原理出发,看看你和资深

我是宫文学 , 北京物演科技CEO 。 最近几年 , 我参与了一些微服务相关的项目 , 发现前几年大家普遍关注的技术问题 , 比如有状态的服务(StatefulService) , 并没有随着新技术的出现 , 而得到很好地解决 , 反而更加恶化了 。
所以 , 我从去年开始设计 , 计划采用新的计算范式 , 发明一门新语言 。 这促使我更加关注编译技术的前沿动态 , 想把这些动态、理念和自己的实战经验都分享出来 。
与此同时 , 在我第一季专栏《编译原理之美》中 , 很多同学也反馈:想在理解编译原理的概念、理论和算法的基础上 , 更加深入地把知识与实践相结合 。 要做到这一点 , 无外乎是解决这么几个问题:
语法分析方法有自顶向下和自底向上两种 , 自己动手实现时 , 该选择哪一种?选择自己手写 , 还是工具生成?
语义分析中要做属性计算 , 但具体到自己熟悉的语言 , 到底计算了哪些属性?如何完成引用消解和类型检查?
【InfoQ|coder 差在哪儿?| 极客时间,从编译原理出发,看看你和资深】编译器中会使用IR , 实际使用中的IR到底是什么样子?
编译器会优化我们写出的代码 , 但具体到各个语言 , 其背后的逻辑和优先级是怎样的?如何写出便于编译器优化的代码呢?
类似的问题还有很多 , 总结起来就是:我们用的编译器 , 到底是怎么写出来的 。
现代语言的编译器 , 往往整合了最前沿的技术 。 掌握真实编译器的实现机制 , 有助于吃透语言的核心特性 , 更高效地运用它 , 进而提升我们的技术水平 。 而且 , 阅读语言编译器的源代码 , 跟踪它的执行过程 , 也会让你获得对编译器的第一手理解 , 是高效学习编译原理的重要途径 。
所以 , 我和极客时间联手打造了新一季专栏《编译原理实战课》 。 在专栏中 , 我会带你巩固编译原理的核心基础知识 , 深入解析7大主流语言的编译器源码 , 帮你掌握真实编译器的实现机制与关键算法 , 进而站在更加宏观的视角 , 从编程语言的设计层面理解编译原理 。


    推荐阅读