<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Представлен компилятор Perl 5 в JVM и JavaScript]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39058&amp;type=atom" />
	<updated>2017-05-15T03:51:01Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=39058</id>
		<entry>
			<title type="html"><![CDATA[Представлен компилятор Perl 5 в JVM и JavaScript]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=455138#p455138" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[R2-D2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=40794</uri>
			</author>
			<updated>2017-05-15T03:51:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=455138#p455138</id>
		</entry>
</feed>
