我正在寻找一种具有以下特点的语言:
- 与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")!)。并且可以编译成任何汇编/中间语言。
C:libCLang,Ch;C++:Ch;任何脚本语言;其他?
- 可以编译为 x86 .dll/.so 或 .cpp(离线或运行时)
C:gcc,libClang 等;C++;C#;D;Python;Go;OCaml;Lua:LuaJIT;Ruby:Ludicrous
- 最好带有调试器 :)
简而言之
我想要一个静态类型的可嵌入脚本语言,可以进行编译以提高性能。
有什么想法?评论?任何输入?谢谢!
编辑 目前有效的建议:
- Java: http://download.oracle.com/javase/6/docs/api/java/lang/Compiler.html
- C#: http://support.microsoft.com/kb/304655/en-us
- C++, 由Ch解释,使用普通编译器进行编译,希望与GCC / VC兼容
- Racket: http://pre.racket-lang.org/docs/html/inside/overview.html#%28part._embedding%29
所以现在比我最初想象的更有希望 :) 谢谢大家!我会继续调查并在对此有更多经验时接受一个答案。