Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Parrot – это название упомянутой выше виртуальной машины. На ранней стадии использовался собственный ассемблер (Parrot assembler, PASM), который содержит набор инструкций, очень похожих на те, которые применяются в обычном ассемблере для физических RISC-процессоров. Все операции выполняются с операндами в виртуальных регистрах разных типов: например, в одних регистрах хранятся целые числа, в других строки. Один из типов необычен (как и его название Parrot Magic Cookie, PMC) и предназначен специально для поддержки объектно-ориентированного программирования. Байт-код сохранялся в файле с расширением .pbc (pre-compiled bytecode).

Поскольку число регистров ограниченно, программировать непосредственно на ассемблере PASM неудобно (конечно, прежде всего разработчикам компиляторов), и появились сопутствующий язык IMC (Intermediate Code) и компилятор IMCC (Intermediate Code Compier). IMC представляет собой надстройку над ассемблером и разрешает пользоваться произвольными переменными, поэтому нехватка регистров перестает ощущаться. Сегодня вместо IMC используется PIR (Parrot Intermediate Representation).

Ponie (еще одна тупиковая ветвь в развитии Perl 6) – это попытка создать компилятор в байт-код для программ, написанных на Perl 5.

Библиотека CPAN содержит набор модулей Perl6::*, которые были написаны, чтобы поэкспериментировать с синтаксисом шестой версии, имея компилятор пятой. Пользоваться этими модулями сегодня особой необходимости нет.

В состав Parrot входит около десятка компиляторов, создающих байт-код из программ на разных языках (иногда экзотических типа Ook!), в том числе экспериментальный компилятор Perl 6.

Компилятор в составе Parrot более не развивается, ему на смену пришел проект Pugs (Perl 6 User’s Golfing System), которым занимается Одри Танг. Pugs тоже внес свой вклад в список сокращений, например, создав собственный формат PIL (Pugs Intermediate Language).

Приветствие, выводимое при запуске Pugs

Установка Perl 6

Разбираться в месиве форматов необязательно, достаточно установить последнюю версию Pugs. Правда, радужная картина немного меркнет, когда узнаешь, что Pugs написан на языке Haskell, и для сборки необходим работающий компилятор. (А тем, кто захочет попробовать в действии новые регулярные выражения, возможно, потребуется и установленный Parrot.) Компилятор доступен на сайте www.haskell.org/ghc как в исходных кодах, так и в бинарных дистрибутивах для некоторых платформ. Самостоятельная сборка компилятора GHC происходит крайне долго, хотя и гладко.

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

Ссылки на исходные и бинарные коды находятся на сайте проекта www.pugscode.org.

Процесс сборки из исходных кодов стандартный для модулей Perl:

perl Makefile.PL

make

make install

Примечание: исходный код Pugs размещен на сайте CPAN, но он не имеет отношения к модулям Perl6::*, о которых говорилось в предыдущем разделе.

Во время подготовки статьи для тестирования программ я пользовался двумя версиями Pugs под Windows XP SP2 и Linux Red Hat 9. На каждой системе установлены GHC 6.6, Parrot 0.4.6, Pugs 6.2.13 и Perl 5.8.8.

Кстати, при установке Pugs просит самую последнюю версию компилятора GHC, сообщая, что с более ранней скомпилировать-то пока удастся, но скорость работы будет низкой, а в будущем старая версия GHC вообще не подойдет.

Компилятор Haskell под Windows установлен из msi-файла (необходим один дистрибутив размером 37 Мб, находящийся на официальном сайте).

На второй системе получить желаемый набор удалось не сразу. В первый раз компилятор GHC собрался из исходных кодов без ошибок (за пару часов), но затем при установке Pugs конфигуратор сообщил, что не хватает модуля mtl в составе GHC:

*** Could not load the "mtl" package in your GHC installation.


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100