User:Saejox/AngelScript

AngelScript is a scripting language designed to be inside C/C++ applications and games. AngelScript released as open source in permissive zlib license. It is cross-platform and known to work with many platforms and compilers.

Library appeared in 2003, and still actively maintained.

Language Features

 * Familiar, C++ like
 * Static typing, Compile time static checks to ensure strong typing.
 * Handles, Pointer like operators. Maybe used in both script and C++ extensions.
 * Object-oriented, Classes and interfaces. Single inheritance through classes, multiple-inheritance with interfaces.
 * Compiled, script compile to bytecode before execution. Runtime compile is allowed.
 * Allow direct access to C++ objects, functions and properties
 * Sandbox, script are limited to what application exposes.
 * Optional UTF-8 and UTF-16 encoding for script files.
 * Concurrent, many scripts may be run in parallel.

Examples
Comments

Functions

Loops

Classes

AngelScript supports object-oriented programming.

It has single inheritance for classes, and polymorphism with interfaces.

Handles

Handles are AngelScript's way of handling pointers.

Handles may be passed between script Virtual Machine and application without any change in address they point at.

Handles do not have pointer arithmetic.

Handles are reference counted. They are released when not needed automatically.

An incremental Garbage collector (computing) exists to resolve possible circular references.

Used in

 * Amnesia: The Dark Descent
 * Dustforce
 * Penumbra (video game series)
 * Warsow (video game)
 * Star Ruler
 * Warhammer: Mark of Chaos
 * The Journey Down
 * 3D Rad
 * Overgrowth