Содержание
Предисловие.....................................................................................................5
1. Обзор проекта..............................................................................................9
Рождение Perl 6..........................................................................................9
С самого начала........................................................................................10
Миссия продолжается..............................................................................11
2. Работа над проектом.................................................................................17
Разработка языка......................................................................................17
Разработка Parrot......................................................................................19
3. Философия разработки............................................................................24
Лингвистический и познавательный взгляды .......................................24
Архитектурный взгляд ............................................................................31
4. Базовый синтаксис...................................................................................34
Переменные ..............................................................................................34
Операторы.................................................................................................44
Управляющие структуры ........................................................................62
5. Подпрограммы..........................................................................................72
Использование подпрограмм..................................................................72
Параметры ................................................................................................73
Аргументы ................................................................................................78
Пустые подпрограммы............................................................................81
Область действия подпрограммы...........................................................81
Анонимные подпрограммы.....................................................................83
Перегружаемые подпрограммы..............................................................84
Подпрограммы с каррингом....................................................................85
«Обернутые» подпрограммы ..................................................................85
Lvalue-подпрограммы..............................................................................86
Макросы....................................................................................................87
6. Объекты......................................................................................................89
Использование объектов .........................................................................89
Классы.......................................................................................................90
Роли ...........................................................................................................94
Делегирование..........................................................................................98
Private и public ..........................................................................................99
Подпрограммы .......................................................................................100
Подметоды..............................................................................................100
Множественная диспетчеризация ........................................................101
7. Грамматики и правила..........................................................................103
Использование правил...........................................................................103
«Строительные» блоки ..........................................................................106
Модификаторы .......................................................................................111
Встроенные правила ..............................................................................113
Управление поиском в обратном направлении...................................114
Гипотетические переменные.................................................................115
8. Внутренняя структура Parrot...............................................................116
Основные принципы разработки..........................................................116
Архитектура Parrot.................................................................................117
Интерпретатор........................................................................................122
Ввод-вывод, события и потоки .............................................................129
Объекты...................................................................................................135
Расширенные возможности...................................................................137
Заключение .............................................................................................142
9. Язык ассемблера Parrot.........................................................................143
С чего начать ..........................................................................................143
Основы ....................................................................................................144
Работа с PMC..........................................................................................164
Управление потоком..............................................................................169
Стеки и фреймы регистров....................................................................173
Лексические и глобальные переменные ..............................................177
Подпрограммы .......................................................................................181
Исключения и обработчики исключений ............................................191
События...................................................................................................193
Потоки.....................................................................................................194
Загрузка байт-кода.................................................................................197
Классы и объекты...................................................................................199
Написание тестов ...................................................................................207
10. Промежуточное представление Parrot (PIR)...................................209
Операторы...............................................................................................209
Переменные и константы......................................................................210
Символьные операторы.........................................................................215
Метки.......................................................................................................216
Управление потоком..............................................................................218
Подпрограммы .......................................................................................220
Методы....................................................................................................227
11. Справочник по Parrot..........................................................................229
Коды операций PASM ...........................................................................229
Директивы PIR .......................................................................................274
Команды PIR...........................................................................................277
Опции командной строки Parrot...........................................................282
Предметный указатель..............................................................................289
Эллисон Рэндал, Дэн Сугальски и Леопольд Тёч "Perl 6 и Parrot: справочник" 2005 г.