はじめに

MKSCriptは、オブジェクト指向をサポートする軽量なスクリプト言語です。

以下のような特徴があります。
斜体は未実装項目です。

  • インタプリタ言語
    • スクリプトを書いたらすぐに実行できます。
  • 移植性
    • 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
      
  • 変数への制約条件
    • 変数にはアクセス制約のほかに、型制約をつけることができます。
    • これにより、たとえば 数値しか代入できない変数、特定クラスしか代入できない変数なども作成できます。