为什么动态类型语言被解释而静态类型语言是编译时语言?

时间:2018-12-19 20:33:44

标签: java php python typed

我一直听说编译时间语言(Java,C ++等)是静态类型的,而解释语言(PHP,Python等)是动态类型的,但是问题是为什么它们如此,为什么不能动态地编译时间语言类型,反之亦然?

2 个答案:

答案 0 :(得分:1)

这不是真的。 Java字节码可以被解释,实际上直到大约JDK 1.1.5ish才被解释。 JavaScript经常被编译。

但是,动态语言的解释器确实很容易编写。也许尝试一下。静态类型的语言要困难一些,因此您还是应该编译它。另一方面,合理地编译动态语言需要付出一些努力。

答案 1 :(得分:1)

这严格取决于语言,例如Java具有混合模式,其中仅解释较少运行的代码。代码编译可能会很昂贵,因此,如果编译后的代码没有多次执行,那么花在编译上的精力就不值得了。