静态类型,可嵌入,可编译的脚本语言

时间:2011-05-06 16:31:52

标签: scripting-language compiled-language

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

  • 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

  • 静态类型:没有 myObject.CompletelyNewFieldWithUnknownSideEffects = GuessWhat()就像在Lua中一样。在php中没有 isinstance()。在Python中没有 newVariableOfUnknownType = foo()。最好是强类型(“Hello”+“0”而不是“Hello”+0):
  

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

  • 可以在运行时编译(和exec(“gcc plugin.cpp”)!不算数!)到任何asm / intermediate语言。
  

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

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

C:gcc,libClang等; C ++; C#; d;蟒蛇;走; OCaml的; Lua:LuaJIT; Ruby:荒唐可笑

  • 最好使用调试器:)

TL; DR

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

想法?评论 ?输入什么?谢谢!

编辑目前为止的有效提议:

所以有比我原先想象的更多的希望:)谢谢大家!我会继续调查,并会在我有更多经验的时候接受答案。

4 个答案:

答案 0 :(得分:1)

Ruby位于每个列表中,Rubinius编译器将其编译为字节码。这符合您的需求吗?

第二次尝试:你看过Boo:“面向对象的静态语言基础设施的静态类型编程语言”

答案 1 :(得分:1)

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

  • 您可以使用JNI,JNA或SWIG与本机代码通信。
  • 在不需要博士的情况下进行静态输入
  • 可以在运行时通过compiler API
  • 进行编译
  • 在运行时由一些优秀的编译器编译为本机代码(并且还有离线编译器)
  • 有多个调试器

问题是它不完全是一种脚本语言;你需要写很多样板才能完成一项小任务,并且API通常都很合理。

答案 2 :(得分:1)

或许可以看看OpenCL?它是在运行时编译的类C语言而设计的,但AMD最新的SDK也能够进行离线预编译。

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

答案 3 :(得分:0)

我很确定D是可编辑的,可以作为脚本运行。