Язык программирования Lua скачать

Язык программирования Lua скачать.rar
Закачек 1857
Средняя скорость 8657 Kb/s

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

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

На нашем сайте вы можете скачать книгу «Программирование на языке Lua» Роберту Иерузалимски бесплатно и без регистрации в формате fb2, rtf, epub, pdf, txt, читать книгу онлайн или купить книгу в интернет-магазине.

FB2, TXT, EPUB, iOS.EPUB, PDF, MOBI

Ценитель классики (рецензий 840 / оценок +1243) +1

Единственное издание по данному набирающему популярность скриптовому языку. Поразил тираж — всего 100 экземпляров. Книга написана автором языка, что делает ее априори самым лучшим учебником по изучению. Материал дан в простой форме, хорошо, если у вас уже есть опыт изучения других языков. Белые листы, много примеров. Примеры страниц прилагаются.

18.04.2017 00:29:09 Нестеров Андрей (рецензий 17 / оценок +10) 0

Единственное издание про Lua — это потому, что после Иерузалимски нет смысла пытаться что-то написать больше или лучше. Прекрасный учебник. И сам язык Lua тоже интересный.

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

ВВЕДЕНИЕ
Когда Вальдемар, Луис и я начали разработку Lúa в 1993 году, мы с трудом могли себе представить, что Lúa так распространится. Начавшись как домашний язык для двух специфичных проектов, сейчас Lúa широко используется во всех областях, которые могут получить выигрыш от простого, расширяемого, переносимого и эффективного скриптового языка, таких как встроенные системы, мобильные уст­ройства и, конечно, игры. Мы разработали Lúa с самого начала для интегрирования с про­граммным обеспечением, написанным на C/C++ и других распро­страненных языках. Эта интеграция несет с собой много преимуществ. Lúa – это крошечный и простой язык, частично из-за того, что он не пытается делать то, в чем уже хорош С, например быстродействие, низкоуровневые операции и взаимодействие с программами третьих сторон. Для этих задач Lúa полагается на С. Lúa предлагает то, для чего С недостаточно хорош: достаточная удаленность от аппаратно­го обеспечения, динамические структуры, отсутствие избыточности и легкость тестирования и отладки. Для этих целей Lúa располагает безопасным окружением, автоматическим управлением памятью и хорошими возможностями для работы со строками и другими типами данных с изменяемым размером.
Часть силы Lúa идет от его библиотек. И это не случайно. В конце концов, одной из главных сил Lúa является расширяемость. Многие особенности языка вносят в это свой вклад. Динамическая типиза­ция предоставляет большую степень полиморфизма. Автоматическое управление памятью упрощает интерфейсы, поскольку нет необхо­димости решать, ктоотвечает за выделение и освобождение памяти или как обрабатывать переполнения. Функции высших порядков и анонимные функции позволяют высокую степень параметризации, делая функции более универсальными.
В большей степени, чем расширяемым языком, Lúa является «склеи­вающим» (glue) языком. Lúa поддерживает компонентный подход к разработке программного обеспечения, когда мы создаем приложение, склеивая вместе существующие высокоуровневые компоненты. Эти компоненты написаны на компилируемом языке со статической типизацией, таком как C/C++; Lúa является «клеем», который мы ис­пользуем для компоновки и соединения этих компонентов. Обычно компоненты (или объекты) представляют более конкретные низко­уровневые сущности (такие как виджеты и структуры данных), ко­торые почти не меняются во время разработки программы и которые занимают основную часть времени выполнения итоговой программы.
Lúa придает итоговую форму приложению, которая, скорее всего, сильно меняется во время жизни данного программного продукта. Однако, в отличие от других «склеивающих» технологий, Lúa явля­ется полноценным языком программирования. Поэтому мы можем использовать Lúa не только для «склеивания» компонентов, но и для адаптации и настройки этих компонентов, а также для создания пол­ностью новых компонентов.
Конечно, Lúa не единственный скриптовый язык. Существуют другие языки, которые вы можете использовать примерно для тех же целей. Тем не менее Lúa предоставляет целый набор возможностей, которые делают его лучшим выбором для многих задач и дает ему свой уникальный профиль:

  • Расширяемость. Расширяемость Lúa настолько велика, что многие рассматривают Lúa не как язык, а как набор для по­строения DSL (domain-specific language, язык, созданный для определенной области, применения). Мы разрабатывали Lúa с самого начала, чтобы он был расширяемым как через код на Lúa, так и через код на С. Как доказательство Lúa реализует большую часть своей базовой функциональности через внеш­ние библиотеки. Взаимодействие с C/C++ действительно просто, и Lúa был успешно интегрирован со многими другими языками, такими как Fortran, Java, Smalltalk, Ada, С#, и даже со скриптовыми языками, такими как Perl и Python.
  • Простота. Lúa – это простой и маленький язык. Он основан на небольшом числе понятий. Эта простота облегчает изуче­ние. Lúa вносит свой вклад в то, что его размер очень мал. Пол­ный дистрибутив (исходный код, руководство, бинарные фай­лы для некоторых платформ) спокойно размещается на одном флоппи-диске.
  • Эффективность. Lúa обладает весьма эффективной реализа­цией. Независимые тесты показывают, что Lúa – один из са­мых быстрых языков среди скриптовых языков.
  • Нормируемость. Когда мы говорим о портируемости, мы гово­рим о запуске Lúa на всех платформах, о которых вы только слышали: все версии Unix и Windows, PlayStation, Xbox, Mac OS X и iOS, Android, Kindle Fire, NOOK, Haiku, QUALCOMM Brew, большие серверы от IBM, RISC OS, Symbian OS, процес­соры Rabbit, Raspberry Pi, Arduino и многое другое. Исходный код для каждой из этих платформ практически одинаков. Lúa
    не использует условную компиляцию для адаптации своего кода под различные машины, вместо этого он придерживает­ся стандартного ANSI (ISO) С. Таким образом, вам обычно не нужно адаптировать его под новую среду: если у вас есть ком­пилятор с ANSI С, то вам просто нужно откомпилировать Lúa.

