前回のブログで告知しました、いま現在作成しているコンパイラ( まだ名称は決めてない )の
サポート命令を紹介しようと思います。
サポート命令/構文
A. 判定文 if / else / else if
[概要] C で使われてる if 文の感覚と大体おなじ感覚 で使用できます。
B. ループ for while break continue
[概要] C/Java で使われてる for/while 文の感覚と大体おなじ感覚 で使用できます。
C. 変数定義 var
[概要] この言語ではローカル変数には var という定義を変数の前に宣言する
必要があります。
D. 設計 class / extends
[概要] この言語ではすべてオブジェクト指向でコーディングしていきます。
実際にオブジェクト指向でプログラミングするというのはプログラマ次第ですが、構
造はすべて各々が自由に定義する class 内にコ-ドが書かれます。
これはRPGならば、例えばエリアという単位をそのまま class で管理し、そこ
にクラスコードとしてコーディングしていきます。
継承もサポートする予定なので、応用もメンテナンスもかなり良い感じになるかと
思います。
E. メンバ( フィールド )変数アクセス this
[概要] Dの項目に関連していますが、メンバ変数としての明示的アクセスとして
this アクセスが使えます。
感覚は Java の this にとても近いです。
F. クラスオブジェクト 配列の生成 new / new Array
[概要] 配列の定義や、クラスの生成は new を使って確保されます。
解放のタイミングは、まだ実装されてませんが、いま構想の中にあるので
応用性のきくもので実装予定です。
G. メソッドの戻り値 return
[概要] 定義したメソッドの戻り値を自由に返すことができます。
H. 構文 四則演算はもちろん、以下のものが使用できます。
[実例]
var a = 0;
a = ++a + a--; // インクリメント
a += 2; // +=
a -= -2; // -=
a &= 0x01; // &=
a |= a<<1; // |=
a = ~(a>>1); // ~ >>
a = (a + 1) % 10; // &
a = a ^ 1; // ^
って、こんな見づらく列挙しても仕方ないですね^^;
たぶん 条件演算子 以外はほぼすべてサポートしたような気がします(適当
たぶん細かく上げていくともっとあるかと思うのですが、今気づいた重要な個所は
こんぐらいかなぁって感じです( ´д`)
現状いまのコンパイラは、アセンブルコード生成までは、ほぼ完璧に近くなってきたのでアセンブルコードから
携帯Java用の独自 byte コードを吐き出す部分の作成になりそうです。
もうアセンブルコードさえできてしまえば、後の解析は単純なので、ひたすらコードを書くことになりそうです。
ワ━━━(゜∀゜)━━━イ!!
さらにそれが出来れば、今度はアプリに byteコード解釈エンジンを実装することになって、
ようやく完成です( ´д`)
自分の想像としては、これさえ出来れば、RPG・アドベンチャー(ノベル込み)・シミュレーション・ミニゲーム( テーブルゲームも込み )
だろうが、なんだろうが作成期間も大幅に短縮! かつ容易に修正もできるハズだし、ある程度まではプログラマじゃなくても
できるハズ!(※1)
※1
ここで何でプログラマじゃなくてもって言ったかというと、基本的にマクロを使ってプログラミングする事に
なるハズなので、RPGツクールで適当に軽く作れるレベルになれる人ならば、十分戦力なのれす。
(当然、ゲームによってエンジンの コアAPI をコーディングしていく必要がありますが)
だってここまで自由かつ複雑にコードがかけるフレームワークなんて、携帯ゲームの世界にはまだ
そんなに無いと思うんだよね(強気
ドコモで言うと 505 までで本格的な解釈エンジン積むってなると、まぁ容量的にいけたとしても、
フレームレートはかなり遅いしね( ´д`)
まぁ自分の中では PDC では 506 以上、 FOMA は 900 以上のターゲットで爽快のものを
作ってるわけだけど、たぶんFPSは遅くても気にならない アドベンチャー・ノベルなら
容量が許せば、他の端末も対応できます。
全体の進行状況としてみたらまだ先の話だけど、ちょっと休みの日はちょくちょく進めていくつもり
なので、このブログを見ていただけてる方には、影ながらでも応援してくれると嬉しいかも(笑
⊂(゚Д゚⊂⌒`つ≡≡≡
なんか、ほんの 2カ月 ぐらい前は、オンラインゲーム用のゲームサーバーを1からコーディング
してたんだけど、もうそっちはお預けになってますw
ゲームサーバーを作ってたのには裏話があって、実はアプリゲットにiアプリ出そうと思って、1日で
オセロゲーム( リバーシ )を作ったんだけど、ネットワーク部分の設計を始めたら、キリが無くなって来て、
気づいたらコンパイラ製作に移動してますた。
( ゜Д゜)文長いぞ! モルァ!!
サーバー周りは一人でやるにも大変骨が折れて、iアプリを一日でつくっても、ゲームサーバーとして1から設計
すると、もうダメポですね。
最初は FCGI で適当にマッチングすればいいかぁーってやろうと思ったんだけど、実際は FCGI だけだと効率の
悪さというか、コーディングが し辛いかったのです。
(´・∀・`)ナガスギでしょ?
あーー、今回のブログはやたらと文字だけの構成なので
たるい人、ゴメンナサイ。。
ってかこんなんに興味ある人いるのだろうか( ´-`).。oO
0 コメント:
コメントを投稿