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