Программирование на языке Lua
Покупка
Издательство:
ДМК Пресс
Автор:
Иерузалимски Роберту
Перевод:
Боресков Алексей Викторович
Год издания: 2014
Кол-во страниц: 382
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-94074-767-3
Артикул: 487729.03.99
К покупке доступен более свежий выпуск
Перейти
Книга посвящена одному из самых популярных встраиваемых языков - Lua. Этот язык использовался во многих играх и большом количестве различных приложений. Язык сочетает небольшой объем занимаемый памяти, высокое быстродействие, простоту использования и большую гибкость. Книга рассматривает практически все аспекты использования Lua, начиная с основ языка и заканчивая тонкостями расширения языка и взаимодействия с С. Важной особенностью книги является огромный спектр охватываемых тем - практически все, что может понадобиться при использовании Lua. Также к каждой главе дается несколько упражнений, позволяющих проверить свои знания. Книга будет полезна широкому кругу программистов и разработчиков игр. Для понимания последних глав книги необходимо знание языка С, но для большинства остальных глав достаточно базовых знаний о программировании.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
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
К покупке доступен более свежий выпуск
Перейти