= はじめに
MKSCriptは、オブジェクト指向をサポートする軽量なスクリプト言語です。
以下のような特徴があります。[[BR]]
''斜体''は未実装項目です。
* インタプリタ言語
* スクリプトを書いたらすぐに実行できます。
* 移植性
* MKSCriptは、様々なシステム向けに容易に移植できるよう設計を行っています。
* 以下の条件をみたすシステムであれば、ターゲット向けにリコンパイルするだけで動作すると思われます。
* 32bit/64bit環境である
* ANSI-Cに準拠したCコンパイラが提供されている
* C言語ライブラリのmallocが返却するメモリアドレスは、少なくとも4バイト境界に揃えられている
* 8バイトの浮動小数型が使用可能である(今後オプション化する予定)
* 開発時の動作検証は以下の環境で行っています。
* WindowsXP/Vista Cygwin gcc(32bit)
* WindowsXP/Vista Visual C++ 2008 Express Edition(32bit)
* Fedora12-x86 gcc(32bit)
* Fedora12-x64 gcc(64bit)
* わかりやすい文法
* 他の言語も参考にし、なるべくなじみやすい文法ルールにしています。
* オブジェクト指向のサポート
* クラス、継承、''ポリモフィズム''、''カプセル化(MKSCriptでは制約条件と呼びます)''といった基本的なオブジェクト指向の仕組みが使えます。
* 構造化例外処理もサポートしています。
* パラメータ付きノードオブジェクト
* 単一の式、ブロック構造(制御構造)をパラメータ付きで宣言し、あとからパラメータを与え、起動することができます。
{{{
例
# 変数 a に、『引数x,yを与えると"x*10+y"の結果を返す式』を代入します。
a = |x,y|{ x * 10 + y }
# a( 1, 2 )の結果を画面に出力します。
# a( 1, 2 )は、1 * 10 + 2 と解釈されます。
Console << a(1,2) << "\n"
# => 12
}}}
* ''変数への制約条件''
* ''変数にはアクセス制約のほかに、型制約をつけることができます。''
* ''これにより、たとえば 数値しか代入できない変数、特定クラスしか代入できない変数なども作成できます。''