~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 1E87EA9EBC7A047B21FEFE5D3E551FBD__1716958320 ✰
Заголовок документа оригинал.:
✰ Parrot virtual machine - Wikipedia ✰
Заголовок документа перевод.:
✰ Виртуальная машина Parrot — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Parrot_virtual_machine ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/1e/bd/1e87ea9ebc7a047b21fefe5d3e551fbd.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/1e/bd/1e87ea9ebc7a047b21fefe5d3e551fbd__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 07:11:27 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 29 May 2024, at 07:52 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Виртуальная машина Parrot — Википедия Jump to content

Виртуальная машина Попугая

Из Википедии, бесплатной энциклопедии
Виртуальная машина Попугая
Окончательный релиз
8.1.0 / 16 февраля 2016 г .; 8 лет назад ( 16 февраля 2016 ) [1]
Репозиторий
Написано в С
Операционная система Кросс-платформенный
Преемник МоарВМ (для Раку)
Тип Виртуальная машина
Лицензия Художественная лицензия 2.0
Веб-сайт www .попугай .org Отредактируйте это в Викиданных

Parrot — это снятая с производства на основе регистров, виртуальная машина процессов предназначенная для эффективной работы с динамическими языками . Можно скомпилировать ассемблерный язык Parrot и промежуточное представление Parrot (PIR, промежуточный язык) в байт-код Parrot и выполнить его. Parrot — бесплатное программное обеспечение с открытым исходным кодом . [2]

Parrot был создан сообществом Perl и разработан при помощи сообществ открытого и бесплатного программного обеспечения . В результате основное внимание уделялось совместимости лицензий с Perl ( Artistic License 2.0 ), совместимости платформ с широким спектром систем, совместимости архитектуры процессора с большинством современных процессоров, скорости выполнения, небольшому размеру (около 700 КБ в зависимости от платформы) и гибкость для удовлетворения различных требований, предъявляемых Raku и другими современными динамическими языками .

Версия 1.0 со стабильным интерфейсом программирования приложений (API) для разработки была выпущена 17 марта 2009 года. [3] Последней версией является выпуск 8.1.0 «Андский попугай». [1] Официальное прекращение поддержки Parrot было прекращено в августе 2021 года после того, как его заменил MoarVM в его основном использовании (Raku) и он так и не стал основной виртуальной машиной ни для одного из других поддерживаемых языков. [4]

История [ править ]

Название Parrot произошло от первоапрельской шутки, в которой было объявлено о создании гипотетического языка Parrot , который объединит Python и Perl . [5] [6] Позже это название было принято проектом Parrot (первоначально являвшимся частью разработки Raku), целью которого была поддержка Raku, Python и других языков программирования.

Фонд Parrot Foundation был распущен в 2014 году. [7] Фонд был создан в 2008 году для владения авторскими правами и товарными знаками проекта Parrot, для помощи в разработке языковых реализаций и основной кодовой базы, для обеспечения базы для роста сообщества Parrot и для взаимодействия с другими языковыми сообществами. [8]

Исторические проектные решения документируются в форме проектных документов Parrot или PDD в репозитории Parrot. [9]

До конца 2005 года Дэн Сугальски был ведущим дизайнером и главным архитектором Parrot. Чип Зальценберг , давний хакер Perl, ядра Linux и C++, занял пост до середины 2006 года, когда он стал ведущим разработчиком. Эллисон Рэндал , ведущий разработчик Punie и главный архитектор инструментов компилятора Parrot, была главным архитектором до середины октября 2010 года, когда она ушла в отставку и выбрала Кристофа Отто новым главным архитектором. [10]

Языки [ править ]

Целью виртуальной машины Parrot было размещение клиентских языков и обеспечение взаимодействия между ними. На пути достижения этой цели существует несколько препятствий, в частности, сложность сопоставления концепций высокого уровня, данных и структур данных между языками.

Статические и динамические языки [ править ]

Различные свойства статически и динамически типизированных языков послужили причиной создания Parrot. Современные популярные виртуальные машины, такие как виртуальная машина Java и Common Language Runtime для платформы .NET , были разработаны для статически типизированных языков, в то время как языки, на которые нацелен Parrot, являются динамически типизированными.

Виртуальные машины, такие как виртуальная машина Java и текущая виртуальная машина Perl 5, также основаны на стеке . обширную литературу по оптимизации компилятора Разработчики Parrot выбрали конструкцию на основе регистров, мотивируя это тем, что она больше напоминает аппаратную конструкцию, что позволяет использовать при генерации байт-кода для виртуальной машины Parrot, которая может работать на скоростях, близких к машинному коду . [ нужна цитата ] Другие виртуальные машины на основе регистров вдохновили часть дизайна Parrot, включая LLVM , Lua VM от Inferno и Dis .

Функциональные концепции [ править ]

Parrot имеет богатую поддержку нескольких функций функционального программирования, включая замыкания и продолжения , обе из которых может быть особенно сложно реализовать правильно и переносимо, особенно в сочетании с обработкой исключений и многопоточностью . Самым большим преимуществом является динамическая расширяемость объектов с помощью методов, что позволяет использовать полиморфные контейнеры (PMC) и связанные с ними коды операций . Реализация решений этих проблем на уровне виртуальных машин избавляет от необходимости решать их на отдельных клиентских языках.

Инструменты компилятора [ править ]

