Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование на языке Lua

Покупка
Артикул: 487729.03.99
К покупке доступен более свежий выпуск Перейти
Книга посвящена одному из самых популярных встраиваемых языков - Lua. Этот язык использовался во многих играх и большом количестве различных приложений. Язык сочетает небольшой объем занимаемый памяти, высокое быстродействие, простоту использования и большую гибкость. Книга рассматривает практически все аспекты использования Lua, начиная с основ языка и заканчивая тонкостями расширения языка и взаимодействия с С. Важной особенностью книги является огромный спектр охватываемых тем - практически все, что может понадобиться при использовании Lua. Также к каждой главе дается несколько упражнений, позволяющих проверить свои знания. Книга будет полезна широкому кругу программистов и разработчиков игр. Для понимания последних глав книги необходимо знание языка С, но для большинства остальных глав достаточно базовых знаний о программировании.
Иерузалимски, Р. Программирование на языке Lua / Р. Иерузалимски ; пер. с англ. А.В. Борескова. - 3-е изд. - Москва : ДМК Пресс, 2014. - 382 с. - ISBN 978-5-94074-767-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1028099 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
785940 747673

ISBN 978-5-94074-767-3
Internet-магазин
 www.dmkpress.com

Книга-почтой:
orders@alians-kniga.ru

Оптовая продажа: 
“Альянс-книга“
(499)782-3889
books@alians-kniga.ru

Программирование 
на языке Lua

www.дмк.рф

Роберту Иерузалимски

Книга посвящена одному из самых популярных встраиваемых языков - Lua. 
Этот язык используется во многих играх и большом количестве различных 
приложений. Он сочетает небольшой объем занимаемый памяти, высокое 
быстродействие, простоту использования и большую гибкость. Книга рассматривает практически все аспекты использования Lua, начиная с основ 
языка и заканчивая тонкостями расширения языка и взаимодействия с С.

Важной особенностью книги является огромный спектр охватываемых тем 
- практически все, что может понадобиться при использовании Lua. Также к 
каждой главе дается несколько упражнений, позволяющих проверить свои 
знания.

Книга будет полезна широкому кругу программистов и разработчиков игр. 
Для понимания последних глав книги необходимо знание языка С, но для 
большинства остальных глав достаточно базовых знаний о программировании.

От создателя языка Lua

Роберту Иерузалимски - доцент католического университета Рио-де-Жанейро, где он занимается разработкой и реализацией языков программирования. 
Создатель и ведущий архитектор языка Lua. Обладатель докторской степени по информатике. Работал в 
качестве приглашенного иследователя в университете 
Ваатерло, International Computer Science Institie,  институте Фраунгофера в Иллинойском университете Урабана-Шампейне, а также в качестве профессора в Центре 
латино-американских исследований (Center For Latin 
American Studies) Стэндфордского университета.

Программирование на языке Lua
Роберту
Иерузалимски

Роберту Иерузалимски

Программирование 
на языке Lua

Третье издание

Programming 
in Lua

Third Edition

ROBERTO IERUSALIMSCHY

PUC-RIO, BRAZIL
RIO DE JANEIRO

Москва, 2014

РОБЕРТУ ИЕРУЗАЛИМСКИ

Программирование 
на языке Lua

Третье издание

УДК     004.432.42Lua
ББК      32.973.28-018.1
И30

И30     Иерузалимски Р.

Программирование на языке Lua. 3-е издание / пер. с англ. А. В. Боресков – М.: ДМК Пресс, 2014. – 382 с.: ил.

             ISBN 978-5-94074-767-3

Книга посвящена одному из самых популярных встраиваемых 
языков – Lua. Этот язык использовался во многих играх и большом 
количестве различных приложений. Язык сочетает небольшой объем 
занимаемый памяти, высокое быстродействие, простоту использования 
и большую гибкость. Книга рассматривает практически все аспекты 
использования Lua, начиная с основ языка и заканчивая тонкостями 
расширения языка и взаимодействия с С.
Важной особенностью книги является огромный спектр охватывае
мых тем – практически все, что может понадобиться при использовании Lua. Также к каждой главе дается несколько упражнений, позволяющих проверить свои знания.
Книга будет полезна широкому кругу программистов и разработчиков игр. Для понимания последних глав книги необходимо знание 
языка С, но для большинства остальных глав достаточно базовых знаний о программировании.

                                                                             УДК 004.432.42Lua
                                                                                           ББК 32.973.28-018.1

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

