ToDo:
http://gusmachine.blog49.fc2.com/blog-category-2.html
D は、
class C { int i; this() { int i; // 合法 { int i; // 非合法 } } }
のはず。
1. コンストラクタとsetterでは、セットする変数と同じ型の引数を受 け取り、引数の名前はフィールドの名前と同じになることがある。 同じであってもよい。
どの言語の話なんだろう。
#include <stdio.h> struct C { int i; C(int i) { i=i; } void print() { printf("%d\n", i); } }; int main() { C c(1); c.print(); }
こんなのは当然 C++ だとダメなので、 this->i = i; とかするんだろうか。 いや C++ なら C(int i) : i(i) {} でいいんだけど。 パイソン子なのかな。 まぁ僕はメンバが i_ になってるか、 引数が i0 になってるか、が慣用化されてるなぁ。
まぁ
2. フィールドを参照する際にいちいち読みにいってほしくないとき、 ローカルにキャッシュとしてフィールドの値をおいておくことがあ る。この名前は同じになる。
これがあるので、 D が一つ目が合法なのは 全然正しく感じる。
んで関数内のブロック内の隠蔽はなー。 あ、ちなみに
class C { int i; this() { int i; void delegate() d = delegate void() { int i; }; } }
は合法みたいだ。
んで関数内のブロック内の隠蔽は 禁止しておいた方が妥当な気がするけど、 俺は結構やりたいなーとかいう。
int main() { SDL_Surface* s = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); // 長い時をへて if (hoge) { int s = 1; }
とかをしばられるのがなー。 いや行儀悪いんだけど書き散らかしコードだから許してよーという。
(15:52)
http://www.digitalmars.com/d/function.html#interpretation
思ったより適用範囲が広い。 これ入力固定の BF インタプリタくらいなら動く?
(16:02)
http://alohakun.blog7.fc2.com/blog-category-5.html
よく使う機械語命令長くらいなら最近は覚えた…と思いつつ、
i;a[] = {4, 9, 2, 3, 8, 6, 3, 2, 1, 3, 5, 7, -0x80000000, 0x7FFFFFFF}; main(){ qsort(a,sizeof(a)/4,4,"YXZ\x83\xec\f\213\0+\x2\303"); for(;i<sizeof(a)/4;i++) printf("%d ", a[i]); puts(""); }
もろに sub じゃダメってケースだった…
% ./a.out 1 2 2 3 3 3 4 5 6 7 8 9 2147483647 -2147483648
まぁ
irb(main):001:0> disasm("\x55\xb9\x01\x00\x00\x00\x89\xe5\x8b\x45\x0c\x8b\x10\xb\x45\x08\x39\x10\x7f\x07\x0f\x9d\xc0\x0f\xb6\xc8\x49\x5d\x89\xc8\xc3") /tmp/irb_disasm1672.0: ファイル形式 binary セクション .data の逆アセンブル: 0000000000000000 <.data>: 0: 55 push %ebp 1: b9 01 00 00 00 mov $0x1,%ecx 6: 89 e5 mov %esp,%ebp 8: 8b 45 0c mov 0xc(%ebp),%eax b: 8b 10 mov (%eax),%edx d: 8b 45 08 mov 0x8(%ebp),%eax 10: 39 10 cmp %edx,(%eax) 12: 7f 07 jg 0x1b 14: 0f 9d c0 setge %al 17: 0f b6 c8 movzbl %al,%ecx 1a: 49 dec %ecx 1b: 5d pop %ebp 1c: 89 c8 mov %ecx,%eax 1e: c3 ret => nil
これはちょっと見ただけで ECX のクリアは xor %ecx, %ecx; inc %ecx; に決まってるでしょ! このオバカ GCC ! とかいう感じなのでまぁいいか。 そもそもスタックフレーム作るなとか。 omit-framepointer つけといたらバイナリ長減ったりするのかな。
あと前から気になってたのですが第四引数でわ。
(16:28)
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070216#p02
ls /bin /usr/bin などを送り込んで 確認していただくと良いかもです。
あと「読みやすく」は私の場合 「読みやすく書かなければならない」という 束縛から解放される喜びが大きいなぁ。
あと経由して思い出したように Smalltalk メモ
http://www.gnu.org/software/smalltalk/gst-manual/gst_42.html#SEC102
(17:50)
終わりそうもない。
s='!\"\#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' s.scan(/./) do |a| s.scan(/./) do |b| s.scan(/./) do |c| s.scan(/./) do |d| s.scan(/./) do |e| begin p = a+b+c+d+e puts p fork do eval(p) end rescue end end end end end end
Ruby segv を探そうかと思ったのであった
(20:45)
どれも難しいなぁ。まぁ Minus は入れると決まればカンタンだ。 2DとBALANCEはどう考えても無理だ。
あと純然たるマシンコードサイズを競う場として、 スタックとレジスタが全部クリアされた状態で始まる ヤツもあってもいいかもしれないな。
(20:59)
前 | 2007年 2月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
> どの言語の話なんだろう。
Javaです。this.m=m;ってthisで修飾するとメンバになります。
そのD言語の仕様はいいですね。ACM-ICPCで使えるようになったら使って見ましょう(いつの話だ).
それから私の日記とかあろはくんさんの日記とかをリンクするときはblog-category-*.htmlじゃなくてblog-entry-*.htmlのほうが記事へのリンクですよ〜とおせっかいをいってみる。
私の日記だと記事のタイトルのところにこのentryへのリンクが存在します。
this. は Eclipse が自動生成してたような気がしますが、そうでも無ければキモく感じますねぇ。
あと category と entry はいつも間違えます。先日マクドで女子高生がブログ作ってましたが、時代の流れに追いつけていないようです。