Jump to content

Мопсы (составитель)

Pugs компилятор и интерпретатор языка Raku программирования , созданный 1 февраля 2005 года Одри Танг . (В то время Raku был известен как Perl 6.)

Разработка мопсов сейчас приостановлена. [1] при этом большая часть усилий по внедрению Raku сейчас осуществляется на Rakudo .

Целью проекта Pugs была загрузка Perl 6 путем реализации полной спецификации Perl 6, как подробно описано в Synopses . Он написан на Haskell и специально предназначен для компилятора Glasgow Haskell .

Pugs включает в себя два основных исполняемых файла:

  • Pugs — это интерпретатор с интерактивной оболочкой.
  • Pugscc может компилировать программы Perl 6 в код Haskell, Perl 5, JavaScript или Parrot сборку виртуальной машины PIR- .

Pugs — бесплатное программное обеспечение , распространяемое на условиях Стандартной общественной лицензии GNU или Художественной лицензии . [2] Это те же термины, что и в Perl.

Нумерация версий

[ редактировать ]

Номера основных/второстепенных версий Pugs сходятся к 2π (напоминая TeX и METAFONT , которые используют аналогичную схему); каждая значащая цифра в младшей версии представляет собой успешно пройденный этап. Третья цифра увеличивается для каждого выпуска. Текущие вехи:

  • 6.0: Первый выпуск.
  • 6.2: Базовые элементы ввода-вывода и потока управления; изменяемые переменные; назначение.
  • 6.28: Классы и черты.
  • 6.283: Правила и грамматики.
  • 6.2831: Система типов и связывание.
  • 6.28318: Макросы.
  • 6.283185: Перенесите Pugs на Perl 6, если необходимо.

Совместимость с Перл 5

[ редактировать ]

Начиная с версии 6.2.6, Pugs также имеет возможность встраивать Perl 5 и использовать модули CPAN , установленные в системе. Пример ниже демонстрирует использование популярного модуля Perl DBI для управления базой данных:

#!/usr/bin/pugs
use v6;
use perl5:DBI;

my $dbh = DBI.connect('dbi:SQLite:dbname=test.db');
$dbh.do("CREATE TABLE Test (Project, Pumpking)");

my $sth = $dbh.prepare("INSERT INTO Test VALUES (?, ?)");
$sth.execute(<PGE Patrick>);
$sth.execute(<Pugs Audrey>);
$sth.execute(<Parrot Leo>);

my $res = $dbh.selectall_hashref('SELECT * FROM Test', 'Pumpking');
# Just another Pugs hacker
say "Just another $res<Audrey><Project> hacker";

Модель развития

[ редактировать ]

В качестве причин прогресса Мопсов было предложено несколько факторов:

  • Haskell Статическая типизация может облегчить обнаружение ошибок программы во время компиляции. Код Haskell также часто считают кратким. Библиотека Parsec [1] монадический комбинаторный парсер, полностью написанный на Haskell, упрощает синтаксический анализ. Поскольку Haskell — чисто функциональный язык , взаимодействие функционального кода с реальным миром (вводы/выводы и управляемая временем среда) требует размышлений. Чтобы добиться этого, Pugs широко использует монады .
  • Использование Пагсом методологии, основанной на тестировании (принцип экстремального программирования ). Эта методология требует, чтобы каждый модуль имел тестовый код еще до того, как модули будут реализованы. Сторонники этой методологии утверждают, что она улучшает качество программного обеспечения . Однако проект часто замалчивал неудачные регрессионные тесты перед выпуском, лишая большую часть преимуществ разработки через тестирование. [ нужна ссылка ] .
  • Либеральное предоставление Таном бита фиксации . Разработка Pugs в настоящее время основана на репозитории Subversion , и доступ к нему предоставляется свободно, особенно людям, желающим писать тесты. Благодаря этому накопилась огромная библиотека тестов. Другие реализации Perl 6 основаны на многих тестах, разработанных для Pugs в качестве исполняемой спецификации Perl 6.
  • Стиль общения Тана; ее журнал (ссылка на который приведена ниже) привлек к проекту множество людей.

Несмотря на эти факторы, прогресс в реализации Haskell застопорился в конце 2006 года, поскольку личные проблемы не позволяли Одри уделять проекту столько времени, сколько она делала в 2005 году.

Многие участники Pugs с тех пор перешли к реализации систем, вдохновленных Perl6, в виде модулей CPAN на Perl 5, например проект Moose .

  1. ^ «Как реализовать Perl 6 в 2010 году» .
  2. ^ «Мопсы Апокриф 1» . Архивировано из оригинала 5 марта 2007 г. Проверено 9 марта 2007 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 13115912a0a9d63969b2d262f0a654b9__1711031700
URL1:https://arc.ask3.ru/arc/aa/13/b9/13115912a0a9d63969b2d262f0a654b9.html
Заголовок, (Title) документа по адресу, URL1:
Pugs (compiler) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)