【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

LLPML

継承

LLPMLで構造体の継承ができるようになりました。 LLPML/v0 (0.8-20070924) これはオブジェクト指向のためというよりも、共通のパラメータを持った構造体を扱いやすくするためのものです。

コンストラクタ・デストラクタ

LLPMLでコンストラクタとデストラクタをサポートしました。 LLPML/v0 (0.7-20070917) C++やC#では、クラス名を変更したときにコンストラクタやデストラクタも変更する必要があります。これがいつも面倒だと感じていました。そのためD言語の仕様を真似て、ク…

言語仕様の分離

LLPMLで構造体のメンバ関数が定義できるようになりました。 LLPML/v0 (0.6-20070830) LLPMLではオブジェクト指向はあまり追求しないで、簡単に実装できて便利なものだけを追加する予定です。

ウィンドウ

LLPMLでウィンドウが表示できるようになりました。 LLPML/v0 (0.5-20070819) 構造体を定義すればすぐに表示できるかと思っていたのですが、イベント処理のための条件分岐などが必要なことに気付きました。そのため急遽、ブール演算や制御構造を実装しました。…

構造体

構造体を実装しました。メンバは32bit整数型限定です。 LLPML/v0 (0.4-20070816) 構造体のメンバへのアクセスを変数と同等にするため、変数処理の抽象化を行いました。またまた仕様が大きく変わっています。作りながら行き当たりばったりで抽象度を高める方…

関数の戻り値

関数が値を戻せるようになりました。コールバックもできるようになりました。 LLPML/v0 (0.3-20070815) タグを分離することで変数宣言を明確化したり、サンプルの冗長な部分を書き直したりしました。明確な完成イメージがあるわけではなく、とりあえず動けば…

関数

関数が記述できるようになりました。 LLPML/v0 (0.3-20070814) 今までベタ書きしていたのが関数にまとめられるようになったので、見通しが良くなりました。

ブロックとスコープ

LLPMLにブロックを実装して、変数のスコープが使えるようになりました。トップレベルのブロックではグローバル変数として.dataや.bssに、それ以下のブロックではローカル変数としてスタックに格納されます。 LLPML/v0 (0.2-20070805) 次はブロックを拡張して…

ASTオブジェクト

将来的にASTを直接操作してコードを編集するため、XMLソースから直接コードを生成しないで、一旦ASTオブジェクトに変換してからコードを生成するようにしました。 LLPML/v0 (0.1-20070729) XMLソースから直接生成する方がコードの見通しが良いのですが、XML…

Low Level Programming Markup Language

半年前、オブジェクトでアセンブリを組み立てるためのライブラリを作りました。 CompilerLib これを利用してXMLの簡単な言語処理系を作りました。低級言語なので Low Level Programming Markup Language (LLPML) と名付けました。 LLPML/v0 (0.1-20070722)