トップページ⇒tech
39コメント8KB

良質なオブジェクトコードを吐く処理系ランキング

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C@` C++@` Java@` Pascal@` etc..
各言語毎に色々な処理系がありますが、いったいどれが一番優れたオブジェクトコードを生成するのでしょうか。
0002奥さん、名無しですNGNG
assembler
0003デフォルトの名無しさんNGNG
では、最初にWin32環境のC/C++処理系をランク付けしてください。
Visual C 6.0SP4
Inprise(Borland) C Builder 5.0
Inprise(Borland) C 5.0 (Free公開版)
gcc-2.95.2
lccWin32
など。
0004デフォルトの名無しさんNGNG
>2
アセンブラは最適化しないので除外してください。
0005デフォルトの名無しさんNGNG
>4
Visual assembler
ttp://visualasm.cjb.net/
0006デフォルトの名無しさんNGNG
漏れも知りたい。
結局VCやBCCとかgccって、どれが良いの?
00075デフォルトの名無しさんNGNG
>>4
除外できない事がわかりましたか?
後、LINK先にもmasm32以外にもいろんな言語で使えるツールが
あっておもしろいですよ。一度おためしくださいです。
0008デフォルトの名無しさんNGNG
MASMのOPTION LJMPも最適化っちゃあ最適化だよな...
0009デフォルトの名無しさんNGNG
MSアプリケーションは全てにおいて最高のパフォーマンスを発揮します。
0010名無しさんi486NGNG
Intel C/C++ Compilerを忘れてるよ
0011デフォルトの名無しさんNGNG
>1 まずは優れたオブジェクトコートとはなにかということを定義しなはれ。(藁
0012名無しさん@お腹いっぱい。NGNG
MS以外の C++ IDE使っている人はいますか? アンド使っている理由は?
MS、ボーランド以外の製品(Watcomとか)はちゃんと商売になっているのか
余計な心配をしてしまう。
CodeWarriorはコンシューマー用ゲーム開発者向けかな・・
0013デフォルトの名無しさんNGNG
>>12
WatcomはOpenSourceになっちゃいました
0014デフォルトの名無しさんNGNG
ぁっちcえ
0015DOSの頃はNGNG
実行速度、最適化のMS-C
コンパイル速度のTURBO-C
といわれていたが、今は?
でも、>>11のいうように、優れたコードの定義がないとな。
大きくは、
  実行速度が高速
  オブジェクトサイズが小さい
の2つだと思うが。
0016私の記憶が確かならばNGNG
数ヶ月前、単純な Hello.c をサイズ最適化コンパイルして比較したところ、
gcc(20KB台前半) < VC++(20KB台中間) << BCC(40KB台後半) でした。
もう少し複雑なプログラムでもやはりBCCはワーストだったはず。
0017>16NGNG
hello.cだと、ほとんどライブラリのサイズになりそうなんですが・・・
0018デフォルトの名無しさんNGNG
>7@`5
>除外できない事がわかりましたか?
このサイトがアセンブラの最適化と関係があるのですか?
今覗いていますが。
できれば簡単な解説をお願いします。


>15@`11
では実行速度でお願いします。
0019名無しさん@お腹いっぱい。NGNG
芸術とまで言われたLSI-C がなんででてこない
レジスタ宣言が不要なくらい可能な限り変数をレジスタにふってくれる
0020>19NGNG
LSI-Cは
a = 1 + a + 2
すら最適化してくれなかったような...
0021デフォルトの名無しさんNGNG
>>19
LSICはこの辺の独自指向の最適化のせいで、他のDOSコンパイラと呼出し形式が違うから、他のコンパイラで作ったオブジェクトをそのままリンクできないっていう制限がある。
0022デフォルトの名無しさんNGNG
よって、ネットで公開されているDOSのライブラリのほとんどは、LSIC専用と他(MSC/TurboCなど)という風に別れてしまっている。
まあ違うのは呼出し形式だけなので、もし対応してなくてもそこだけ書き直せば良いんだけど。
それがLSICの唯一の不満。
0023名無しさん@お腹いっぱい。NGNG
そーなのかふーん
LSICでCを覚えましたなつかしいっす
昔はフリーの(ほんとはフリーじゃないけどさ)DOS
で動くコンパイラってこれしか知らなかった

俺はこいつがなかったら今ごろもっと惨めな暮らし
をしてると思う
ヒッキーだったし就職できたのはLSICのおかげ
って思ってます
0024デフォルトの名無しさんNGNG
LCC-Win32はどうよ?
0025デフォルトの名無しさんNGNG
>>16
static link/daynamic link分けないとちゃんとした比較にはならんぞ。
0026デフォルトの名無しさんNGNG
どの程度違う?>25
0027デフォルトの名無しさんNGNG
dynamic linkのサイズ分じゃない (ワラ
0028デフォルトの名無しさんNGNG
gcc 2.96および2.97ははずせないな フフフ
002926NGNG
はあ?>27@`28
0030名無しさん@お腹いっぱい。NGNG
>>19
LSI C と現在の他のコンパイラをちゃんと比較して言ってるの?
10年前ならいざ知らず、今じゃ特に評価に値するコンパイラじゃないとおもうけど。
0031名無しさん@お腹いっぱい。NGNG
>>19
>レジスタ宣言が不要なくらい可能な限り変数をレジスタにふってくれる

LSI-C って register 宣言は auto と同じ扱いだから全く不要。
0032デフォルトの名無しさんNGNG
可読性(アセンブラソースの吐き出し)で言えば、LSI−Cでしょ?
でもねぇ 80x86自体が、Cとは相性良く無いからなぁ〜。
0033デフォルトの名無しさんNGNG
忘れ去られたCodeWarrior・・・
0034名前ついてますか?NGNG
LSI-C80はすごかった記憶があるなあ... Z80だけどさ。
0035デフォルトの名無しさんNGNG
>34
8080じゃなかったっけ?>LSI-C80
でも、integerの定数を関数に渡すときに、大きさによって
Aレジスタで渡したりHLレジスタで渡したりするので、はまった覚えがある
void mokeke(int uhihi);
とかの関数に、mokeke(1)とか書くと、関数側はHLで受けるのに
呼び出し側はAレジスタにいれて呼び出すの
mokeke((int)1)とかで呼ぶ必要があった
もしかして常識だったらすげーはずかしー>漏れ
0036デフォルトの名無しさんNGNG
CodeWarriorって、完全に負け犬の開発環境だと思う
0037デフォルトの名無しさんNGNG
>>35
プロトタイプ宣言してないんじゃないの?
0038デフォルトの名無しさんNGNG
負け犬とは?>36
003935NGNG
>37
うーん、もしかしたらそうだったかも
後方参照(?)だから、わざわざ書かなくていいと思ってた気がする
昔の話しすぎてよく思い出せません、ごめんなさい
■ このスレッドは過去ログ倉庫に格納されています