Аудитория
Пользователи Lúa обычно относятся к одной из трех широких групп: те, кто используют Lúa, уже встроенный в приложение, те, кто ис­пользуют Lúa отдельно от какого-либо приложения (standalone), и те, кто используют Lúa и С вместе.
Многие используют Lúa, встроенный в какое-либо приложение, например в Adobe Lightroom, Nmap или World of Warcraft. Эти при­ложения используют Lua-C API для регистрации новых функций, создания новых типов и изменения поведения некоторых операций языка, конфигурируя Lúa для своей области. Часто пользователи та­кого приложения даже не знают, что Lúa – это независимый язык, адаптированный под данную область. Например, многие разработчи­ки плагинов для Lightroom не знают о других использованиях этого языка; пользователи Nmap обычно рассматривают Lúa как скрипто­вый язык Nmap; игроки в World of Warcraft могут рассматривать Lúa как язык исключительно для данной игры.
Lúa также полезен и как просто независимый язык, не только для обработки текста и одноразовых маленьких программ, но также и для различных проектов от среднего до большого размера. Для по­добного использования основная функциональность Lúa идет от ее библиотек. Стандартные библиотеки, например, предоставляют базо­вую функциональность по работе с шаблонами и другие функции для работы со строками. По мере того как Lúa улучшает свою поддержку библиотек, появилось большое количество внешних пакетов. Lúa Rocks, система для сборки и управления модулями для Lúa, сейчас насчитывает более 150 пакетов.
Наконец, есть программисты, которые используют Lua как библио­теку для С. Такие люди больше пишут на С, чем на Lua, хотя им тре­буется хорошее понимание Lua для создания интерфейсов, которые являются простыми, легкими для использования и хорошо интегри­рованными с языком.
Эта книга может оказаться полезной всем этим людям. Первая часть покрывает сам язык, показывая, как можно использовать весь его потенциал. Мы фокусируемся на различных конструкциях языка и используем многочисленные примеры и упражнения, чтобы пока­зать, как их использовать для практических задач. Некоторые гла­вы этой части покрывают базовые понятия, такие как управляющие структуры, в то время как остальные главы покрывают более продви­нутые темы, такие как итераторы и сопрограммы.
Вторая часть полностью посвящена таблицам, единственной струк­туре данных в Lua. Главы этой части обсуждают структуры данных, их сохранение (persistence), пакеты и объектно-ориентированное программирование. Именно там мы покажем всю силу языка.
Третья часть представляет стандартные библиотеки. Эта часть особенно полезна для тех, кто использует Lua как самостоятельный язык, хотя многие приложения включают частично или полностью стандартные библиотеки. В этой части каждой библиотеке посвящена отдельная глава: математической библиотеке, побитовой библиотеке, библиотеке по работе с таблицами, библиотеке по работе со строка­ми, библиотеке ввода/вывода, библиотеке операционной системы и отладочной библиотеке.
Наконец, последняя часть книги покрывает API между Lua и С. Эта часть заметно отличается от всей остальной книги. В этой части мы будем программировать на С, а не на Lua. Для кого-то эта часть может оказаться неинтересной, а для кого-то – наоборот, самой по­лезной частью книги.

