Squirrel

Squirrel（スクワール）は軽量な高級スクリプト言語である。手続き型言語、オブジェクト指向言語、関数型言語、データ駆動などの特性を併せ持つ。メモリ消費量やリアルタイム応答性の面で優れ、ゲームへの組み込み言語として採用が進んでいる。
特徴.
C言語のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴である。いったんバイトコードにコンパイルされ、仮想機械 (VM) で実行される。コンパイラとVMは共に6000行程度のC++で実装されており、全てオープンソースで公開されている。ライブラリはC++だけでなくC言語からも利用できる。
その他に、以下の特徴を持つ。
Luaを強く意識して設計された言語であり、組み込みのためのライブラリの関数シグネチャはLuaと類似性がある。ただし、以下のような差異がある。
構文.
SquirrelではCライクな構文が使われる。C/C++のほか、C#、Java、JavaScript、そしてLuaに似た部分も持っている。行末のセミコロンはあってもなくてもかまわない。
クラスと継承
class BaseVector {
 constructor(...) {
 if (vargv.len() >= 3) {
 x = vargv[0]
 y = vargv[1]
 z = vargv[2]
 x = 0
 y = 0
 z = 0
// メタメソッドを実装するクラス。
class Vector3 extends BaseVector {
 function _add(other) {
 if (other instanceof this.getclass())
 return ::Vector3(x + other.x, y + other.y, z + other.z)
 else
 throw "wrong parameter"
 function _tostring() {
 return x + "," + y + "," + z
local v0 = Vector3(1, 2, 3)
local v1 = Vector3(11, 12, 13)
local v2 = v0 + v1
print(v2.tostring())
採用ソフトウェア.
Squirrel は以下のソフトウェアで利用されている。
ただしzlib/libpng licenseではライセンスの表記義務が無いため、上記の採用ソフトウェア以外にも、Squirrelの採用を公開していないソフトウェアが多数存在する可能性がある。
歴史.
Alberto Demichelisによって2003年に開発され、zlib/libpng licenseのもとで公開された。Squirrel 3.0 beta3からは、MIT Licenseへと変更されている。
オープンソースではあるが、開発とメンテナンスはAlberto Demichelisが中心となって行なっている。