アカウント名:
パスワード:
gccは実質、Cで書いたLisp処理系で実装されている風な仕組みだという話らしいので、なるほど、ならばいくらでもマクロ的に拡張できるだろう、と勝手に妄想合点してたんだけど・・・違うみたいだな。LLVMとかに対抗するために、抜本的に書き直すきっかけにしたいのかな。
え?普通エラーが発生したら例外投げるんじゃないの?
>何でC++なんか使うのだろう。>コンパイラとか低レベルなものはCだけの方が、>サイズが小さい上に保守性も上がっていいと思うんだけど。。。
保守性はコード品質によります。
ってのは別にして数年前のGCCSummitで「gccコア部分のマクロが複雑怪奇でわかる人なんて数人しかいねーし、 ここのところは全部C++のtemplateにして可読性あげようぜ」と言う提言が出てましたね。
と、言う訳で可読性の向上のためにC++導入と言う側面もありますよ。
例外禁止のコーディングルールでいいのさスマポだけあればいいってホント
nothrowでnewしたものをスマートポインタにつっこめば失敗したらスマートポインタにNULLが入るので問題ないでしょう?
コンパイラはオブジェクト指向的に書くと見通しよくなるけどね。
> 多態は関数のポインタで処理を書くようなものだから、いまいちトレースが難しくなるしで
コードからアルゴリズムを理解しなければならない時なんかは、たしかにこういう事実はあるのだけども、コンパイラの場合は理論がしっかりしているので宣言的に書かれてもあまり困らないと思う。見通しよく書いてくれればだけど。
Javaで書かれているCOINSがドキュメントもあるし手ごろです。http://www.coins-project.org/ [coins-project.org]
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
Cだけのままじゃ何が悪かったんだろう (スコア:1, 興味深い)
コンパイラとか低レベルなものはCだけの方が、
サイズが小さい上に保守性も上がっていいと思うんだけど。。。
それに、最近は例外とエラーを区別できない人がおおくて何でも例外投げるし。。
多態は関数のポインタで処理を書くようなものだから、いまいちトレースが難しくなるしで
C++は業務系アプリだからこそメリットのあるものだと思うんだけどな~
Re: (スコア:0)
gccは実質、Cで書いたLisp処理系で実装されている風な仕組みだという話らしいので、
なるほど、ならばいくらでもマクロ的に拡張できるだろう、と
勝手に妄想合点してたんだけど・・・違うみたいだな。
LLVMとかに対抗するために、抜本的に書き直すきっかけにしたいのかな。
Re: (スコア:0)
え?
普通エラーが発生したら例外投げるんじゃないの?
Re: (スコア:0)
例外的ではないエラーに関しては、例外を放つなということでしょうか。まぁ、
私は、エラー処理を書くぐらいなら、例外を使う方がむしろコードはわかりやすくなると思っています。エラー処理のバケツリレーとか、見ていると馬鹿馬鹿しくなるので。
まぁ、一般ユーザーにNullPointerExceptionとかいう謎のエラーを表示するプログラムが良いとは思いませんが、落としどころは結構難しいのではないですかね。
Re: (スコア:0)
>何でC++なんか使うのだろう。
>コンパイラとか低レベルなものはCだけの方が、
>サイズが小さい上に保守性も上がっていいと思うんだけど。。。
保守性はコード品質によります。
ってのは別にして数年前のGCCSummitで
「gccコア部分のマクロが複雑怪奇でわかる人なんて数人しかいねーし、
ここのところは全部C++のtemplateにして可読性あげようぜ」
と言う提言が出てましたね。
と、言う訳で可読性の向上のためにC++導入と言う側面もありますよ。
Re: (スコア:0)
Re: (スコア:0)
ただ、C++プログラマにCのコンパイラを書かせるのは、仕様の理解と言う点で、危険な気がする。
Re: (スコア:0)
例外禁止のコーディングルールでいいのさ
スマポだけあればいいってホント
Re: (スコア:0)
つまり決して不足しないメモリ空間などが必要ですよ。
Re: (スコア:0)
nothrowでnewしたものをスマートポインタにつっこめば失敗したらスマートポインタにNULLが入るので問題ないでしょう?
Re: (スコア:0)
自分では例外をthrowしないのに、律義に例外が来ても大丈夫なように書いてたわ・・・orz
Re: (スコア:0)
Re: (スコア:0)
コンパイラはオブジェクト指向的に書くと見通しよくなるけどね。
> 多態は関数のポインタで処理を書くようなものだから、いまいちトレースが難しくなるしで
コードからアルゴリズムを理解しなければならない時なんかは、たしかにこういう事実はあるのだけども、コンパイラの場合は理論がしっかりしているので宣言的に書かれてもあまり困らないと思う。見通しよく書いてくれればだけど。
Javaで書かれているCOINSがドキュメントもあるし手ごろです。
http://www.coins-project.org/ [coins-project.org]