Parrot предоставляет набор инструментов для написания компиляторов. [11] который включает в себя Parser Grammar Engine (PGE), гибридный анализатор-генератор, который может выражать анализатор рекурсивного спуска , а также анализатор с приоритетом операторов , обеспечивая свободный переход между ними в одной грамматике. PGE передается в механизм древовидной грамматики (TGE), который дополнительно преобразует дерево синтаксического анализа, сгенерированное PGE, для оптимизации и, в конечном итоге, для генерации кода.

Реализации [ править ]

Наиболее полными языковыми реализациями, предназначенными для виртуальной машины Parrot, были Raku (известный в то время как Rakudo Perl 6), Lua и новый язык под названием «Winxed». [12] Были начаты проекты по реализации многих других языков, включая PHP , Python и Ruby ; наряду с эзотерическими и демонстрационными языками, такими как Befunge и учебный язык « скквак ». [13] Ни один из этих проектов не стал первичным внедрением соответствующих языков. [4]

Внутренности [ править ]

Существует три формы программного кода для Parrot:

  • Байт-код [14] является двоичным и изначально интерпретируется Parrot. Байт-код обычно хранится в файлах с расширением имени файла «.pbc».
  • Язык ассемблера Parrot (PASM) — это язык низкого уровня, который компилируется в байт-код. Код PASM обычно хранится в файлах с расширением имени файла «.pasm».
  • Промежуточное представление попугая (PIR [15] ) — это язык немного более высокого уровня, чем PASM, который также компилируется в байт-код. Это основная цель языковых реализаций. PIR прозрачно управляет соглашениями о межпрограммных вызовах Parrot, обеспечивает улучшенный синтаксис, распределение регистров и многое другое. Код PIR обычно хранится в файлах с расширением имени файла «.pir».

Примеры [ править ]

Регистры [ править ]

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

Parrot предоставляет произвольное количество регистров; это число фиксируется во время компиляции каждой подпрограммы.

Арифметические операции [ править ]

В ПАСМ

    set   I1  ,   4 
     inc   I1          # I1 теперь 5 
     add   I1  ,   2       # I1 теперь 7 
     set   N1  ,   42  .0 
     dec   N1          # N1 теперь 41.0 
     sub   N1  ,   2  .0     # N1 теперь 39.0 
     print   I1 
     print   '  ,   ' 
     напечатайте   N1 
     напечатайте   "\  n  " 
     конец 

В ПИР

.   sub   'main'  :  main 
     $I1  =  4 
     inc   $I1       # $I1 теперь равен 5 
     $I1  +=  2      # $I1 теперь равен 7 
     $N1  =  42.0 
     dec   $N1       # $N1 теперь равен 41.0 
     $N1  -=  2.0    # $ N1 теперь 39.0 
     напечатайте   $I1 
     напечатайте   ', ' 
     напечатайте   $N1 
     напечатайте   "\n" 
   .   конец 

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б «Новая поддерживаемая версия 8.1.0 «Андский попугай» » . Фонд попугаев. 16 февраля 2016 г. Проверено 26 сентября 2016 г.
  2. ^ «Лицензионное соглашение для участников Parrot 1.0» (PDF) . Фонд попугаев. Архивировано из оригинала (PDF) 16 августа 2010 г. Проверено 18 марта 2009 г.
  3. ^ «Дорожная карта попугаев» . Фонд попугаев. 20 ноября 2008 г. Архивировано из оригинала 15 апреля 2010 г. Проверено 20 ноября 2008 г.
  4. ^ Перейти обратно: а б «Неактивный попугай | Parrot VM» . www.parrot.org .
  5. ^ «История розыгрыша с попугаем - O'Reilly Media» . Орейли.com. 6 апреля 2001 г. Проверено 25 февраля 2014 г.
  6. ^ «Программирование попугая» . Perl.com. Архивировано из оригинала 18 июля 2010 г. Проверено 25 февраля 2014 г.
  7. ^ «Расширенный поиск корпораций» . Департамент лицензирования штата Вашингтон . УБИ 602 839 536 . Проверено 9 апреля 2021 г.
  8. Объявление о создании Parrot Foundation. Архивировано 29 июня 2008 г. в Wayback Machine.
  9. ^ «Parrot 6.1.0 — Проектная документация Parrot (PDD)» . Docs.parrot.org . Проверено 25 февраля 2014 г.
  10. ^ Отто, Кристоф (21 октября 2010 г.). "reparrot: У Попугая новый архитектор. Что теперь?" . Reparrot.blogspot.com . Проверено 25 февраля 2014 г.
  11. ^ [1] Архивировано 9 мая 2009 г., в Wayback Machine.
  12. ^ «Языки — Попугай В.М.» . сайт попугая . Проверено 18 ноября 2023 г.
  13. ^ «Языки – Попугай» . Wiki по разработке Parrot . Проверено 18 ноября 2023 г.
  14. ^ «Формат байт-кода Parrot (PBC) — код попугая» . Архивировано из оригинала 24 декабря 2008 г. Проверено 15 июля 2009 г.
  15. ^ [2] Архивировано 20 июля 2009 г., в Wayback Machine.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 1E87EA9EBC7A047B21FEFE5D3E551FBD__1716958320
URL1:https://en.wikipedia.org/wiki/Parrot_virtual_machine
Заголовок, (Title) документа по адресу, URL1:
Parrot virtual machine - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)