AngelScript

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

Сайт: www.angelcode.com/angelscript

AngelScript — компилируемый скриптовый язык программирования, разработанный для встраивания в приложения, преимущественно в игровую индустрию и интерактивные системы. Язык ориентирован на тесную интеграцию с С/С++-кодом через библиотеку рантайма, предоставляющую API для регистрации типов, функций и объектов, что позволяет хост-приложению контролировать жизненный цикл скриптов и безопасно вызывать их из нативного кода. Синтаксис AngelScript во многом напоминает C/C++, включая объявления функций, управление типами и блоки кода, при этом язык сохраняет статическую типизацию и компиляцию байт-кода или промежуточного представления во время загрузки скриптов.

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

  • Встраивание: библиотека для интеграции с С/С++ и API для регистрации функций, типов и объектов.
  • Синтаксис: похож на C/C++, привычные управляющие конструкции и объявления функций.
  • Типизация: статическая типизация с проверкой на этапе компиляции скриптов.
  • Компиляция: предкомпиляция скриптов в байт-код/промежуточное представление перед выполнением.
  • Объектная модель: поддержка классов, методов, наследования и интерфейсов, адаптированных для регистрации хостом.
  • Управление памятью: гибкие модели управления (включая подсчёт ссылок) в зависимости от интеграции с приложением.
  • Безопасность и контроль: хост-приложение контролирует доступ к ресурсам и может ограничивать возможности скриптов.
  • Использование в играх: распространён для реализации игровой логики, скриптов уровней, ИИ и моддинга.
  • Портабельность: может интегрироваться в разные платформы при наличии реализации рантайма для целевой среды.
  • Документация и сообщество: доступные описания, руководства и примеры, ориентированные на разработчиков, внедряющих язык в свои проекты.
Подробнее