2006-09-01から1ヶ月間の記事一覧

classの継承

昨日のCarクラスを継承したSuperCarクラスを定義します SuperCar : class extends Car{ // アクセルを踏む関数をオーバーライドする step_on_accelerator : method(power){ // Carクラスのstep_on_acceleratorメソッドを呼び出す Car::step_on_accelerator(p…

class

Xtalはクラスベースを採用しています。 当初はプロトタイプベースを採用していましたが、プロトタイプベースであることの利点があまり思いつかないことや、 世の中のプロトタイプベースな言語、例えばJavaScriptやLuaでは、結局クラスもどきライブラリが何個…

配列、連想配列リテラル

Xtalは当然のように配列と連想配列リテラルを書くことができる。 ary : [1, 2, "foo", 5.6]; // 配列リテラル map : ["key":100, "test":"BOO"]; // 連想配列リテラル println(ary[2]); // foo println(map["test"]); BOO

fiber (軽量スレッド、コルーチン)

Xtalでは関数定義と似たような形でfiberが生成でき、関数呼び出しの形で実行が出来ます。 fib : fiber{ yield 1; yield 2; yield 3; } println(fib()); // 1 println(fib()); // 2 println(fib()); // 3また、fiberはイテレータでもあるので、ブロックの適用…

変数定義や関数定義とか

Xtalでは変数を次の形で定義します。 variable_name : 100;変数名 : 初期値; という形です。 Xtalでは fun(){} という形で関数式が書けます。 ECMAScriptの function(){} と同じです。 functionは長ったらしいのでfunを採用しました。それを変数に定義すれば…

セレクターネームスペース

Xtalはセレクターネームスペースっぽい機能を有します。セレクターネームスペースを採用している言語としては、例えばECMAScript4があります。 Xtalではセレクターネームスペースというより、識別子となんらかのオブジェクト、二つのキーでメソッドを登録す…

iterator

XtalはまるでRubyのような書式で配列の要素を順次取り出すことが出来ます。例えば次のように。 // 変数arrayを定義。初期値に配列を。 array : [10, 20, 30, 40]; array.each{ |value| println(value); }このようにぱっと見はRubyにしか見えません。しかし、…

スクリプト言語Xtalって何?

Xtalは、主にゲーム製作用途のために、C++に組み込み、連携させて使うために開発された言語です。 この言語はRuby, Python, D, Lua, NewtonScript, ECMAScript等、とても多くの言語の影響を受けて作られました。特徴 オブジェクト指向 C likeな構文 動的な型…

サンプルプログラム

0〜9までの数字を表示するXtalのプログラムは次の通り 10.times{ |i| println(i); }もうほとんどRubyですね。 これをC++風のforループで書くと次の通り。 for(i : 0; i<10; ++i){ println(i); }さっきのとまったく同じ出力をします。

C++に組み込もう

多分邪道ではあるのですが、簡単に組み込めるよう、all_src.hという、全てのcppをincludeしたヘッダが用意されてます。 これをどれか一つのcppにincludeすれば、簡単に組み込みを試すことが出来ます。 #include <iostream> #include <xtal/all_src.h> using namespace xtal; // Xtalの</xtal/all_src.h></iostream>…

ダウンロードしましょう

Xtalのソースをダウンロード VC7とgcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)でコンパイルできました。簡単なリファレンス ここに書かれてない機能が結構あります。今後頑張ってリファレンス書かないと。

Xtalの目指してるもの。

C++から簡単に使えるスクリプト言語。言語仕様は、これはまるでRuby++だ!と誰かが呼んでくれるようなモノを目指しました。 例えばRubyが将来取り入れようとしている機能を取り入れてます。 セレクターネームスペース キーワード引数 仮想マシン駆動 配列で…

はてなダイアリーでxtal言語について書くことにしました

題名の通り