寻找支持解释和本机编译模式的新语言

时间:2010-12-20 17:25:07

标签: programming-languages scripting-language interpreted-language compiled-language

我目前使用Perl,Python,C#,C,C ++,Java和其他一些语言进行编程,我正在寻找一种新的语言,可以在进行个人项目时用作主要语言。

我目前的标准是:

  • 可以作为解释语言运行(即运行而无需等待编译);
  • 可以编译为本机代码;
  • 是强类型的(即使是可选的);
  • 支持您想要调用它的宏/模板/代码变形/ wtf;
  • 拥有相当数量的库,或者可以轻松访问它们;

想法?建议?

3 个答案:

答案 0 :(得分:5)

我建议Haskell符合您的标准。

  • 可以作为解释语言运行吗?是的,通过GHCI。
  • 可以编译为本机代码吗?是。
  • 是强类型的吗?非常如此。也许即使是今天最强类型的语言,除了像Agda这样的一些定理证明。
  • 支持宏/模板/变形?如果你使用模板haskell。这是该语言的可选扩展,因此大多数库不使用宏。我自己没有使用模板haskell所以我不能评论它是否有用。
  • 有不错的图书馆支持吗?标准库也不错。还有Hackage,一个开放的Haskell库存储库,有点像CPAN。

此外,听起来您已经了解了很多命令式/面向对象的语言。恕我直言,如果你学习另一个langs。它可能是你在其他地方已经看到的功能略有不同的排列。在工具箱中添加其他编程范例(如函数式编程)可能是一种更好的学习体验。虽然我猜这是否优势取决于你是想学习新事物还是快速生产。

答案 1 :(得分:3)

Common Lisp适用:有一个可选的输入,高效的本机编译可用,强大的REPL使其成为脚本的完美选择,并且有一个强大的宏元编程。

OCaml也适用于CamlP4进行元编程。

答案 2 :(得分:-1)

Scala呢?它确实运行脚本,尽管它们首先被编译(透明)。我不确定你的代码变形等是什么意思,但它对DSL来说非常好。它满足您的所有其他要求 - 编译与Java一样,强类型,并且具有合理数量的自己的库以及所有Java。我还是初学者,但到目前为止我都喜欢它。