编译器与解释器对比
编译器类似于“线下”,它会先将代码转换成另一种程序结构,对于转换后的程序结构再和数据结构,生成最终的结果。
而解释器自身就可以投入数据以产生最终的结果,所以类似于“线上”。
另外编译器的效率比解释器高很多,效率可以包括时间、空间、能源消耗、网络请求次数等等。
编译器的结构
词法分析--语法分析--语义解释--优化--代码生成
在之前的编译器中,语义解析这个阶段比较“弱”,而在现代编译器中,词法分析和语法分析较“弱”,因为已经拥有很成熟的工具库,而优化阶段则不断加大。
编程语言的性价比
其实是讨论以下三个问题
为什么有这么多编程语言
满足于不同的应用需求,例如科学计算要求编程语言的函数式和并行计算能力,商业应用要求持久性、数据分析能力,系统编程要求底层控制、实时响应能力。
为什么还会诞生新的编程语言
真正的成本是教会别人如何使用一门语言,因此课程的老师做出预测:被广泛使用的语言很难做出改变,从另一个角度来说,就是开始一门新语言就相对容易。所以如果培训一门新语言的成本还可以接受并会让他产生更多的产出,那程序员们就会去选择一门新的编程语言。
什么是好的编程语言
从语言设计的角度来讲,没有。衡量编程语言的好坏有很多指标,程序员们也无法达成共识。 一门新的编程语言是为了解决一个领域存在的问题而诞生,但由于用户的惯性会让它在很长一段时间内存在下去。