Расширение синтаксиса Jython - PullRequest
0 голосов
/ 26 августа 2009

Я хотел бы добавить синтаксис в 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".

Более сложные примеры могут быть реализованы в Cython с использованием Easy Extend . Но EasyExtend не работает на JVM.

Какой самый простой, но достаточно надежный способ добавить синтаксис в Jython? Было бы неплохо иметь каркас для реализации совершенно новых языковых конструкций или определения мини-языков в jython.

1 Ответ

1 голос
/ 15 сентября 2009

Насколько мне известно, нет средства расширения макроса / синтаксиса, подобного EasyExtend, хотя разработчик EasyExtend недавно работал над некоторыми проектами jython (включая те, которые похожи на EE) , Я полагаю, что вы могли бы написать какой-то препроцессор, но я бы предпочел предположить, что расширение синтаксиса не очень популярно в мире питонов, и вы могли бы добиться большего успеха в реализации собственного DSL, если вам действительно это нужно.

...