3

我正在寻找具有以下功能的语言:

  • SWIG 兼容的或类似的。与 C++ 的兼容性应该很容易:

C, C++, AllegroCL, C# - Mono, C# - MS .NET, CFFI, CHICKEN, CLISP, D, Go , Guile, Java, Lua, MzScheme/Racket, Ocaml, Octave, Perl, PHP, Python, R, Ruby, Tcl/Tk

  • 静态类型:没有像 Lua 中的myObject.CompletelyNewFieldWithUnknownSideEffects = GuessWhat() 。没有像 php 中的isinstance() 。没有像 Python 中的newVariableOfUnknownType = foo() 。最好也是强类型( "Hello"+"0" 而不是 "Hello"+0 ):

C、C++、C#、D、Go、Java、Ocaml、PHP、Ruby?其他 ?

  • 可以在运行时编译(和 exec("gcc plugin.cpp")! 不算!)成任何 asm/中间语言。

C:libCLang,Ch;C++:中文;任何脚本语言;其他 ?

  • 可以(离线或运行时)编译成 x86 .dll/.so 或 .cpp

C:gcc、libClang等;C++;C#; D; Python; 去; OCaml; Lua:LuaJIT;红宝石:可笑

  • 最好带调试器:)

TL;博士

我想要一种静态类型的、可嵌入的脚本语言,可以为 perf 编译。

想法?注释 ?任何形式的输入?谢谢 !

编辑到目前为止的有效命题:

所以希望比我最初想象的要多得多:)谢谢大家!我会继续调查,并在我对这个主题有更多经验时接受答案。

4

4 回答 4

1

看看 OpenCL,也许?它是围绕一种在运行时编译的类 C 语言而设计的,但 AMD 最新的 SDK 也提供了离线预编译的能力。

这不是一个显而易见的选择,因为它被推广用于 GPU,但它被设计为比这更广泛适用,并且可以在普通 CPU 上运行。

于 2011-05-06T19:30:30.063 回答
1

Ruby 在您的每个列表中,Rubinius编译器将其编译为字节码。这能满足你的需求吗?

第二次尝试:你看过Boo吗:“一种面向对象的静态类型编程语言,用于公共语言基础设施”

于 2011-05-06T17:06:27.400 回答
1

这几乎肯定不是一个有用的答案,但 Java 确实适合您的所有要点。

  • 您可以使用 JNI、JNA 或 SWIG 与本机代码对话。
  • 无需博士学位即可获得静态类型
  • 可以通过编译器 API在运行时编译
  • 由一些优秀的编译器在运行时编译为本机代码(也有离线编译器)
  • 有许多调试器

问题在于它不完全是一种脚本语言。你需要编写相当多的样板来完成一个小任务,而且 API 通常相当复杂。

于 2011-05-06T17:20:52.037 回答
0

我很确定 D 是可编译的并且可以作为脚本运行。

于 2011-05-06T16:36:36.530 回答