【发布时间】:2011-03-02 00:41:20
【问题描述】:
是否有任何针对 LLVM 的语言:
- 是静态类型的
- 使用类型推断
- 是函数式的(即 lambda 表达式、闭包、列表原语、列表推导等)
- 拥有一流的面向对象特性(继承、多态、混合等)
- 拥有复杂的类型系统(泛型、协变和逆变等)
Scala 是所有这些,但只针对 JVM。 F#(在某种程度上是 C#)是大多数(如果不是全部),但仅针对 .NET。有哪些类似的语言以 LLVM 为目标?
【问题讨论】:
-
您对这么小的平台提出了很多要求。如果您找到符合您所有条件的东西,我会感到非常惊讶。为什么需要专门使用 LLVM?
-
@musicfreak:有很多语言提供上述全部或大部分功能,可以编译成汇编。
-
语言不针对任何特定的处理器架构,无论是物理 CPU 还是用软件编写的虚拟机。语言的实现针对特定架构。例如 Sun 的 Java 实现以 Sun 的 JVM 为目标。原则上没有什么可以阻止有人将 Java 本地移植到 x86 或 ARM 甚至微软的 CLR。
-
@JeremyP:GNU GCJ 将 Java 编译为本机代码,IKVM.NET 将 Java 编译为 CIL。 q.e.d. :-)
-
一流的对象AND一流的函数是在任何平台上都可以找到的稀有面包。
标签: programming-languages scala functional-programming llvm