The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

15.05.2017 09:51  Первый выпуск компилятора Perl 5 в JVM от проекта Perlito

Опубликован первый выпуск Java-бэкенда компилятора Perlito5, предназначенного для обеспечения компиляции исходных текстов на языке Perl 5 в байткод JVM, который может быть выполнен в виртуальной машине Java 7. Проект Perlito также предоставляет бэкенды для компиляции Perl 5 в JavaScript, Perl 6 в Perl 5, JavaScript и Python 2.6. В разработке находятся бэкенды для Ruby, Go и Common.

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" '


  1. Главная ссылка к новости (http://blogs.perl.org/users/fl...)
  2. OpenNews: Увидел свет RPerl 1.0, компилятор кода Perl5
  3. OpenNews: Проект по развитию компилятора для языка Perl
  4. Защита perl скриптов от несанкционированного копирования и модификации
  5. Как скомпилировать Perl скрипт в бинарный вид, чтобы другие не смогли увидеть исходный текст
  6. OpenNews: B-C - модуль для компиляции perl скриптов
Лицензия: CC-BY
Тип: Программы
Ключевые слова: perl, compile
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, Аноним, 10:04, 15/05/2017 [ответить] [смотреть все]
  • +6 +/
    >для обеспечения интеграции с Node.js:

    Модностильно, молодёжно.

     
  • 1.5, Аноним, 10:29, 15/05/2017 [ответить] [смотреть все]
  • +1 +/
    Я давно ждал этого!
     
     
  • 2.8, Аноним, 11:09, 15/05/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Ыыыыы, залогинься!
     
     
  • 3.25, Аноним, 20:53, 15/05/2017 [^] [ответить] [смотреть все]
  • +/
    сегодня на anon.fm
     
  • 1.6, Аноним, 10:57, 15/05/2017 [ответить] [смотреть все]
  • +/
    npm install -g cpan
     
  • 1.7, Аноним, 11:07, 15/05/2017 [ответить] [смотреть все]  
  • –1 +/
    JVM на коне.
     
  • 1.9, omnomnin, 11:28, 15/05/2017 [ответить] [смотреть все]  
  • +2 +/
    хАчу такой же, только брэйнфак->JVM
     
  • 1.10, Аноним, 11:39, 15/05/2017 [ответить] [смотреть все]  
  • +6 +/
    Теперь ты сможешь запускать свой перловый код везд... Wait a minute!
     
  • 1.11, Zdorovenniy_Krab, 11:47, 15/05/2017 [ответить] [смотреть все]  
  • +7 +/
    У меня только один вопрос: "ЗАЧЕМ?"
     
     
  • 2.17, Andrey Mitrofanov, 12:43, 15/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Чужие мозгти - потёмки Исследование, компьтер-сайнс, вероятно Может быть, дл... весь текст скрыт [показать] [показать ветку]
     
  • 1.12, Comdiv, 11:54, 15/05/2017 [ответить] [смотреть все]  
  • +/
    > не доведена до конца поддержка таких средств, ..., оператор goto

    Складывается впечатление, что они воплотили трансляцию не в bytecode, а в Java.

     
     
  • 2.13, Аноним, 12:00, 15/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Мсье никогда не копал бинарник java? А там много goto, очень много.
     
     
  • 3.14, Comdiv, 12:05, 15/05/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    В том-то и дело, что в двоичным коде нет проблем с воплощением goto, а вот в исх... весь текст скрыт [показать]
     
     
  • 4.22, Аспарагус, 16:41, 15/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Да, я через goto делал разворачивание стека из любого места Задача самописное ... весь текст скрыт [показать]
     
     
  • 5.24, Аноним, 18:29, 15/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Интересно бы глянуть пример Я goto использую для перегрузки функции и для управ... весь текст скрыт [показать]
     
  • 1.15, Аноним, 12:25, 15/05/2017 [ответить] [смотреть все]  
  • –2 +/
    Не порядок, не должно быть отличии ... весь текст скрыт [показать]
     
     
  • 2.16, Crazy Alex, 12:36, 15/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Не выйдет без отличий
     
     
  • 3.19, Аноним, 14:00, 15/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Но тогда цель затеи не обретет законченный вид.
     
     
  • 4.26, Crazy Alex, 21:04, 15/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Разумеется. Но "только перл может парсить перл".
     
  • 1.20, vaka, 16:24, 15/05/2017 [ответить] [смотреть все]  
  • –1 +/
    А в бэйсик слабО было перевести?
     
  • 1.21, Аноним, 16:34, 15/05/2017 [ответить] [смотреть все]  
  • –5 +/
    Как-то слабо верится в перспективность Perl вообще...
     
     
  • 2.23, Qaq be, 16:54, 15/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Как бы он и не перспективен давно. Разве что ради легаси
     
     
  • 3.27, Аноним, 00:58, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Как бы обновления на metacpan говорят об обратном Хотя и стоит конкретизировать... весь текст скрыт [показать]
     
  • 3.30, Аноним, 04:23, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Пишу на Перле каждый день, сегодня начал делать систему сборки пакетов для Андро... весь текст скрыт [показать]
     
     
  • 4.31, Аноним, 07:20, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Если вы не знаете ответ на этот вопрос, то у вас большие проблемы.
     
     
  • 5.36, Аноним, 16:37, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Какие ... весь текст скрыт [показать]
     
  • 4.33, Аноним, 12:36, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    https://metacpan.org/pod/Android::Build ?
     
     
  • 5.35, Аноним, 16:37, 16/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ух ты! Опять я не нужен стал. Пойду полежу.
     
  • 2.28, Вареник, 02:01, 16/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Perl для узкой тусовки олдскульных фанатиков, из 90-х Такая же тусовка через ле... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.29, Аноним, 04:22, 16/05/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Скорее перл не перспективен для петушков с новомодными растами и голангами Они ... весь текст скрыт [показать]
     
     
  • 4.34, angra, 12:52, 16/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Ты так говоришь про изучение новых ЯП, как будто это что-то плохое.
     
     
  • 5.37, Аноним, 15:37, 17/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Perl - язык на котором можно писать несколько стилями Он сам как несколько язык... весь текст скрыт [показать]
     
     
  • 6.38, omnomnom, 22:04, 17/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Код, который можно прочитать через пару месяцев после его написания?
     
     
  • 7.39, Аноним, 11:01, 18/05/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Если я в очередной раз напишу что я способен читать свой код написанный годами р... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor