AngelScript

AngelScript é uma biblioteca de códigos para uso em C++, O seu objetivo é fornecer uma biblioteca fácil de usar e que seja poderosa, mas que não seja sobrecarregada por uma grande quantidade de recursos raramente usados.[3][4]

AngelScript
AngelScript
Logotipo do AngelScript
Paradigma Multiparadigma, Imperativa
Surgido em 28 de Março de 2003
Última versão 2.35.0 (5 de dezembro de 2020)
Criado por Andreas Jonsson
Estilo de tipagem Estática e dinâmica, Forte
Principais implementações GNUC, Marmalade [1]
Influenciada por C++
Plataforma Multiplataforma
Licença: AngelScript License (zlib)[2]
Extensão do arquivo: .cpp
Página oficial https://www.angelcode.com/angelscript/

Sobre

O desenvolvimento começou em fevereiro de 2003, com o primeiro lançamento público em 28 de março de 2003, com apenas as funcionalidades mais básicas.[3]

O AngelScript está estruturado em torno de um mecanismo no qual o aplicativo deve registrar as funções, propriedades e até tipos, que os scripts poderão usar. Os scripts são então compilados em módulos, nos quais o aplicativo pode ter um ou mais módulos, dependendo da necessidade do aplicativo. O aplicativo também pode expor uma interface diferente para cada módulo através do uso de perfis de acesso. Isso é especialmente útil quando o aplicativo trabalha com vários tipos de scripts, por exemplo GUI, controle de IA, etc.[5] Possui digitação estática, identificadores de objetos (semelhantes aos do C++), orientação a objetos, herança única, herança múltipla com interfaces. Permite que os operadores sejam registrados e sobrecarregados.

O AngelScript é muito utilizado em videos-games. Incluindo jogos como, Amnesia: The Dark Descent[6], Amnesia: A Machine for Pigs[6], Penumbra Overture[6] etc. A linguagem também é usada em robôs[7], por exemplo, para programar regras comportamentais.

Exemplos

Exemplo 1 (Uso de funções) [8]

// This function returns a value in the output parameter
void func(int &out outputValue)
{
    outputValue = 42;
}
// Call the function with a valid lvalue expression to receive the output value
int value;
func(value);
// Call the function with 'void' argument to ignore the output value
func(void);

Referências

  1. https://www.angelcode.com/angelscript/sdk/docs/manual/doc_compile_lib.html
  2. https://www.angelcode.com/angelscript/sdk/docs/manual/doc_license.html#doc_lic_1
  3. «AngelScript: Introduction». www.angelcode.com. Consultado em 17 de dezembro de 2019
  4. dbohdan (10 de dezembro de 2019), A list of embedded scripting languages. Contribute to dbohdan/embedded-scripting-languages development by creating an account on GitHub, consultado em 17 de dezembro de 2019
  5. «AngelScript: Overview». www.angelcode.com. Consultado em 17 de dezembro de 2019
  6. «AngelScript - AngelCode.com». angelcode.com. Consultado em 17 de dezembro de 2019
  7. Brandoff, J.; Sayama, H. (março de 2009). «Cultural transmission in robotic swarms through RFID cards». 2009 IEEE Symposium on Artificial Life: 171–178. doi:10.1109/ALIFE.2009.4937709
  8. «AngelScript: Expressions». www.angelcode.com. Consultado em 17 de dezembro de 2019
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.