реферат инфа маланина



Министерство сельского хозяйства Российской Федерации ФГОУ ВПО

« Кемеровский государственный сельскохозяйственный институт»

Кафедра:Теоретической экономики,экономического моделирования и права.

Тема: Языки программирования: Lua

Выполнил:

Маланина Екатерина

Проверил:

Преподаватель информатики

к.э.н. доцент Бондарев Н.С

Оглавление

1.История:3

2.Возможности:4

3.Типы:5

4.Таблицы:6

5.Реализация:7

5.Игры:8

6.Список использованной литературы:9

1.История:

Lua разработан подразделением Tecgraf (группа технологий компьютерной графики) Католического университета Рио-де-Жанейро в Бразилии, история языка ведёт отсчёт с 1993 года. Авторы языка — Роберту Иерузалимски, Луиш Энрике ди Фигейреду (Luiz Henrique de Figueiredo) и Валдемар Селиш (Waldemar Celes). Lua распространяется свободно, с открытыми исходными текстами на языке Си.

Историческими родителями LUA были языки описания конфигураций и данных (англ.data-decription/configurationSOL (Simple Object Language) и DEL (data-entry language). Они были независимо разработаны в Tegraf в 1992—1993 годах, чтобы добавить гибкости в два различных проекта(оба были интерактивными графическими программами для конструкторских приложений в компании Petrobras). Отсутствовало какое-либо управление потоками структур в SOL и DEL и Petrobras чувствовал растущую необходимость в добавлении программной мощности для них.

LUA 1.0 был разработан таким образом, что конструктор объектов, не сильно отличающийся от текущего легкого и гибкого стиля, включал описание данных синтаксиса SOL (отсюда и название LUA — по португальски SOL — солнце, а lua — луна). Синтаксис Lua для управляющих структур в основном заимствован из Modula (if, while, repeat/until), но на него также повлиял и CLU (множественное присвоение, множественное возвращаемое значение функции, более простая альтернатива для ссылочных параметров или явных указателей), C++ («отличная идея, чтобы позволить локальной переменной быть объявлены только там, где нам это нужно») SNOBOL и AWK (ассоционные массивы). В статье, опубликованной в журнале доктора Добба, создатели Lua также утверждают, что единый, вездесущий механизм языков структуры данных LISP и Scheme, использующих в качестве базовой структуры данных связный список, оказал большое влияние на их решения о выборе таблицы в качестве основной структуры данных Lua.

Версии Lua до версии 5.0 были выпущены под лицензией подобной лицензии BSD .Начиная с версии 5.0 и далее, Lua была лицензирована под лицензией MIT. Обе лицензии свободного программного обеспечения практически идентичны.

2.Возможности:

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

Так, в Lua отсутствует явная поддержка наследования, однако оно легко реализуется с помощью метатаблиц.

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

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

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

3.Типы:

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

В Lua восемь основных типов:

nil (неопределенный)

boolean (логический)

number (числовой)

string (строковый)

function (функция)

userdata (пользовательские данные)

thread (поток)

table (таблица)

Nil -это тип значения nil [пустое значение], главное свойство которого — отличаться от всех остальных значений и обозначать отсутствие пригодного значения. К типу Boolean относятся значения false (ложь) и true (истина). Значения nil и false считаются ложными, любое другое значение считается истинным. К типу Number относятся обычно вещественные числа (double), но внутреннее представление чисел можно изменить при сборке интерпретатора. Тип String обозначает массивы символов. Строки Lua могут содержать любые 8-битные символы, включая ноль (‘\0’). Строки неизменяемы.

4.Таблицы:

Таблицы являются самым важным типом данных в Lua и являются фундаментом для пользовательских типов данных, таких как структуры, массивы, списки,множества. Таблица в Lua представляет собой набор пар -(Ключ, Значение). Ключом может выступать значение любого типа, кроме nil.

5.Реализация:

Как и многие интерпретируемые языки программирования реализация Lua имеет отдельно компилятор с исходного языка в исполняемый байт-код и виртуальную машину для исполнения сгенерированного байт-кода. Причём байт-код -это не команды стековой машины, а команды некоего виртуального процессора с несколькими регистрами, что повышает эффективность исполнения. В стандартной виртуальной машине Lua используется распределение памяти со сборкой мусора (аналогично Java или .NET).

Lua использует единый строковый пул, что позволяет снизить расходы памяти на хранение строк.

Для задач, критичных по времени, имеется JIT компилятор , Lua-Lua JIT. Также разработан компилятор llvm-lua, генерирующий код для виртуальной машины ,LLVM предоставляющей возможность последующей компиляции в очень эффективный машинный код для процессоров различной архитектуры.

5.Игры:

Первыми в разработку компьютерных игр язык Lua внедрила компания LUCAS Arts, начиная с игры Grim Fandango. Авторы языка в своём докладе на конференции HOPL  вспоминают, что в январе 1997 они получили сообщение от Брета Могилефски, главного разработчика  Grim Fandango, где он писал, что, прочитав о языке в статье 1996 года в Dr. Dobb’s Journal, он планирует заменить используемый ими самодельный скриптовый язык SCUMM на Lua. В результате им был создан игровой движок Grime, используемый также более поздним квестом от LucasArts -Escape from Monkey Island.

В 2003 году в результате опроса на сайте GameDev. Lua был признан самым популярным скриптовым языком для разработки игр.

Примером игры, программируемой с помощью Lua, является World of Warcraft. На языке Lua описываются уровни игры-головоломки Enigma.

6.Список использованной литературы:

1. http://symmetrica.net/lua/lua4.pdf

2. http://ru.wikipedia.org/wiki/Lua






map