AngelScript: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Обновление версии
 
(не показано 47 промежуточных версий 32 участников)
Строка 1: Строка 1:
{{Карточка языка программирования
{{Карточка языка программирования
| name = AngelScript
| name = AngelScript
| logo =
| logo =
| semantics =
| semantics =
| paradigm =
| paradigm =
| class= [[Интерпретатор|Интерпретируемый]] [[скриптовый язык]]
| class = [[Интерпретатор|Интерпретируемый]] [[скриптовый язык]]
| year =
| year = 2003
| designer = Андреас Йонсон
| designer = Андреас Йонсон
| extension = .as
| extension = .as
| latest_release_version = 2.19.0
| latest_release_version = 2.36.1
| latest_release_date = [[27 июнь]] [[2010]]
| latest_release_date = [[21 мая]] [[2023]]
| latest_preview_version =
| latest_preview_version =
| latest_preview_date =
| latest_preview_date =
| typing = Строгая, статическая
| typing = Строгая, статическая
| implementations = AngelCode Scripting Library
| implementations = AngelCode Scripting Library
| dialects =
| dialects =
| influenced_by = [[Си (язык программирования)|Си]], [[C++]], [[D (язык программирования)|D]]
| influenced_by = [[Си (язык программирования)|Си]], [[C++]], [[D (язык программирования)|D]]
| influenced =
| influenced =
| website = http://www.angelcode.com/angelscript/
| operating system = кроссплатформенное программное обеспечение
}}
}}


'''AngelScript''' — [[Интерпретатор|интерпретируемый]] [[язык программирования]], разработанный специально для использования в качестве скриптового языка в приложениях. Является [[свободное программное обеспечение|свободно распространяемым]], с открытыми исходными кодами. Портирован на различные платформы. Синтаксис языка основан на хорошо известных C++, Java, C# и D.
'''AngelScript''' — [[Интерпретатор|интерпретируемый]] [[язык программирования]], разработанный специально для использования в качестве скриптового языка в приложениях. Является [[свободное программное обеспечение|свободно распространяемым]], с открытыми исходными кодами. Портирован на различные платформы. Синтаксис языка основан на хорошо известных [[C++]], [[Java]], [[C Sharp|C#]] и [[D (язык программирования)|D]].


== Описание ==
== Описание ==
AngelScript представляет собой движок, в котором приложение может регистрировать функции, свойства и типы, которые могут использоваться в скриптах. Скрипты компилируются в модули. Количество используемых модулей варьрируется в зависимости от нужд. Приложение может также использовать различные интерфейсы для каждого модуля с помощью групп конфигурации. Это особенно полезно, когда приложение работает с несколькими типами скриптов, например, [[GUI]], [[Искусственный интеллект|AI]] и т.д.
AngelScript представляет собой движок, в котором приложение может регистрировать функции, свойства и типы, которые могут использоваться в скриптах. Скрипты компилируются в модули. Количество используемых модулей варьируется в зависимости от нужд. Приложение может также использовать различные интерфейсы для каждого модуля с помощью групп конфигурации. Это особенно полезно, когда приложение работает с несколькими типами скриптов, например, [[GUI]], [[Искусственный интеллект|AI]] и т. д.


Каждый модуль имеет свою собственное пространство скриптов, глобальных [[Переменная (программирование)|переменных]] и классов. Обычно они не разделяются между модулями, хотя и несколько модулей могут быть построены из одного и того же скрипта. Модули могут взаимодействовать друг с другом через обязательную функцию связывающую функцию. Так как скрипты компилируются в [[байт-код]], AngelScript предоставляет [[Виртуальная машина|виртуальную машину]] для выполнения [[байт-код|байт-кода]], также известного как скрипт-контекст. Приложение может обрабатывать любое число скрипт-контекстов в одно и то же время, хотя большинству приложений хватает только одного. Контексты поддерживают приостановку\возобновление исполнения, так что в приложении можно легко реализовать такие функции, как одновременные скрипты и [[короутины]]. Скрипт-контекст также предоставляет интерфейс для извлечения реал-тайм информации, полезную для [[Отладка программы|отладки]].
Каждый модуль имеет своё собственное пространство скриптов, глобальных [[Переменная (программирование)|переменных]] и классов. Обычно они не разделяются между модулями, хотя и несколько модулей могут быть построены из одного и того же скрипта. Модули могут взаимодействовать друг с другом через обязательную связывающую функцию. Так как скрипты компилируются в [[байт-код]], AngelScript предоставляет [[Виртуальная машина|виртуальную машину]] для выполнения [[байт-код]]а, также известного как скрипт-контекст. Приложение может обрабатывать любое число скрипт-контекстов в одно и то же время, хотя большинству приложений хватает только одного. Контексты поддерживают приостановку/возобновление исполнения, так что в приложении можно легко реализовать такие функции, как одновременное выполнение сценариев и [[сопрограмма|сопрограммы]]. Скрипт-контекст также предоставляет интерфейс для извлечения информации периода выполнения, полезную для [[Отладка программы|отладки]].


== Основные особенности ==
== Основные особенности ==
* C-like синтаксис.
* C-подобный синтаксис.
* Управление памятью.
* Управление памятью.
* Cтрого-типизированный язык.
* Строго типизированный язык.
* Лёгкость связывания с кодом на C/[[C++]].
* Лёгкость связывания с кодом на C/[[C++]].
* Встроенная [[многопоточность]].
* Встроенная [[многопоточность]].
Строка 41: Строка 43:
}
}
</source>
</source>

