关于类型推断语言的问题

时间:2016-09-12 12:28:35

标签: programming-languages type-inference

我对类型推断语言的问题很少。通过说类型推断,我指的是所有那些不需要在代码中显式声明数据类型的语言。

我认为这些语言为开发人员提供了更大的灵活性,但我想为以下问题找到答案。

  1. 这些语言在运行时是否会消耗更多时间来推断实际数据类型?

  2. 这些语言可以用于企业应用程序的开发吗?它们是否支持可维护性和可重用性?

2 个答案:

答案 0 :(得分:1)

首先让我们澄清一些术语:

  • 静态类型语言是静态知道类型的语言,即不运行程序
  • 动态类型语言是指在运行时间之前类型可能无法识别的语言
  • 类型推断是静态确定代码中不包含显式类型注释的类型的过程。

因此,当我们讨论不需要显式类型注释的语言时,基本上有两类:

  • 动态输入语言
  • 静态类型语言,通过类型推断而不是类型注释来计算类型

动态类型语言通常在运行时需要额外的类型检查,并且优化空间较小(因为优化器可以在知道类型时优化更多内容)。因此动态类型存在一些性能缺陷。但是,根据语言的不同,通过应用类型推断来尽可能静态地计算出类型,可以补偿其中的一部分。肯定有用动态类型语言编写的企业应用程序。

带有类型推断的静态类型语言在运行时的执行速度与没有它们的静态类型语言不同。只有编译时间可能更长。

答案 1 :(得分:0)

  

这些语言在运行时消耗更多时间来推断实际数据类型吗?

许多带有类型推断的语言都使用编译器。编译器完成了类型推断所需的所有工作,因此没有运行时成本。

  

这些语言可用于开发企业应用程序吗?

您一直在询问是否可以将大量不同的语言用于大型不同的域。我不认为问这个问题有多大意义。但总的来说,是的,带有类型推断的语言可用于开发企业应用程序。

  

它们是否支持可维护性和可重用性?

这是一个非常模糊的问题。我说你可以用任何主流语言编写可修改和可重复使用的代码,包括那些带有类型推断的代码。