О третьем издании
Эта книга является обновленной и расширенной версией второго из­дания «Programming in Lua» (также известной как PiL2). Хотя струк­тура книги практически та лее самая, это издание включает в себя пол­ностью новый материал.
Во-первых, я обновил всю книгу на Lua 5.2. Глава об окружениях (environments) была практически полностью переписана. Я также пе­реписал несколько примеров для того, чтобы показать преимущества использования новых возможностей, предоставляемых Lua 5.2. Од­нако я четко обозначил отличия от Lua 5.1, поэтому вы можете ис­пользовать книгу для работы с этой версией языка.
Во-вторых, и более важно, я добавил упражнения во все главы кни­ги. Сложность этих упражнений варьируется от простых вопросов до полноценных небольших проектов. Некоторые примеры иллюстри­руют важные аспекты программирования на Lua и так же, как и при­меры, расширят ваш набор полезных приемов.
Так же, как мы поступили с первым и вторым изданиями «Pro­gramming in Lua», мы сами опубликовали третье издание. Несмотря на маркетинговые ограничения, этот подход обладает рядом преиму­ществ: мы сохраняем полный контроль над содержимым книги; мы сохраняем все права для предложения книги в других формах; мы обладаем свободой для выбора, когда выпустить следующее издание; мы можем быть уверены, что книга всегда будет доступна.

Другие ресурсы
Краткое руководство необходимо всем, кто хочет освоить язык. Эта книга не заменяет краткое руководство. Напротив, они дополняют друг друга. Руководство только описывает Lua. Оно не показывает ни примеров, ни объяснений для конструкций языка. С другой стороны, оно полностью описывает язык: эта книга опускает некоторые, редко используемые, «темные углы» Lua. Более того, руководство описы­вает язык. Там, где эта книга расходится с руководством, доверяйте руководству. Чтобы получить руководство и дополнительную инфор­мацию по Lua, посетите веб-сайт www.lua.org.
Вы также можете найти полезную информацию на сайте поль­зователей Lua, поддерживаемом сообществом пользователей Lua, lua-users.org. Помимо других ресурсов, он предлагает также обучающий курс (tutorial), список сторонних пакетов и доку­ментации, архив официальной рассылки по Lua.
Эта книга описывает Lua 5.2, хотя большая часть содержимого так­же применима к Lua 5.1 и Lua 5.0. Некоторые отличия Lua 5.2 от пре­дыдущих версий Lua 5 четко обозначены в книге. Если вы используе­те более свежую версию (выпущенную после этой книги), обратитесь к руководству по поводу отличий между версиями. Если вы исполь­зуете версию старее, чем 5.2, то, может, пора подумать о переходе на более новую версию.

Некоторые типографские соглашения
В этой книге строки символов (“literal string”) заключены в двойные кавычки, а одиночные символы, например ‘а’, заключены в одиночные кавычки. Строки, которые являются шаблонами, так­же заключены в одиночные кавычки, например ‘[%w_]*’. В книге моноширинный шрифт используется для фрагментов кода и идентификаторов. Для зарезервированных слов используется жирный шрифт. Большие фрагменты кода показаны с применением следую­щего стиля:

— program “Hello World”
print(“Hello World”) — > Hello World

Обозначение —> показывает результат выполнения оператора или результат выражения:

print (10) — > 10
13+3 –> 16

Поскольку двойной знак минус (—) начинает комментарий в Lúa, ничего не будет если вы включите такой результат вывода (вместе с –>) в свою программу. Наконец, в книге используется обозначение для обозначения того, что что-то эквивалентно чему-то другому:


Статьи по теме