ISBN 978-85-903798-5-0 (англ.)                     © 2013, 2003 by Roberto Ierusalimschy 
ISBN 978-5-94074-767-3 (рус.)                       © Оформление, перевод на русский язык 

      ДМК Пресс, 2014

ОГЛАВЛЕНИЕ

Введение ........................................................ 12
Аудитория ............................................................................... 14
О третьем издании .................................................................. 15
Другие ресурсы ....................................................................... 16
Некоторые типографские соглашения ..................................... 17
Запуск примеров ..................................................................... 17
Благодарности ........................................................................ 18

ЧАСТЬ I
Язык ............................................................... 19

Глава 1. Начинаем ............................................ 20
1.1. Блоки ................................................................................ 20
1.2. Некоторые лексические соглашения ................................. 22
1.3. Глобальные переменные ................................................... 24
1.4. Отдельный интерпретатор ................................................ 24
Упражнения ............................................................................. 26

Глава 2. Типы и значения .................................... 27
2.1. Nil ..................................................................................... 28
2.2. Boolean (логические значения) ......................................... 28
2.3. Числа ................................................................................ 28
2.4. Строки .............................................................................. 30
Литералы .....................................................................................30
Длинные строки ...........................................................................32
Приведения типов ........................................................................33
2.5. Таблицы ............................................................................ 34
2.6. Функции ............................................................................ 38
2.7. userdata и нити .................................................................. 38
Упражнения ............................................................................. 39

Глава 3. Выражения .......................................... 40
3.1. Арифметические операторы ............................................. 40
3.2. Операторы сравнения ....................................................... 41
3.3. Логические операторы ...................................................... 42

Оглавление

3.4. Конкатенация .................................................................... 43
3.5. Оператор длины ................................................................ 43
3.6. Приоритеты операторов ................................................... 45
3.7. Конструкторы таблиц ........................................................ 46
Упражнения ............................................................................. 48

Глава 4. Операторы ........................................... 49
4.1. Операторы присваивания ................................................. 49
4.2. Локальные переменные и блоки ........................................ 50
4.3. Управляющие конструкции ............................................... 52
if then else .....................................................................................53
while .............................................................................................53
repeat ...........................................................................................54
Числовой оператор for ..................................................................54
Оператор for общего вида ............................................................55
4.4. break, return и goto ............................................................ 57
Упражнения ............................................................................. 60

Глава 5. Функции .............................................. 62
5.1. Множественные результаты .............................................. 64
5.2. Функции с переменным числом аргументов ...................... 68
5.3. Именованные аргументы .................................................. 70
Упражнения ............................................................................. 72

Глава 6. Еще о функциях .................................... 73
6.1. Замыкания ........................................................................ 75
6.2. Неглобальные функции ..................................................... 79
6.3. Оптимизация хвостовых вызовов ...................................... 82
Упражнения ............................................................................. 83

Глава 7. Итераторы и обобщенный for .................. 85
7.1. Итераторы и замыкания .................................................... 85
7.2. Семантика обобщенного for .............................................. 87
7.3. Итераторы без состояния ................................................. 89
7.4. Итераторы со сложным состоянием .................................. 91
7.5. Подлинные итераторы (true iterarators) .............................. 93
Упражнения ............................................................................. 94

Глава 8. Компиляция, выполнение и ошибки ......... 96
8.1. Компиляция ...................................................................... 96
8.2. Предкомпилированный код ............................................. 100
8.3. Код на С .......................................................................... 102
8.4. Ошибки ........................................................................... 103
8.5. Обработка ошибок и исключений .................................... 105

Оглавление

8.6. Сообщения об ошибках и стек вызовов ........................... 106
Упражнения ........................................................................... 108

Глава 9. Сопрограммы ..................................... 110
9.1. Основы сопрограмм ....................................................... 110
9.2. Каналы и фильтры ........................................................... 113
9.3. Сопрограммы как итераторы .......................................... 117
9.4. Невытесняющая многонитевость .................................... 119
Упражнения ........................................................................... 124

Глава 10. Законченные примеры ....................... 125
10.1. Задача о восьми королевах ........................................... 125
10.2. Самые часто встречающиеся слова .............................. 127
10.3. Цепь Маркова ............................................................... 129
Упражнения ........................................................................... 131

ЧАСТЬ II
Таблицы и объекты.......................................... 133

Глава 11. Структуры данных ............................. 134
11.1. Массивы ....................................................................... 134
11.2. Матрицы и многомерные массивы ................................ 135
11.3. Связанные списки ......................................................... 137
11.4. Очереди и двойные очереди ......................................... 138
11.5. Множества и наборы ..................................................... 139
11.6. Строчные буферы ......................................................... 141
11.7. Графы ........................................................................... 142
Упражнения ........................................................................... 144

