扩展Jython语法

时间:2009-08-26 00:41:10

标签: python jython dsl

我想为Jython添加语法,以便为用户启用更好的API。例如,像NumPy这样的矩阵库将受益于像Matlab的:**中缀运算符一样的矩阵和元素运算。

您可以使用以下方法在Octave中创建矩阵:

A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]

比NumPy好得多:

b = array( [ (1.5,2,3), (4,5,6) ] )

R使用公式“y~x + z”来选择矩阵/数据框中的变量。这比["y"] ["x","z"]的替代方案或解析字符串“y~x + y”要好得多。

使用Easy Extend可以在Cython中实现更复杂的示例。但是EasyExtend在JVM上不起作用。

最简单的方法是什么,但是为Jython添加语法的方法相当健壮?最好有一个框架来实现全新的语言结构或在jython中定义迷你语言。

1 个答案:

答案 0 :(得分:1)

据我所知,没有类似于EasyExtend的宏/语法扩展工具,尽管the developer of EasyExtend最近一直在研究一些jython项目(包括一些类似于EE的项目)。我想你可以编写某种类型的预处理器,但我倾向于建议语法扩展在python世界中并不是非常流行,如果你真的需要,你可能会更好地实现你自己的DSL。