squirrelとは何? わかりやすく解説 Weblio辞書 (original) (raw)

この項目では、プログラミング言語について説明しています。動物のリスについては「リス」をご覧ください。

Squirrel

パラダイム マルチパラダイム
設計者 Alberto Demichelis
最新リリース 3.2/ 2022年2月11日 (3年前) (2022-02-11)
プラットフォーム クロスプラットフォーム
ライセンス MIT License (3.0 beta3 以降) zlib/libpng license (3.0 beta2 以前)
ウェブサイト squirrel-lang.org
テンプレートを表示

Squirrel(スクワール)は軽量な高級スクリプト言語である。手続き型言語オブジェクト指向言語関数型言語データ駆動などの特性を併せ持つ。メモリ消費量やリアルタイム応答性の面で優れ、ゲームへの組み込み言語として採用が進んでいる。

英語で「リス」のことで、発音は /ˈskwɪrəl/ 決して「スクワール」ではない

特徴

C言語のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴である。いったんバイトコードコンパイルされ、仮想マシン (VM) で実行される。コンパイラとVMは共に6000行程度のC++で実装されており、全てオープンソースで公開されている。ライブラリC++だけでなくC言語からも利用できる。

その他に、以下の特徴を持つ。

Luaを強く意識して設計された言語であり、組み込みのためのライブラリの関数シグネチャはLuaと類似性がある。ただし、以下のような差異がある。

構文

SquirrelではCライクな構文が使われる。C/C++のほか、C#JavaJavaScript、そして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())

採用ソフトウェア

この節には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2013年12月)

Squirrel は以下のソフトウェアで利用されている。

ただしzlib/libpng licenseではライセンスの表記義務が無いため、上記の採用ソフトウェア以外にも、Squirrelの採用を公開していないソフトウェアが多数存在する可能性がある。

歴史

Alberto Demichelisによって2003年に開発され、zlib/libpng licenseのもとで公開された。Squirrel 3.0 beta3からは、MIT Licenseへと変更されている。

オープンソースではあるが、開発とメンテナンスはAlberto Demichelisが中心となって行なっている。

注釈

  1. ^ 東方心綺楼の解析 – 他人の空似
  2. ^ スクエニモバイルカンファレンスに行ってきたまとめ · GitHub

脚注

  1. ^ Wiiウェアで始まった、スクエニの“小規模開発への挑戦”。「小さな王様と約束の国 FFCC」の開発事例
  2. ^ [1]
  3. ^ a b c d VScript - Valve Developer Community
  4. ^ [2]
  5. ^ [3]
  6. ^ [4]
  7. ^ スライド 1 "スクールガールストライカーズの 内製クライアントエンジン"

関連項目

外部リンク