D言語

GC付きの言語での大規模開発

http://d.hatena.ne.jp/yaneurao/20040410#p1で、保守的なGCでは大規模開発は難しいんじゃないかと書いたが、2chのD言語スレの反応を見ていると、どうも私の書き方がまずかったんじゃないかという気がしてきたので補足してみたい。 まず、一般的なGCの仕組み…

ネイティブコンパイラの善悪

C#を始めとして.NET系のcompilerはネイティブコードを生成できない。VC++(Visual C++)だけはネイティブコードを生成しようと思えば出来る。思うのだが、VC++でネイティブコードを生成できる以上、マイクロソフトの手にかかれば、C#であろうが、VB(Visual Bas…

conservativeなGC

BoehmのGCは保守的(conservative)なGCである。これは、root集合から辿れるならば、配列の中身すべての要素を辿ることを意味する。画像imageのように大きな配列を扱う場合、こんなことをされてはたまらない。配列の要素がでたらめな数字だと、そんなところを…

64bit processor

私の一昨日の日記 http://d.hatena.ne.jp/yaneurao/20040406#p1 に対して次のようなコメントをもらった。 サーバアプリケーションにJavaが多いことを考えると int32にペナルティーの付くプロセッサがこれから開発されるとは 思えないのですがいかがでしょう…

変数のbit長

C言語に代表されるような関数型言語には、たいてい整数型(int型)がある。これが何bitであるかは言語系で違う。また処理系でも異なるかも知れない。C言語では、int型は実装依存であり、その処理系でもっともパフォーマンスの優れているbit長である。ふつう、3…

GC付きの言語におけるゲームプログラミング(2)

さて、携帯のような省メモリ環境におけるGCのまずさを書いたところで、Windowsマシンのようにふんだんにメモリのある環境でのGCの挙動について考えていこう。まあ、メモリがふんだんにあるとは言ってもビデオメモリのようなリソースは限度があるので、unmana…

ソースコードのmodularityの低さ(4)

長々と書いてしまった。全然話しが進みやしねぇ。もう、ソースコードがコンパイラの特定のバージョンを強要するのは別にあっても構わないと思う。COMインターフェースで特定のバージョンの実装を要求するのと同じである。それが叶わないならば、コンパイラを…

ソースコードのmodularityの低さ(3)

C++の標準もどんどん進化している。それはそれで構わないのだが、古いバージョンのコンパイラ向けに書かれたコードは新しいバージョンでコンパイルできないという事態は起こりうる。そういう事態が起こったとき、プログラマは通例FDIS/ISではどちらが正しい…

ソースコードのmodularityの低さ(2)

バイナリレベルでの相互呼び出しに関しては、COMでもCORBAでも、まあ何でもいいのだが、それほど実現するのは難しくはない。これと同じことをソースレベルで行なえるかというと、そりゃもう、不可能に近い。なんでか?ソースコードが特定のコンパイラ、ある…

GC付きの言語におけるゲームプログラミング(1)

GC(Garbage Collector)はオブジェクトを解放する手間が不要になる。世紀の大発明だったと言っても過言ではないだろう。しかし、それが便利なのかどうかは微妙なところだと思う。実際のところ、C#やJavaでまともな(市販レベルの)プログラムが組まれるようにな…

近未来的プログラミング(1)

D言語のテンプレート機構は、明示的なインスタンス化が必要になる代わりに、C++には出来ないようなことまで出来る。それば事実なのだが、それがいいか悪いかは別問題である。思えばJavaやC#にもGenericsが導入され、いよいよ本格的に足並みをそろえた感もあ…

記事書いたっすよ!

今日発売の「Software Design」誌に11ページもD言語の記事を書いた。はっきり言って書きすぎである。ここ半年間はD言語の先見性に惹かれ、毎日いろいろといじってみる日々であった。しかし、結局のところは、またC++(あるいはJavaやC#)での開発に戻らねばな…

ニョキニョキ音符ゲー攻略

昨日の日記で紹介したニョキニョキ音符ゲーの攻略法を書いておく。1.チャージはハートが2個まわった瞬間から有効 2.ト音記号本体には当たり判定はない 3.ト音記号に重なってチャージすれば高速チャージ 4.ト音記号が♪を吐くタイミングは完全にパター…

ニョキニョキ音符ゲー

ニョキニョキが流行っている: http://www.geocities.co.jp/Milkyway-Cassiopeia/8028/index.html http://pc4.2ch.net/test/read.cgi/swf/1059548458/250-254元ネタ: http://www.ismusic.ne.jp/nyokinyoki/そこで、「ニョキニョキを使って4時間でゲームを…

zip書庫

yaneSDK4Dでpasswordつきzip書庫の読み込みに対応させた。 zip書庫のヘッダはインターリーブしてるとばかり思っていたら末尾に集合ヘッダがあった。ただ、そのヘッダが可変長の部分があるので後方からファイル先頭に向かってサーチしていく必要がある。その…

news groupに投稿する

D言語のnews group(本家なので英語)に投稿するようになってから、英語をちょこちょこ書くようになった。やねうらおもご多分に漏れず日本の悪しき教育システムの上で育っているので1.読むのはかなり難しい文章でも読める。 (文章自体の理解力は、受験の国…

glExcess into Dの反響

どれだけ素晴らしいOSがあったとしても、その上で動くアプリケーションがなければ、誰も使わない。「LinuxがWindowsに勝てないのはMicrosoft OfficeがLinux上で動かないからだ」と言った人が居るが、それは正鵠を射ていると思う。言語とて同様だと思う。サン…

 glExcess移植

glExcess: http://www.glexcess.com/をDに2時間ほどかけてコンパイル通るようにして、そこから3時間ほどかけて バグとりした。バグっていうのは、ひとつは、glutのporting作業の問題、もうひとつはDコンパイラ側のバグなんだけどね。そんなわけで、完成。12…

 ライブラリ作る

D言語で書いてる my ゲームライブラリ: http://www.sun-inet.or.jp/~yaneurao/dlang/そろそろ、ゲーム作っていくとしますかの?ところで、D言語、思ったほどDコンパイラまわりの開発は早くないみたいですね。.NETとかの本体の開発速度と比較するのがいかん…