例外の実装

sjlj、dwarf2とかあるらしい
3
d金魚 @studiokingyo

C++のthrowやtry catchって関数に入っていくとき無駄なオーバーヘッドあるから使いたくないってのを見たことある。やはり時代は戻り値である。(アナクロ!アナクロ!アナクロ!)

2010-08-01 14:01:36
@decimalbloat

最近のC++コンパイラでもtryでオーバーヘッドかかるのか…?

2010-08-01 14:02:41
@tyru

C++のtryってなんで遅いとか言われてるんだろ。できれば機械語抜きでどういうことをするのか教えてほしい...

2010-08-01 14:05:44
d金魚 @studiokingyo

つ http://www.nurs.or.jp/~sug/soft/super/longjmp.htm @tyru C++のtryってなんで遅いとか言われてるんだろ。@decimalbloat 最近のC++コンパイラでもtryでオーバーヘッドかかるのか…?

2010-08-01 14:10:46
@tyru

例外ってsetjmp(),longjmp()でそのまま実装されてるんですか!知らなかった RT @studiokingyo: つ http://www.nurs.or.jp/~sug/soft/super/longjmp.htm

2010-08-01 14:14:44
@tyru

低レベルな知識つけたい

2010-08-01 14:15:05
d金魚 @studiokingyo

マーク ネルソン, ジーン=ラウプ ゲイリー (- -... の 'データ圧縮ハンドブック―マルチメディアデータ圧縮の実践的プログラミング技法' を Amazon でチェック! http://amzn.to/dq3nmu

2010-08-01 14:20:44
d金魚 @studiokingyo

'8086マシン語秘伝の書' http://amzn.to/duUynU 昔はメモリが高価だったので、出来る限り命令数を少なくするのが美徳で、出来上がったプログラムは、他人が見たら分かりませんでした。今は適当なコードを書いてもそれなりに動くので、緊張感がなくなったと思います。

2010-08-01 14:22:46
d金魚 @studiokingyo

ウィリアム・パウンドストーン, William Pou... の 'ライフゲイムの宇宙' を Amazon でチェック! http://amzn.to/cbTK80

2010-08-01 14:24:13
d金魚 @studiokingyo

A.クフォーリ, 甘利俊一 (単行本 - Dec 1987) の 'プログラミングによる計算可能性理論 (Information & computing (18))' を Amazon でチェック! http://amzn.to/bWv0qg

2010-08-01 14:24:51
d金魚 @studiokingyo

梶 充生 (単行本 - Jan 2003) の '個人でwebサイトなんてやめておけ (SCC books)' を Amazon でチェック! http://amzn.to/aoWB0v

2010-08-01 14:28:27
d金魚 @studiokingyo

アンドリュー ハント, デビッド トーマス (単行本 ... の '達人プログラマー―システム開発の職人から名匠への道' を Amazon でチェック! http://amzn.to/cu5ghQ

2010-08-01 14:29:27
d金魚 @studiokingyo

坂井 弘亮 (単行本 - May 2010) の '12ステップで作る組込みOS自作入門' を Amazon でチェック! http://amzn.to/9D8Tgr

2010-08-01 14:45:05
@tyru

おおお、どうもです! RT @studiokingyo: マーク ネルソン, ジーン=ラウプ ゲイリー (- -... の 'データ圧縮ハンドブック―マルチメディアデータ圧縮の実践的プログラミング技法' を Amazon でチェック! http://amzn.to/dq3nmu

2010-08-01 14:24:41
d金魚 @studiokingyo

おや!この本ってそんなに貴重ですか?確かに圧縮本はすぐに絶版になる傾向があるようですが… RT @tyru: おおお、どうもです! RT @studiokingyo: 'データ圧縮ハンドブックを Amazon でチェック! http://amzn.to/dq3nmu

2010-08-01 14:31:59
@tyru

@studiokingyo なんとなくすごそうだったので!

2010-08-01 14:32:59
@decimalbloat

@tyru sjlj以外にも実装方法はあるので必ずそれで実装されているというわけでもないです。

2010-08-01 14:26:59
@tyru

@decimalbloat sjlj知りませんでした。ありがとうございます。

2010-08-01 14:29:51
@tyru

「unwindの実装にはsjlj(Setjump/Longjump)と呼ばれるものとdwarf2というものがある。dwarf2のほうが効率がいいけど、実行バイナリのフォーマットに依存するので、使えない環境ではsjljを使う」 http://bit.ly/bEx5Pl

2010-08-01 14:31:43
@tyru

sjlj、sjklとかsjlkとかtypoってしまう

2010-08-01 14:35:24
@tyru

dwarf2はデバッグ情報を基に飛ぶらしい。「DWARF2はもともとデバッグ情報形式の一つですが、これを用いて例外のcatch先を探すのが DWARF2 Exception Handling (DW2 EH) ということになります」 http://bit.ly/d0B1m4

2010-08-01 14:38:17