Содержание

Содержание

Предисловие.....................................................................................................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 г.