Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Вышел Parrot 1.4.0 «Mundo Cani»

Perl
Parrot LogoЗа все время чтения хабра видел лишь несколько упоминаний Parrot VM. Тем временем, проект активно развивается, и сегодня вышел релиз 1.4.0. Parrot — виртуальная машина, предназначенная для эффективной компиляции и исполнения байткода для динамических языков программирования. На данный момент существуют реализации нескольких языков для Parrot: Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, а также транслятор байткода .NET.

Читать дальше →
Всего голосов 47: ↑42 и ↓5 +37
Просмотры836
Комментарии 29

YAPC::Russia 13–15 мая в Москве

Я пиарюсь
С 13 по 15 мая в Москве пройдет четвертая конференция YAPC::Russia, посвященная языку программирования Perl и его сообществу. В этом году конференция совмещена с ежегодным украинским Perl-воркшопом Perl Mova.

Трехдневная программа состоит из хакатана по Perl 6 и докладов про современные версии языка и приложения на их основе.

Читать дальше →
Всего голосов 25: ↑23 и ↓2 +21
Просмотры319
Комментарии 0

Сборки Rakudo Star для Windows теперь будут регулярными

Perl
Recovery mode
Разработчики Rakudo обещают отныне регулярные сборки для Windows с каждым ежемесячным релизом Rakudo Star.

На данный момент доступен Windows installer for Rakudo Star 2102.07 (предыдущие сборки для Win от 2011.04 и 2010.07).

Готовность по фичам Rakudo можно увидеть здесь.
Всего голосов 23: ↑8 и ↓15 -7
Просмотры479
Комментарии 2

Особенности работы с переменными и литералами в Perl6

Perl
Из песочницы
Не так давно я решил начать изучать Perl6, даже не смотря на то, что фактически полностью работающего компилятора ещё нету. Подумал что можно смотреть Synopsis'ы, смотреть что из написанного в них уже работает, и изучать как именно это работает на различных примерах. Этим я и начал заниматься, попутно записывая себе в блокнот результаты различных манипуляций с переменными.
И вот в качестве своего первого поста я решил поделиться своими познаниями: тем, что обычно авторы материала оставляют на самостоятельную «проработку» — ответы на вопросы по типу «а что будет если ...» или «а что из себя это представляет в языке».
В этой статье Я опишу какие основные типы данных есть в этом языке и частично затрону вопрос о контекстах — одной из основных особенностей языка Perl.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры4.5K
Комментарии 8

Perl6 — Операции над переменными, анонимные блоки

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
В предыдущей статье я описывал особенности работы с переменными, а также затронул контексты. В данной статье, я хочу поделиться результатми своих экспериментов и поисков на тему использования переменных, а также коротко описать особенности анонимных блоков кода.
Приступим

Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры5.9K
Комментарии 8

Perl6 — Условные операторы, циклы

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки

В данной статье мы рассмотрим условные операторы и циклы, а также проведем несколько небольших экспериментов по их использованию.

Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры6.4K
Комментарии 4

Perl6 — Работа с функциями

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы

Настало время рассмотреть работу с функциями. По этой теме в Perl6 есть несколько изменений относительно пятого, как например именованные параметры, или возможность создания главной функции в скрипте, но начнем по порядку:

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры4.2K
Комментарии 1

Perl6 — Классы

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями

Последние несколько дней я читал раздел по работе с объектами в Perl6. К сожалению я так и не смог понять некоторые моменты, и надеюсь что те кто уже смог их понять подскажут, в чем же дело. Как и раньше, все описанные возможности будут сопровождаться небольшими экспериментами или примерами, чтобы пояснить как это работает, или как нужно использовать.
Приступим:
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры4.7K
Комментарии 0

Perl6 — Ввод-вывод, модули

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы

И так, после длительного перерыва я вернулся с изучению шестого перла. В этот раз я решил рассмотреть как же можно вести диалог с пользователем, и как работать с файлами, а также как можно разделить весь скрипт на различные модули.

Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры4.6K
Комментарии 20

Perl6 — Комментарии, пробельные символы, скобки

PerlПрограммирование
Давным давно, в далекой далекой галактике на хабре появился набор статей о шестом перле
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы
6. Perl6 — Ввод-вывод, модули
в котором рассказывалось о некоторых сторонах Perl6. После выхода последней статьи, я начал писать следующую, в которой планировалось создать два класса, расположив их в разных модулях, и подключать их один на этапе компиляции, другой на этапе выполнения — иначе говоря закрепить уже пройденный материал. Но представте мое удивление, когда я начал получать разные ошибки компиляции в зависимости от количества пустых строк между определениями двух функций или от количества пробелов внутри условия… Причем исправляя одну ошибку, я получал вторую, которую уже исправлял до первой =) В итоге написание следующей статьи сорвалось, и я благополучно оставил её на потом, а потом естественно и времени не оказалось свободного.
Но вот сейчас я всетаки решил продолжить изучение, и раз уж у нас зашла речь о пробельных символах, то с них и начнем новую статью.

