Оглавление
Преимущества
Язык
- Знакомый синтаксис - синтаксис скрипта похож на C/C++, с небольшими отличиями.
- Статическая типизация - в отличии от многих скриптовых языков с динамической типизацией, используются статические типы C++, а также приложение может регистрировать собственные типы.
- Обьектно-ориентированный язык - скрипт поддержимает обьявления классов, поддерживает наследование и полиморфизм.
- Хендлы - указатели небезопасно использовать в скрипте, поэтому AngelScript использует хендлы (аналог умных указателей).
- Песочница - библиотека предоставляет безопасную среду выполнения скриптов, ошибки скрипта не нарушат поведение программы.
- Международная поддержка - файлы скриптов могут быть в ASCII илиr UTF-8. Строки могут содержать символы UTF-8, а также UTF-16.
Движок
- Компиляция во время выполнения - компилятор преобразует скрипты в байткод и запускает на виртуальной машине.
- Пошаговое выполнение - скрипты могут выполняться построчно (для контроля выполнения и отладки).
- Подробные исключения - доступ к ошибкам выполнения скрипта очень просто получить, отчеты об ошибках содержат подробную информацию.
- Интерпретация линий - движок может обрабатывать отдельные линии кода используя текущий скрипт.
- Сохранение/загрузка байткода - скомпилированный байткод может быть сохранен и загружен в другой раз.
- Модульность - скрипты можно собирать в модули, которые могут динамически стыковаться друг с другом.
- Параллельные скрипты - несколько скриптов могут выполняться параллельно, путем приостановления и возобновления их по одному, что обеспечивает простую поддержку многозадачности.
- Отладка - приложение может получать информацию о стеке вызовов скриптовых функций, значениях локальных переменных во время работы скрипта.
Интеграция
- Прямой доступ - скрипт имеет прямой доступ к зарегистрированным функциям, обьектам, их членам и методам без использования врапперов.
- C и C++ интерфейсы - интерфейс на чистом C может использоваться в других языках, которые не понимают интерфейса C++ (например Delphi).
- Многопоточность - библиотека поддерживает многопоточную среду выполнения.
- Управление памятью - с помошью механизма подсчета ссылок учитывается передача обьектов в скрипт и обратно, также используется сборщик мусора и защита от циклических ссылок.
Портирование
- Кроссплатформенность - большое количество поддерживаемых платформ.
- Независимость от процессора - поддерживаются 32bit и 64bit, а также big-endian и little-endian процессоры. Проверенные процессоры: x86, amd64, sh4, mips, ppc, ppc64, arm.
- Независимость от компилятора - работает с MSVC++, GNUC, MinGW, DJGPP, Borland C++ Builder. Другие официально не тестировались.
Другое
- Бесплатность - AngelScript полностью свободен для использования, но мы принимаем пожертвования.
- Хорошая докуметация - язык и движок имеют хорошую документацию.
Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.