[1422] Re:デバックシステム一応完成
投稿者:山
2009/08/14 19:19:24
>山さんのVMがDVMとどれぐらい違うのだろうと思ってダウンロードしてみましたが、
>VM部分のソースはないのでしょうか……
どれぐらい違うのかソースファイルのサイズで定量的に計ってみました。
・システム管理部分 115K(ソースファイルの合計)
・コンパイラ 150K
・VM 73K
・共用 45K
・組込み関数 34K
・ヘッダーファイル 140K
(クラスやテンプレートでヘッダーファイルが大きくなるのはC++の宿命ですね)
合計 557K
プログラムの行数的にはコメント含み1万数千行ほどあります。
Diksam 2.0 より流用改変したソースはコンパイルラ部分のみで123K、
全体の22%。その中はクラス化や、言語仕様の違いで全関数修正している
ため。元の6割ぐらいしか原型が残っていないと思います。VMについては、
新たに書いているので基本アルゴリズムが同じで、中身は違ったものになっ
ています。
VMは最小になるように作られているので、73K 全体の13%です。ソース
の60%は新しく作りこんだ仕様のためでした。内容はマルチVMのシステム・
言語的にスレッドセーフな仕組み・コンパイルとVM間の協調動作管理、等々です。
私が言ってはいけないのかもしれませんが、結構複雑なシステムになってます。
難しいのもまた楽しくもあります。
ソースの件ですが、正式にフリー公開時点でソース公開も考えています。
現時点ではまだちょっとです。(ぱ)さん以外非公開を条件にVMのソース送り
ましょうか?
VMは1つのクラスで、そのクラスのオブジェクトを1つ作ったら、それが1つの
VMスレッドになり、VM機能を詰め込んだ、あまりクラスらしくないクラスです。
だから、メモリーがあるだけマルチでVMスレッドを自由に実行できます。
ちなみにコンパイラも見た目は1クラス(内部でいくつかのクラスを使用)で、
機能的にきれいに分離されています。ただその分システム管理で全体の協調
動作制御が必要です。
>あと、フォルダ名の「editer」は固有名詞でしょうか?
いえ、LIZA.iniファイルで自由に変えられます。
先のことですが、ライザ言語はC言語のシンタックスにとても似ているので、
ライザ言語をC++のソースにコンパイルすることは簡単です。完成した後、
暇だったらシステムをライブラリー化して、コンパイルしたC++ソースとリンクし、
ネイティブな実行形式作成をやってみたいですね。