Глава 12. Файлы данных и персистентность ........ 146
12.1. Файлы с данными .......................................................... 146
12.2. Сериализация ............................................................... 148
Сохранение таблиц без циклов .................................................151
Сохранение таблиц с циклами ..................................................152
Упражнения ........................................................................... 155

Глава 13. Метатаблицы и метаметоды ............... 156
13.1. Арифметические метаметоды ....................................... 157
13.2. Метаметоды сравнения................................................. 160
13.3. Библиотечные метаметоды ........................................... 161
13.4. Метаметоды для доступа к таблице ............................... 162
Метаметод __index ...................................................................163
Метаметод __newindex .............................................................164
Таблицы со значениями по умолчанию .....................................165

Оглавление

Отслеживание доступа к таблице .............................................166
Таблицы, доступные только для чтения .....................................168
Упражнения ........................................................................... 169

Глава 14. Окружение ....................................... 170
14.1. Глобальные переменные с динамическими именами..... 170
14.2. Описания глобальных переменных ................................ 172
14.3. Неглобальные окружения .............................................. 174
14.4. Использование _ENV ..................................................... 176
14.5. _ENV и load .................................................................... 179
Упражнения ........................................................................... 181

Глава 15. Модули и пакеты ............................... 182
15.1. Функция require ............................................................. 184
Переименовывание модуля ......................................................185
Поиск по пути ...........................................................................186
Искатели файлов ......................................................................187
15.2. Стандартный подход для написания модулей на Lua ..... 188
15.3. Использование окружений ............................................ 190
15.4. Подмодули и пакеты ...................................................... 192
Упражнения ........................................................................... 193

Глава 16. Объектно-ориентированное 
программирование ......................................... 195
16.1. Классы .......................................................................... 197
16.2. Наследование ............................................................... 199
16.3. Множественное наследование ...................................... 201
16.4. Скрытие ........................................................................ 203
16.5. Подход с единственным методом ................................. 205
Упражнения ........................................................................... 206

Глава 17. Слабые таблицы и финализаторы ........ 208
17.1. Слабые таблицы ............................................................ 208
17.2. Функции с кэшированием ............................................. 210
17.3. Атрибуты объекта .......................................................... 212
17.4. Опять таблицы со значениями по умолчанию ................ 213
17.5. Эфемерные таблицы ..................................................... 215
17.6. Финализаторы .............................................................. 216
Упражнения ..............................................................................220

ЧАСТЬ III
Стандартные библиотеки ................................. 221

Глава 18. Математическая библиотека ............... 222

Оглавление

Упражнения ........................................................................... 223

Глава 19. Библиотека для побитовых операций ... 224
Упражнения ........................................................................... 227

Глава 20. Библиотека для работы с таблицами .... 228
20.1. Функции insert и remove ................................................ 228
20.2. Сортировка ................................................................... 229
20.3. Конкатенация ................................................................ 230
Упражнения ........................................................................... 231

Глава 21. Библиотека для работы со строками ..... 232
21.1. Основные функции для работы со строками .................. 232
21.2. Функции для работы с шаблонами ................................ 235
Функция string.find ...................................................................235
Функция string.match ................................................................236
Функция string.gsub ..................................................................236
Функция string.gmatch ..............................................................237
21.3. Шаблоны ....................................................................... 238
21.4. Захваты ......................................................................... 242
21.5. Замены ......................................................................... 245
Кодировка URL .........................................................................246
Замена табов ...........................................................................248
21.6. Хитрые приемы ............................................................. 249
21.7. Юникод ......................................................................... 252
Упражнения ........................................................................... 255

Глава 22. Библиотека ввода/вывода .................. 256
22.1. Простая модель ввода/вывода ...................................... 256
22.2. Полная модель ввода/вывода ....................................... 260
Небольшой прием для увеличения быстродействия .................261
Бинарные файлы ......................................................................262
22.3. Другие операции над файлами ..................................... 264
Упражнения ........................................................................... 266

Глава 23. Библиотека функций операционной 
системы ........................................................ 267
23.1. Дата и время ................................................................. 267
23.2. Другие вызовы системы ................................................ 270
Упражнения ........................................................................... 271

Глава 24. Отладочная библиотека ...................... 272
24.1. Возможности по доступу (интроспекции) ...................... 272
Доступ к локальным переменным .............................................275
Доступ к нелокальным переменным .........................................276

К покупке доступен более свежий выпуск Перейти