Первый выпуск компилятора Perl 5 в JVM от проекта Perlito
Java-бэкенд поддерживает не все возможности Perl, например, невозможно использовать XS-модули, написанные на языке Си, а также пока не доведена до конца поддержка таких средств, как обработка сигналов, оператор goto, tie array/hash, "local @", "~~" и многопоточность. Имеются отличия в реализации регулярных выражений, sprintf(), pack() и unpack(). Вместо XS предлагаются средства для подключения расширений на языке Java - из Perl-кода можно обращаться к классам Java, а из Java-кода запускать функции на языке Perl. Используя данную возможность подготовлены Java-аналоги таких XS-модулей, как Digest::SHA1/MD5, List::Util, MIME::Base64 и Scalar::Util.
Perlito осуществляет прозрачную компиляцию в оперативной памяти с последующим запуском подготовленного байткода в JVM при помощи eval. Например, для выполнения Perl-скрипта в JVM можно выполнить:
java -jar perlito5.jar -I src5/lib -e 'print "hello, World!\n"'
По аналогии можно использовать бэкенд для компиляции Perl в JavaScript, который подходит для организации запуска Perl-кода в браузере или для обеспечения интеграции с Node.js:
nodejs perlito5.js -I src5/lib -e ' print "hello, World!\n" '
Источник: http://www.opennet.ru/opennews/art.shtml?num=46549
|
0 | Tweet | Нравится |
|