动态/静态语言和编译器/解释器

标签 dynamic compiler-construction static programming-languages interpreter

我有一些问题:

  • 动态编程语言总是解释型的?我想是的,但是为什么呢?
  • 有没有带有静态类型系统的动态语言?
  • 具有静态类型系统的编程语言总是经过编译的?

换句话说,以下之间确实存在联系:

  • 静态/动态类型系统和静态/动态语言
  • 静态/动态类型系统和编译器/解释器
  • 静态/动态语言和编译器/解释器

最佳答案

类型系统和执行方法之间没有内在的联系。动态语言可以编译,静态语言可以解释。可以说,静态类型系统对于在执行之前编译的程序非常有意义,作为在程序执行之前捕获某些类型错误的方法。但是,动态类型系统解决的问题与静态类型系统不同,解释执行解决的问题也与编译不同。

参见What to know before debating type systems .

关于动态/静态语言和编译器/解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926825/

相关文章:

c - C 中的动态全局变量

asp.net-mvc - ASP.NET MVC : creating controls dynamically

compiler-construction - 设计选择的理由会导致JVM/CLR语言长时间启动?

Java 找不到任何数组的符号?

c# - 为什么不能在泛型静态类中声明扩展方法?

C 连续二维数组指针运算的泛型函数

javascript - 好奇 : is it possible to have dynamic Ajax data variable names?

c - 如何从汇编代码构建数据依赖图

Java、泛型和静态方法

java - 静态 JComboBox 未在 GUI 中显示