Релиз языка программирования Lua 5.3

12 января 2015 года

После трёх лет разработки доступен релиз Lua 5.3, быстрого и компактного скриптового языка программирования, получившего большое распространение в качестве встраиваемого (например, для определения конфигурации или для написания расширений). Код интерпретатора Lua написан на языке Си и распространяется под лицензией MIT.

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

Основные новшества:

  • Реализация целочисленного типа "integer". Если ранее тип "number" обеспечивал хранение значений с плавающей точкой (в прошлых выпусках Lua для чисел использовалось только представление с плавающей точкой), то теперь внутренние представления чисел разделены на "integer" и "float". Так как Lua является языком с динамической типизацией, определение типа и преобразование целых и вещественных чисел осуществляется автоматически. При необходимости явного определения константы с плавающей точкой следует явно указывать ".0";
  • Возможность использования 32-разрядных числовых значений. По умолчанию числа хранятся в 64-разрядных переменных, но интерпретатор теперь можно собрать с поддержкой 32-разрядных чисел;
  • Поддержка битовых операторов. Доступны новые операторы "band" (&),

"bor" (|), "bxor" (~), "bnot", "shl" ();

  • Поддержка UTF-8 и набора библиотечных функций для манипуляции данными в этом формате (utf8.char, utf8.codes, utf8.codepoint, utf8.len, utf8.offset);
  • Появление функций для упаковки и распаковки значений (форматирование и разбор строк): string.pack, string.unpack и string.packsize;
  • В функцию string.dump добавлена опция strip - "string.dump(function [, strip])" для получения бинарного представления функции без отладочных данных;
  • В библиотеку Table и итератор ipairs добавлена поддержка метаметодов;
  • В библиотеку Table добавлена функция table.move для перемещения элементов из одной таблицы в другую;
  • Упрощён API для определения продолжений (continuation function) на языке Си;
  • В C API представлены новые функции: lua_geti,

lua_seti, lua_isyieldable, lua_numbertointeger, lua_rotate, lua_stringtonumber;

  • Обособленный интерпретатор Lua теперь может использоваться в качестве калькулятора без необходимости указания префикса "=".

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз языка программирования Lua 5.3», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.