Lua

Бесплатно
Открытый исходный код
Windows
macOS
Linux
Android
iOS

Сайт: www.lua.org

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

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

  • Встраиваемость: компактное исполнительное ядро и простой C API для интеграции с хост-приложениями.
  • Таблицы как универсальная структура: таблицы служат для массивов, ассоциативных массивов, объектов и пространств имён.
  • Метатаблицы: механизм для переопределения операций над таблицами и реализации объектоподобных поведений.
  • Динамическая типизация: значения имеют тип во время выполнения; переменные не объявляют тип заранее.
  • Гарbage collection: автоматическое управление памятью посредством сборщика мусора.
  • Короутины: лёгкие потоки управления для кооперативной многозадачности.
  • Минималистичное ядро: небольшой набор ключевых конструкций и функций, расширяемый библиотеками.
  • Портируемость: реализация на чистом C обеспечивает переносимость на различные платформы.
  • Использование в играх и приложениях: распространён как язык сценариев для игровых движков, плагинов и конфигурационных файлов.
  • Расширяемость: возможность связывать с библиотеками на C/C++ и добавлять новые функции хост-приложениям.
Подробнее