Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

рецепты lua

АЛЕКСАНДР ГЛАДЫШ

Спецвыпуск: Хакер, номер #064, стр. 064-042-1


ВЕДУЩИЙ ПРОГРАММИСТ КОМПАНИИ STEP CREATIVE GROUP, WWW.STEPGAMES.RU

СОВЕТЫ ПО ПРОГРАММИРОВАНИЮ ИГР

LUA (www.lua.org) — ОДИН ИЗ СКРИПТОВЫХ ЯЗЫКОВ, ИСПОЛЬЗУЕМЫХ В ИГРАХ ЧАЩЕ ВСЕГО. ЭТОТ ЯЗЫК ПОПУЛЯРЕН НАСТОЛЬКО В ОСНОВНОМ БЛАГОДАРЯ ПРОДУМАННОМУ ДИЗАЙНУ И РЕАЛИЗАЦИИ ЯЗЫКА

Первая версия языка Lua была создана в 1993 году сотрудниками научно-исследовательской группы по технологиям компьютерной графики (Computer Graphics Technology Group, TeCGraf) Бразильского папского католического университета (Pontifical Catholic University, PUC-Rio) в Рио-де-Жанейро. Над языком работали три человека: Роберто Иерусалимский (Roberto Ierusalimschy), Луиш Энрике де Фигуиредо (Luiz Henrique de Figueiredo) и Вальдемар Челеш (Waldemar Celes). Название языка на португальском означает «луна» и произносится как «луа» (LOO-ah). Истории развития языка посвящена специальная страница его официального сайта — www.lua.org/versions.html.

В 2003 году была выпущена версия языка 5.0.2, последняя на момент написания статьи (следующая версия 5.1 находится на стадии бета-тестирования) — Lua обрел зрелость и стабильность. Его интерпретатор, реализованный на основе регистровой (register-based) виртуальной машины, очень эффективен и по производительности, и по объему занимаемой памяти. В сборке со всеми стандартными библиотеками языка он добавляет к исполняемому файлу программы всего порядка 150 Кб (100 Кб без библиотек).

Интерпретатор Lua написан на «чистом» (clean) C (подмножестве языков ANSI C и C++), его можно собрать на любой платформе, для которой существует компилятор, поддерживающий стандарт ANSI C. Высокая портируемость (portability) языка обеспечена!

Изначально Lua был задуман как язык расширения функциональности приложений (extension language), и поэтому он обладает достаточно удобным в этом плане интерфейсом (так называемый Lua C API).

гибкий синтаксис

Lua обладает несложным синтаксисом, близким к традиционному и несколько напоминающим Pascal. Часто элементы синтаксиса носят необязательный характер, что позволяет писать на Lua и в C-подобном стиле, и в стиле, который при определенном старании можно приблизить к некоему подобию формализованного человеческого языка благодаря отсутствию избыточных синтаксических конструкций.

Традиционный пример Hello world на Lua состоит из одной строчки:

print(“Hello, world!”);

Синтаксис языка позволяет при желании опустить скобки и точку с запятой. Таким образом, вот эта конструкция эквивалентна первой:

print “Hello, world”

Обычно сердцу программиста милее конструкция со скобками: ее легче воспринимает взгляд, натренированный работой с C-подобными языками. Однако язык Lua удобно использовать в качестве языка, специализированного под конкретную задачу (Domain-Specific Languages, DSL), например как язык описательного характера, такой как «язык» конфигурационного файла программы. Свобода в синтаксисе Lua бывает очень полезна для повышения выразительности подобных языков.

В Lua также удобно хранить табличные данные, причем их можно экспортировать непосредственно из Excel, написав маленький скрипт-кодогенератор на Visual Basic. Значит, больше не нужен лишний парсер данных (например, в формате CSV) — парсер и интерпретатор Lua сделают все за тебя.

Содержание  Вперед на стр. 064-042-2