什么是现有Java应用程序的良好嵌入式语言?

Ber*_*own 2 java clojure embedded-language ioke

我想在我的应用程序中嵌入dsl或现有的完整语言.它应该是一个简单,完整的图灵完整语言,但简单而轻巧,可以解释代码而不需要太多开销.

其他"过程"也不会影响任何其他过程.

我正在考虑使用Clojure并在Clojure代码上调用Clojure解释器/运行时编译器,但Clojure运行时需要比我需要的时间长得多.此外,我对使用Clojure语言进行此项目并不过分兴奋.我在考虑更多程序性和C类.

我考虑过Ola Bini的Ioke语言.http://ioke.org/index.html

另外,我考虑在Scala中编写DSL?或者使用现有的DSL.

更新:看起来Rhino是一个很好的示例嵌入式语言.

http://www.mozilla.org/rhino/tutorial.html

hal*_*ave 14

JavaScript怎么样?

http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html

它内置于Java 6中.

  • 只是为了澄清:JavaScript不是*Java 6的官方部分.但是Sun JRE/JDK附带了一个JavaScript引擎.Mac OS X JRE*不附带JavaScript引擎,并且是完全有效的Java 6 JRE.所以要真正便携,你必须附带一个ScriptEngine(例如Rhino). (3认同)

Dón*_*nal 9

Groovy的动态特性非常适合编写DSL.事实上,Grails Web框架实现了大量Groovy DSL,以及大量教程和书籍,教授如何使用Groovy编写DSL.

另外,Groovy的语法几乎是Java的超集,所以它应该相对容易上手(与Clojure相比).在Java和Groovy代码之间调用是无缝的,因此您可以轻松地在Groovy代码中使用所有您喜欢的JDK类.

我倾向于避免IOKE因为它不成熟而且出于DSL的目的,我认为像Groovy或JavaScript这样的动态类型语言是比Scala更好的选择.