== Литература ==
* {{Книга|автор=Paula Berinstein, Remi Arnaud, Alessandro Ardolino, Simon Franco, Adrien Herubel|заглавие=Game Development Tool Essentials|ссылка=https://books.google.com/books?id=jHy7AwAAQBAJ|издательство=Apress|год=2014|страниц=201|isbn=9781430267010}}
* {{Книга|автор=Michael Dickheiser|заглавие=Game Programming Gems 6|ссылка=https://books.google.com/books?id=lPZQAAAAMAAJ|издательство=Charles River Media|год=2006|страниц=748|isbn=9781584504504}}


== Ссылки ==
== Ссылки ==
* [http://www.angelcode.com/angelscript/ Официальный сайт AngelScript]{{ref-en}}
* [http://www.angelcode.com/angelscript/ Официальный сайт AngelScript]{{ref-en}}
* [http://www.13d-labs.com/angelscript_manual/main.html Русская документация]{{ref-ru}}
* [http://www.gamedev.ru/tags/angelscript Лекции и статьи на gamedev.ru]{{ref-ru}}
* [http://www.gamedev.ru/tags/angelscript Лекции и статьи на gamedev.ru]{{ref-ru}}
* [http://www.gameengineer.net/tutorials-angelscript.html Примеры использования]{{ref-en}}


{{Языки программирования}}
{{Языки программирования}}
{{compu-stub}}
{{freesoftware-stub}}


[[Категория:Скриптовые языки]]
[[Категория:Скриптовые языки]]
[[Категория:Свободные библиотеки программ]]
[[Категория:Свободные библиотеки программ]]

[[en:AngelScript]]

Текущая версия от 10:46, 12 декабря 2023

AngelScript
Класс языка сценарный язык, реализация языка программирования[вд], эталонная реализация и свободное и открытое программное обеспечение
Тип исполнения Интерпретируемый скриптовый язык
Появился в 2003
Автор Андреас Йонсон
Расширение файлов .as
Выпуск 2.36.1 (21 мая 2023)
Система типов Строгая, статическая
Основные реализации AngelCode Scripting Library
Испытал влияние Си, C++, D
Лицензия лицензия zlib
Сайт angelcode.com/angelscrip…
ОС кроссплатформенное программное обеспечение

AngelScript — интерпретируемый язык программирования, разработанный специально для использования в качестве скриптового языка в приложениях. Является свободно распространяемым, с открытыми исходными кодами. Портирован на различные платформы. Синтаксис языка основан на хорошо известных C++, Java, C# и D.

AngelScript представляет собой движок, в котором приложение может регистрировать функции, свойства и типы, которые могут использоваться в скриптах. Скрипты компилируются в модули. Количество используемых модулей варьируется в зависимости от нужд. Приложение может также использовать различные интерфейсы для каждого модуля с помощью групп конфигурации. Это особенно полезно, когда приложение работает с несколькими типами скриптов, например, GUI, AI и т. д.

Каждый модуль имеет своё собственное пространство скриптов, глобальных переменных и классов. Обычно они не разделяются между модулями, хотя и несколько модулей могут быть построены из одного и того же скрипта. Модули могут взаимодействовать друг с другом через обязательную связывающую функцию. Так как скрипты компилируются в байт-код, AngelScript предоставляет виртуальную машину для выполнения байт-кода, также известного как скрипт-контекст. Приложение может обрабатывать любое число скрипт-контекстов в одно и то же время, хотя большинству приложений хватает только одного. Контексты поддерживают приостановку/возобновление исполнения, так что в приложении можно легко реализовать такие функции, как одновременное выполнение сценариев и сопрограммы. Скрипт-контекст также предоставляет интерфейс для извлечения информации периода выполнения, полезную для отладки.

Основные особенности

[править | править код]
  • C-подобный синтаксис.
  • Управление памятью.
  • Строго типизированный язык.
  • Лёгкость связывания с кодом на C/C++.
  • Встроенная многопоточность.

Пример программы

[править | править код]

Программа «Hello, world» в простейшем случае выглядит так:

void main()
{
  print("Hello world\n");
}

Литература

[править | править код]
  • Paula Berinstein, Remi Arnaud, Alessandro Ardolino, Simon Franco, Adrien Herubel. Game Development Tool Essentials. — Apress, 2014. — 201 с. — ISBN 9781430267010.
  • Michael Dickheiser. Game Programming Gems 6. — Charles River Media, 2006. — 748 с. — ISBN 9781584504504.