programming

小数点数の量子化

某掲示板に投稿したものX[0.0 〜 2.0]の値を取る小数点数をY[0 .. 31]の整数型に量子化することを考える。普通に考えるとこうなる。 X が 2.0 を含まない場合 Y = trunc(X * 32 / 2.0) X が 2.0 を含む場合(Z = X * 31 / 2.0 と置く) Y = trunc(Z) Y = tru…

データと手続き

パソコンではなく、機械一般を考えてみます。普通はなんらかのデータを与えてなんらかのデータを返す何かを想像するのでは無いでしょうか。例えば、切符の発券機はお金と値段や購入数などを入力すると切符を出してくれます。また、飲み物の自動販売機はお金…

プログラミングの勝手な解釈

最近よく考えるのですが、プログラミングというのは極論すれば ・人間の意図(かっちょいいゲームが作りたいだとか、知り合いだけが見られる日記サイトを作りたいとか) から ・コンピュータが解釈できるような形(アセンブラなど) への変換作業だと簡潔に…

c++でプロパティ

3ヶ月も放置プレイ。。。 C++だとコンマ演算子は例外的にオーバーライドできず、使い勝手がいまいち。 そのうち気が向いたら公開します。

c++でプロパティ

では早速 2 コンパイラの独自拡張に頼る を実装してみます。なんで最初に2かというと、こちらの方が簡単だからです(^^;vc6 では以下のプロパティ構文をサポートしています。 int get_Size() { return m_size; } void set_Size(int value) { m_size = value; …

c++でプロパティ

このところC#一辺倒でc++など忘れかけていたシーラカンスでありますが、最近またc++をいじり始めました。よく言われていることではありますが、c++に対してC#の優れているところは、Visuralホニャララなrad環境との親和性にあると思っています。メソッド名やクラ…

コードじぇねれーと4

今回で4回目になるコードじぇねれーとですが、おそらく今回が最後です。次の更新がいつになるか自分でも楽しみです^^ここで、なぜソース生成を行うのか考えてみます。ソース生成を行うと 生成元ソースと生成後ソースの同期を常に考える必要がある。 生成ソ…

コードじぇねれーと3

前回、生成先ファイルから生成元ファイルに変更を反映させるにはマクロが使えると書きました。勢いで書いてしまったのですが、よく考えてみると「生成後のソースの変更を生成元のソースに反映させる」というのとはちょっと違うかもしれません(^^ まあ細かい…

コードじぇねれーと2

前回、C#によるmix-in作成や描画クラス作成など、ソース作成プログラムの例を紹介した訳ですが、実はこれには重大な問題があります。コードジェネレートでは一般的に、生成元ソースに何らかの操作をして新たなソースを作成するわけですが、そうすると生成後…

コードじぇねれーと

[mixin in C#2.0] [id:yaneurao:20060113]↑でやねうらおさんがC#2.0でmin-inを実現しています。原理は簡単で、外部ツールによってクラス実装をマージしてやります。マージするときにpartialキーワードを使うところが素敵です。私も以前C#での2D描画クラス…