Parrot


Parrot
Parrot
Parrot logo.png
Тип

виртуальная машина

Разработчик

The Perl Foundation

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

4.6.0 (16 июля 2012)

Тестовая версия

4.7.0 (22 августа 2012)

Лицензия

Artistic License и GNU GPL

Сайт

http://parrot.org  (англ.)

Parrot (пэррот или паррот; от англ. parrot — попугай) — виртуальная машина, используемая интерпретируемыми языками для эффективного исполнения байт-кода. Название происходит от первоапрельской шутки (англ.), когда было объявлено о создании нового языка, объединяющего Perl и Python.

Одной из важных причин для разработки новой виртуальной машины стало различие между языками со статическими и динамическими типами данных. Современные распространенные виртуальные машины, как, например Java VM и .NET CLR были разработаны для языков со статическими типами данных, тогда как языки, на поддержку которых нацелен Parrot используют динамические типы. Виртуальная машина Parrot основана на использовании регистров, а не стека, так как, по мнению разработчиков, это увеличивает скорость и лучше отражает устройство современных процессоров.

Parrot будет являться основой интерпретатора Perl, а также целевой платформой для компиляции кода Perl 6. Кроме реализованной части Perl 6, в байткод можно скомпилировать программы на других языках, включая APL, BASIC, Befunge, Brainfuck, Cola, Forth, Jako, Lisp, m4, Miniperl, Ook!, Parakeet, OpenComal, PHP, Plot, Pheme, Punie, Python, Ruby, Scheme, Span, Tcl, URM и YAL, но большая часть реализаций этих языков для Parrot неполна и находится в экспериментальном состоянии.

Содержание

Примеры

Регистры

Parrot основан на использовании регистров, в отличие от большинства виртуальных машин, основанных на стеке. Parrot предоставляет 4 типа регистров:

  • I: целые числа (от англ. integer)
  • N: числа с плавающей точкой (от англ. number)
  • S: расширенные строковые регистры с поддержкой Юникода (от англ. string)
  • P: PMC, или Parrot Magic Cookie — специальный тип объектов Parrot

До версии 0.3.0 включительно, Parrot обычно предоставлял программам по 32 регистра каждого типа, с возможностью увеличения этого числа до 64. Более поздние версии стали предоставлять неограниченное число регистров; каждая функция может запросить столько регистров, сколько ей требуется.

Parrot Assembly Language

Кроме, непосредственно, байткода в Parrot есть специальный язык низкого уровня Parrot Assembly Language (PASM). Ниже приведен пример небольшой программы на нём:

set I1, 4     # Запись в регистр I1 числа 4
inc I1        # Инкремент I1
add I1, 2     # Добавление к I1 двойки; значение в I1 станет равным 7
set N1, 42.0  # Запись в N1 значения 42.0
dec N1        # Декремент N1, новое значение будет 41.0
sub N1, 2.0   # N1 станет равным 39.0
print I1      # Вывод содержимого I1
print ", "    # Вывод строки «, »
print N1      # Вывод значения N1
print "\n"    # Вывод символа перевода строки
end

Поддерживаемые платформы

Parrot компилируется и запускается на большом числе платформ, включая все самые распространенные, в том числе Linux (x86), Cygwin, Win32, Tru64, OpenVMS (Alpha), Solaris (Sparc), FreeBSD (x86).

См. также

  • Библиотека libJIT для компиляции на лету от Риза Везерли, Клауса Трейчела, Алексея Демакова и Кирилла Кононенко

Примечания

Ссылки


Wikimedia Foundation. 2010.

Смотреть что такое "Parrot" в других словарях:

  • Parrot — Logo Parrot ist eine in Entwicklung befindliche registerbasierte virtuelle Maschine, die vor allem auf die Bedürfnisse dynamischer Programmiersprachen wie Perl oder Python ausgerichtet ist. Parrot wurde von Dan Sugalski vor allem als Interpreter… …   Deutsch Wikipedia

  • Parrot VM — Parrot Logo Parrot ist eine in Entwicklung befindliche registerbasierte virtuelle Maschine, die vor allem auf die Bedürfnisse dynamischer Programmiersprachen wie Perl oder Python ausgerichtet ist. Parrot wurde von Dan Sugalski vor allem als… …   Deutsch Wikipedia

  • Parrot SA — Pour les articles homonymes, voir Parrot. Logo de Parrot SA Dates …   Wikipédia en Français

  • Parrot — Par rot (p[a^]r r[u^]t), n. [Prob. fr. F. Pierrot, dim. of Pierre Peter. F. pierrot is also the name of the sparrow. Cf. {Paroquet}, {Petrel}, {Petrify}.] 1. (Zo[ o]l.) In a general sense, any bird of the order {Psittaci}. [1913 Webster] 2. (Zo[… …   The Collaborative International Dictionary of English

  • Parrot — Saltar a navegación, búsqueda El término Parrot puede designar a: Friedrich von Parrot Máquina virtual Parrot Obtenido de Parrot Categoría: Wikipedia:Desambiguación …   Wikipedia Español

  • Parrot — Par rot, v. t. To repeat by rote, without understanding, as a parrot. [1913 Webster] …   The Collaborative International Dictionary of English

  • Parrot — Par rot, v. i. To chatter like a parrot. [1913 Webster] …   The Collaborative International Dictionary of English

  • Parrot — Parrot, 1) Georg Friedrich, geb. 1767 in Mömpelgard, wurde 1785 Lehrer der Mathematik in Frankreich, Offenbach u. Karlsruhe, dann Secretär der livländischen Ökonomischen Societät in Riga, 1801 Hofrath u. Professor der Physik zu Dorpat, 1820 …   Pierer's Universal-Lexikon

  • Parrot — Parrot, Friedrich. Naturforscher und Reisender, geb. 14. Okt. 1791 in Karlsruhe, gest. 15. Jan. 1841 in Dorpat, studierte in Dorpat Medizin und Naturwissenschaften, bereiste 1811–12 mit Moritz v. Engelhardt die Krim und den Kaukasus, wobei er ein …   Meyers Großes Konversations-Lexikon

  • Parrot — Parrot, Joh. Jak. Friedr. Wilhelm, ausgezeichneter Naturforscher, Sohn des berühmten Physikers und Staatsraths Georg Friedr. P., geb. zu Karlsruhe 1792, bereiste 1811 mit Engelhardt die Krim und den Kaukasus, ward hierauf Professor der… …   Herders Conversations-Lexikon

Книги

Другие книги по запросу «Parrot» >>