Добро пожаловать под кат
Всего голосов 22: ↑22 и ↓0 +22
Просмотры5.4K
Комментарии 20

Perl6 — Перегрузка операторов

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы
6. Perl6 — Ввод-вывод, модули
7. Perl6 — Комментарии, пробельные символы, скобки
Однажды я уже писал статью о функциях и об особенностях их использования (№4). Сейчас я хочу рассмотреть одну из их разновидностей — операторов.
За продолжением под кат
Всего голосов 21: ↑21 и ↓0 +21
Просмотры3.8K
Комментарии 6

Perl6 — Работа с типами данных

PerlПрограммирование
До сих пор в статьях было лишь поверхностное упоминание о типах данных — объявление переменной определенного типа, либо указание результата операции, но все что мы могли, это лишь терпеть выходки компилятора — «хочу умру (die), захочу варнинг кину, или просто поменяю тип».
Собственно, для тех кто хочет почувствовать себя богом хоть как-то важным в управлении типами в своем же скрипте, добро пожаловать под кат.
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры3K
Комментарии 6

Perl6 — Обработка исключений

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы
6. Perl6 — Ввод-вывод, модули
7. Perl6 — Комментарии, пробельные символы, скобки
8. Perl6 — Перегрузка операторов
9. Perl6 — Работа с типами данных
В прошлой статье я заикнулся об отлове исключений. Немногие скрипты, что встречались с исключениями, выживали, и слишком много моих скриптов погибло от их рук. Пожалуй, настало время устроить на них охоту. Для тех кому интересно, чем же мы будет их ловить — встречаемся под катом.
Читать дальше →
Всего голосов 19: ↑15 и ↓4 +11
Просмотры5.5K
Комментарии 0

Perl6 — Ещё немного о блоках (Phasers)

PerlПрограммирование
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы
4. Perl6 — Работа с функциями
5. Perl6 — Классы
6. Perl6 — Ввод-вывод, модули
7. Perl6 — Комментарии, пробельные символы, скобки
8. Perl6 — Перегрузка операторов
9. Perl6 — Работа с типами данных
10. Perl6 — Обработка исключений
В прошлой статье мы говорили об отлове исключений, что происходило в специальном вложенном блоке CATCH. На самом деле этот блок является особой разновидностью — Phasers (я просто не могу перевести это слово). Phasers — это специальные вложенные блоки, которые выполняются при определенных условиях. С чем же их готовить увидите под катом.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры2.7K
Комментарии 11

Perl 6 и Rakudo: заметки от 2009 года

Perl
Перевод
Серия статей о Perl 6 и Rakudo – одном из компиляторов, поддерживающих спецификацию Perl6. Эта статья собрана из заметок от 2009 года.

Устанавливаем Rakudo


В данный момент существует несколько неполных реализаций Perl 6. Самая полная из них – это компилятор Rakudo (скачать).

Пользователи git могут создать свою копию при помощи следующих команд:
$ git clone git://github.com/rakudo/rakudo.git
$ cd rakudo
$ perl Configure.pl --gen-parrot --gen-moar --gen-nqp --backends=parrot,jvm,moar
$ make
$ make install


Как вариант, можно собрать его из исходников, скачав их с github.com/rakudo/rakudo/tree/nom

Для Windows есть готовый установщик бинарников. Версии установщика и исходный код доступны по ссылке
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры5.4K
Комментарии 6

Приглашаем на Moscow.pm 5 марта

Mail.ru GroupPerl


5 марта мы приглашаем всех на очередную встречу Perl Mongers. Вот уже в течение восьми лет на такие встречи собираются Perl-программисты, которые обмениваются опытом со всеми единомышленниками. Программа предстоящего мероприятия посвящена исключительно Perl 6. Он настолько отличается от предыдущих версий, что рассматривается уже как самостоятельный язык программирования. Более того, многие специалисты считают, что Perl 6 станет настоящей вехой в развитии программирования. История его разработки началась в 2000 году, когда Ларри Уолл начал работу над спецификациями. Несмотря на то, что Perl 6 ещё не вышел официально, все желающие уже могут найти в сети совместимые с ним компиляторы и виртуальные машины. Под катом вас ждут описания докладов и материалы с прошлой встречи.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры3.4K
Комментарии 4

