<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Первый выпуск компилятора Perl 5 в JVM от проекта Perlito]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=39059</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39059&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Первый выпуск компилятора Perl 5 в JVM от проекта Perlito».]]></description>
		<lastBuildDate>Mon, 15 May 2017 03:51:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Первый выпуск компилятора Perl 5 в JVM от проекта Perlito]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=455139#p455139</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; Опубликован первый выпуск Java-бэкенда компилятора Perlito5, предназначенного для обеспечения компиляции исходных текстов на языке Perl 5 в байткод JVM, который может быть выполнен в виртуальной машине Java 7. Проект Perlito также предоставляет бэкенды для компиляции Perl 5 в JavaScript, Perl 6 в Perl 5, JavaScript и Python 2.6. В разработке находятся бэкенды для Ruby, Go и Common.&nbsp; &nbsp; &nbsp; Java-бэкнд поддерживает не все возможности Perl, например, невозможно использовать XS-модули, написанные на языке Си, а также пока не доведена до конца поддержка таких средств, как обработка сигналов, оператор goto,&nbsp; tie array/hash, &quot;local @&quot;, &quot;~~&quot; и многопоточность. Имеются отличия в реализации регулярных выражений,&nbsp; sprintf(), pack() и unpack(). Вместо XS предлагаются средства для подключения расширений на языке Java - из Perl-кода можно обращаться к классам Java, а из Java-кода запускать функции на языке Perl. Используя данную возможность подготовлены Java-аналоги таких XS-модулей, как Digest::SHA1/MD5,&nbsp; List::Util, MIME::Base64 и Scalar::Util.&nbsp; &nbsp; &nbsp; Perlito осуществляет прозрачную компиляцию в оперативной памяти с последующим запуском подготовленного байткода в&nbsp; JVM&nbsp; при помощи eval. Например, для выполнения Perl-скрипта в JVM можно выполнить:&nbsp; &nbsp; &nbsp; &nbsp;java -jar perlito5.jar -I src5/lib -e &#039;print &quot;hello, World!\n&quot;&#039;&nbsp; &nbsp; &nbsp; По аналогии можно использовать бэкенд для компиляции Perl в JavaScript, который подходит для организации запуска Perl-кода в браузере или для обеспечения интеграции с Node.js:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nodejs perlito5.js -I src5/lib -e &#039; print &quot;hello, World!\n&quot; &#039;&nbsp; &nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46549</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46549">_источник</a></p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Mon, 15 May 2017 03:51:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=455139#p455139</guid>
		</item>
	</channel>
</rss>
