コメント
Unknown
(
shimalis
)
2011-03-30 18:58:24
Cはオーバーフローが怖すぎる
しかしC#などあまりにも魅力的……
Unknown
(
Unknown
)
2011-03-31 10:36:18
C++が楽しいのは勉強している時だけ・・・
その後は地獄街道まっしぐら。
まあ、俺はC++でプログラミングするのに挫折して、D言語を使い始めたクチですが。
Unknown
(
ME By960
)
2011-03-31 17:28:21
オーバーフロー、この場合はバッファーオーバーランかな。
C++のオーバーラン回避は、データ管理用クラスやら、バッファクラスやらを作って、
外部から直接データにアクセスさせないようにデータ本体をPrivateにして、
クラスにそれ専用の読み込み・書き込み関数を作り、
書き込みにはデータのサイズを、読み込みには書き込みされる配列のサイズを、
それぞれ渡すことにすれば、かなり避けられますよ。
こういったクラスをつくれば、読み書きの時の排他制御やスレッドセーフもやりやすくなります。
コワリス制作に当たって、元からあった雛形のサーバーを、CからC++に移植した理由がこれで、
マルチスレッドでの排他制御とか、オーバーランしないデータの管理がめんどいから、
ActionScript3.0のByteArrayみたいなものを自作して、
スレッドセーフに改造して管理すればやりやすいなと思い、
オブジェクト指向のC++に移植しました。
Cから始めた私からすると、C++は文法を間違えやすいけど、かなりやり易い言語に思えます。
逆に、ActionScript3.0は制限とか、手がとどかないところが多くて・・・。
Unknown
(
shimalis
)
2011-04-01 17:14:56
なるほど。(←よくわかってない)
私はPERL使いですので、メモリ管理で大奮闘した経験がないんですよね。
Unknown
(
ME By960
)
2011-04-01 23:37:56
Perlですかぁ。CGIを試しに組んでみたけど、結局、C系でCGIの方がやりやすかった記憶が。
ここいら辺は、慣れの問題でしょうね。
スレッドを分けるなら必然的にC/C++かJavaですが、
メモリの管理がしやすいC系の方が、資源の少ないサーバーにとってはありがたいです。
バッファオーバーランのような、セキュリティーの問題でも、JavaのVMを走らせるよりは、
C++で動的でゴチャ混ぜなメモリ管理を自力で実装するほうが弱点にヒットする確率低いですし。
メモリ管理は、コワリスの本体でも大切ですね。
AS3.0は動的に確保はできても、動的に開放は出来ないので、プログラムが膨れ上がってます。
いまで、200MBくらいコワリスの本体が使ってますね。
Unknown
(
Unknown
)
2011-04-02 09:36:08
誰がなんと言おうと、俺はD言語を使う!
え?うるさい?
Unknown
(
shimalis
)
2011-04-02 15:46:57
D言語は遊ぶのにはよさげ
もしも仕事で使ったりなんかしたら……
Unknown
(
ME By960
)
2011-04-02 16:43:16
たしかに、D言語を使う案件に出会ったら、ヤバイかも・・・。
最近って、Javaが多い?組み込みは相変わらずCだって話し聞いたけど。
あと、C++の難儀なところ発見。stdなんてくそくらえだ・・・。
こんなクソみたいな仕様をデフォルトにしたヤツだれだ・・・。
見かけや、参考ページよりC++コンパイラは正直で分かりやすいけど、
はっきり言って、解説ページの分かりにくさは異常。
コンパイラ相手に仕様を探るほうが楽って、え・・・。
Unknown
(
Unknown
)
2011-04-02 18:36:38
D言語だってやれば出来る子。
http://ux.getuploader.com/kokubunzi_program/download/1/D%E8%A8%80%E8%AA%9E%E3%81%A7%E3%83%9F%E3%83%8E%E7%94%9F%E6%88%90.zip
な、はず・・・
Unknown
(
ME By960
)
2011-04-02 18:44:55
D言語は面白そうだけど、仕事で使うにはまだね・・・。
コメントを投稿する
名前
タイトル
URL
コメント
※絵文字はjavascriptが有効な環境でのみご利用いただけます。
▼ 絵文字を表示
携帯絵文字
リスト1
リスト2
リスト3
リスト4
リスト5
ユーザー作品
▲ 閉じる
コメント利用規約
に同意の上コメント投稿を行ってください。
コメント利用規約に同意する
数字4桁を入力し、投稿ボタンを押してください。
しかしC#などあまりにも魅力的……
その後は地獄街道まっしぐら。
まあ、俺はC++でプログラミングするのに挫折して、D言語を使い始めたクチですが。
C++のオーバーラン回避は、データ管理用クラスやら、バッファクラスやらを作って、
外部から直接データにアクセスさせないようにデータ本体をPrivateにして、
クラスにそれ専用の読み込み・書き込み関数を作り、
書き込みにはデータのサイズを、読み込みには書き込みされる配列のサイズを、
それぞれ渡すことにすれば、かなり避けられますよ。
こういったクラスをつくれば、読み書きの時の排他制御やスレッドセーフもやりやすくなります。
コワリス制作に当たって、元からあった雛形のサーバーを、CからC++に移植した理由がこれで、
マルチスレッドでの排他制御とか、オーバーランしないデータの管理がめんどいから、
ActionScript3.0のByteArrayみたいなものを自作して、
スレッドセーフに改造して管理すればやりやすいなと思い、
オブジェクト指向のC++に移植しました。
Cから始めた私からすると、C++は文法を間違えやすいけど、かなりやり易い言語に思えます。
逆に、ActionScript3.0は制限とか、手がとどかないところが多くて・・・。
私はPERL使いですので、メモリ管理で大奮闘した経験がないんですよね。
ここいら辺は、慣れの問題でしょうね。
スレッドを分けるなら必然的にC/C++かJavaですが、
メモリの管理がしやすいC系の方が、資源の少ないサーバーにとってはありがたいです。
バッファオーバーランのような、セキュリティーの問題でも、JavaのVMを走らせるよりは、
C++で動的でゴチャ混ぜなメモリ管理を自力で実装するほうが弱点にヒットする確率低いですし。
メモリ管理は、コワリスの本体でも大切ですね。
AS3.0は動的に確保はできても、動的に開放は出来ないので、プログラムが膨れ上がってます。
いまで、200MBくらいコワリスの本体が使ってますね。
え?うるさい?
もしも仕事で使ったりなんかしたら……
最近って、Javaが多い?組み込みは相変わらずCだって話し聞いたけど。
あと、C++の難儀なところ発見。stdなんてくそくらえだ・・・。
こんなクソみたいな仕様をデフォルトにしたヤツだれだ・・・。
見かけや、参考ページよりC++コンパイラは正直で分かりやすいけど、
はっきり言って、解説ページの分かりにくさは異常。
コンパイラ相手に仕様を探るほうが楽って、え・・・。
http://ux.getuploader.com/kokubunzi_program/download/1/D%E8%A8%80%E8%AA%9E%E3%81%A7%E3%83%9F%E3%83%8E%E7%94%9F%E6%88%90.zip
な、はず・・・