Perl 6 и последовательности Маркова

PerlПрограммирование
Перевод
Рассмотрим одну нечисловую последовательность, основанную на использовании цепей Маркова в тексте. Следующий символ последовательности будет случайным образом определяться на основе двух предыдущих. Распределение следует шаблону, содержащемуся в исходном тексте.

use v6;
use List::Utils;
 
my $model-text = $*IN.slurp.lc;
$model-text .=subst(/<[_']>/, "", :global);
$model-text .=subst(/<-alpha>+/, " ", :global);
 
my %next-step;
for sliding-window($model-text.comb, 3) -> $a, $b, $c {
    %next-step{$a ~ $b}{$c}++;
}
 
my $first = $model-text.substr(0, 1);
my $second = $model-text.substr(1, 1);
my @chain := $first, $second, -> $a, $b { %next-step{$a ~ $b}.roll.key } ... *;
say @chain.munch(80);


После инициализации в коде чётко видны три части.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры3.8K
Комментарии 3

Работа с датой и временем в Perl6

PerlПрограммирование
Перевод

time и now


Две функции, которые возвращают текущее время (по крайней мере, то значение, которое ваше система принимает за текущее) – это time и now. Пример:

> say time; say now;
1292460064
Instant:2010-12-16T00:41:4.873248Z


Первая очевидная разница – time возвращает POSIX в целочисленном виде. now возвращает объект под названием Instant. Если вам нужны доли секунд и распознавание секунд координации времени, используйте now.

DateTime и его друзья


Большую часть времени вам нужно хранить даты, отличающиеся от now. Для этого используется объект DateTime. Для сохранения текущего времени:
Читать дальше →
Всего голосов 18: ↑14 и ↓4 +10
Просмотры1.9K
Комментарии 0

Meta-Object Protocol в Perl6

Perl
Перевод
Tutorial
В некоторых языках программирования существует интерфейс для создания класса не через его определение, а через выполнение некоего кода. Этот API называется Meta-Object Protocol или MOP.

В Perl 6 есть MOP, позволяющий создавать классы, роли и грамматики, добавлять методы и атрибуты и делать интроспекцию классов. К примеру, вот как в Rakudo можно использовать вызовы MOP, чтобы узнать, как реализован тип Rat (рациональные числа). Вызовы методов MOP обычно начинаются не с точки, а с .^

 $ perl6
 > say join ', ', Rat.^attributes
 $!numerator, $!denominator
 > # список всех методов слишком длинный,
 > # поэтому мы сделаем случайную их выборку
 > say join ', ', Rat.^methods(:local).pick(5)
 unpolar, ceiling, reals, Str, round
 > say Rat.^methods(:local).grep('log').[0].signature.perl
 :(Numeric $x: Numeric $base = { ... };; *%_)


Большинство строк должны быть понятны: у объектов класса Rat есть два атрибута, $!numerator и $!denominator, и много методов. Метод log принимает значение Numeric как вызывающий метод (это отмечено двоеточием после имени параметра) и необязательный второй параметр $base, у которого есть значение по умолчанию (число Эйлера e).

Хороший пример использования можно взять из интерфейса баз данных Perl 6. У него есть возможность записывать вызовы объекта в log, ограничив при этом запись методов одной конкретной ролью (к примеру, только роли, которая занимается вопросами соединения с базой, или же вопросами извлечения данных). Вот пример:
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры2.7K
Комментарии 0

.sort'ировка в Perl 6

PerlПрограммирование
Перевод
Сортировка списков – очень распространённая задача в программировании, и в Perl 6 есть несколько улучшений функции sort, помогающих вам решить такую задачу.

В языке есть обыкновенный типичный sort:

    # сортировка по умолчанию с учётом типа
    my @sorted = @unsorted.sort; # или sort @unsorted;


Как и в Perl 5, можно настраивать функцию для сравнения:

    # численное сравнение
    my @sorted = @unsorted.sort: { $^a <=> $^b };


    # то же, с использованием функциональной семантики
    my @sorted = sort { $^a <=> $^b }, @unsorted;


    # строковое сравнение ( как cmp в Perl 5 )
    my @sorted = @unsorted.sort: { $^a leg $^b };


    # сравнение с учётом типа
    my @sorted = @unsorted.sort: { $^a cmp $^b };


Если записать условие сравнения в скобках, тогда вам не понадобится двоеточие. Это удобно, когда вы хотите выстроить цепочку из других методов, тянущуюся за sort:

    my @topten = @scores.sort( { $^b <=> $^a } ).list.munch(10);

Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры9.1K
Комментарии 2
1